10/16/17 Software Development

https://www.toptal.com/agile/art-of-war-software-development

This blog talks about how the concept of  “Art of War” applies in the world of software development. He starts with explaining the history of “Art of War”. The idea dates back to  fifth century B.C., by an Ancient Chinese military strategist named Sun Tzu. The text from the book is divided into 13 chapters, and still used in military schools in the East, and is suggested reading for the west. The concepts of “Art of war” have not only applied in the military at war  but as well as in politics, sports and software development. This blog goes through certain chapters and section of the book, and explains how it is used in software development. The first section comes from Chapter 2. The idea is teamwork. If everyone on the team is working on a program and they have no goal or no deadline for the project, then the people become frustrated and the effort in the project declines. The next part from chapter two is about timing. This one states, the faster you can get a program running and turn it in with out bugs, the quicker you’ll get feedback from the client. Chapter three is based on leadership. With a team of programmers one on a program there needs to be a leader to make sure everything is running smoothly and going the way it should. Chapter six talks about repetition. Using one method for one project might work well, so you’ll try the next project with the same method as the previous one. That might not be such a good idea. Instead, learning how to write in different coding language, and different methods will help you become a better programmer and help the program run better itself. The next sections talk about constantly improving to make things better. In programming, programmers are constantly fixing bus to their programs to keep it running smoothly. The next section again talks about teamwork, how everyone on the team has to work to the team has to work together on the project and not one member alone can do everything by himself. Again with teamwork, talk about making changes to the program with other members, instead of doing them yourself without anyone knowing. The next section talks about motivation, to keep the team going and help make the program get finished faster. The next section states if a piece of code looks bad, but work fine don’t change it or destroy it, just leave it alone and let it be. The last section talks about anti- patterns. Which means do as told and don’t stray to try to change things to make it netter because it might not work out in the long run. The author concludes that though these idea were first used for warfare the idea of teamwork, efficient and time can apply to software development as well.

Again, another good blog. I like the talk about teamwork for programming. Again this shows teamwork and the importance of it when working on a project. Which occurs in any job field with programming.

Advertisements

10/9/17 Software Design Writing

https://www.toptal.com/freelance/why-design-documents-matter

This week I read on why writing a software design document matters. This blog goes through the steps of what is needed in a design document. The program idea could start with a call or Skype meeting between the programmer and the client, with the client telling the programmer what he wants in the programmer. The programmer is then left to create the program once and outline is created, and meets up with the client one last time when the program is finished to make sure it is what he wants. Chris Fox, the author of the blog entry, goes through each of the steps with a brief summary and a picture or diagram of what each of the steps would look like. The specification of a software design document show that the design goal of the project is going to be. This is created by the developer and the client on what is needed to be done and how the program or in this case application should work. The interface is the framework of the application. This is also the most problematic trying to get it to look perfect to what the client wants. Functionality how the application works and what it is supposed to do. Milestone, what the application is supposed to do once finish. The blog also gives examples of outlines for the document which features all of the steps. The outline should include the goals of the program, the function of the program, the users’ interface, and its milestone.  The author’s example of a UI description that he used was for an app used on an iPhone. The description included a navigation bar that controlled the app and where to go to different locations of the app, and a table of a layout of what will appear on the screen of the phone, including images and texts. Steps may change overtime as the application is being designed and programmed. The author gives us these steps and what to do as an example of a free lancer with one client.

This was another interesting blog. This blog showed another reason why we need a design map or outline for any programming. The diagrams show how the steps for the outline works, whether it is written on paper or typed up on the computer, both show the outline for the program and how it is expected to run for the user. Not only does this design work for programming site, it also works with programming applications. This shows that you need a design outline or diagram before creating any kind of program. This blog gives another method for designing a program. I would probably create an outline of what the program needs to do and how it should run, create a UML diagram for it then try to create the program itself.

10/2/17 Coding

 

 

This is another video from Joel Spolsky. I found this video through the last blog entry from last week. In this video he talks about the impact of coding in everyday life. He uses a taxi as an example of how coders deal with coding. he mentions if the person tries to make the taxi turn right, instead of the taxi turning right, it might have the trunk pop open or the taxi turn in the opposite direction. The driver will ask what’s wrong and try to figure out the problem. The driver will go online and find another driver had the same problem asked the question then was given the answer.  The driver could use the answer to solve his problem. Before stack overflow, there was a site online where programmers post questions to a coding issue, then would have to pay the company money to see their own answers that they have written up, Stack overflow was created where programmers can write questions to the program they have a problem on and other programmers can answer. Those answers are rated by other programmers who use the site. Those ratings can help a programmer build their reputation as a programmer. This could possible lead to jobs as a programmer in the future. Programmers need every detail of instruction for the program to run properly. Like mentioned before, algorithms are used in software design to run programs on websites. These algorithms allow a site to post certain pictures, articles and other posts, based on what the user is searching for or their feelings towards a certain topic or event.

The video was interesting. Joel uses everyday trends such as Uber and Facebook to explain how coding works in general and how it is used in everyday life now. I picked this video because I really liked the last video, and video was similar to the last one. The last video talked about programming and coding effecting the future of people. This video talked about coding impacting everyday life of today. This gave me a better  idea of how a website work and how a program runs. Again this shows me what expect in the workforce of a programmer. Joel compared the early days of programmers working similar to working at an assembly line. Programmers were hired to create a program write it and run it, and doing it in small cubicles with computers that did not work properly. Now a days programmers work with he company on the spot to make sure the program runs properly and fix and problem as they arise. This gave me a better understanding on how algorithms work on a site and how to use them for when I create a site and run it.

 

9/25/17 Software Design

https://www.joelonsoftware.com/2016/12/09/developers-are-writing-the-script-for-the-future/

This week I picked Joel on Software. The blog lead me to a 20 minute video on how software is changing the future. The video is of Joel talking on software and technology changing the world. He mentions technology and tools we use everyday and the program behind them. For example Uber is a program someone created to call for rides whenever needed. This is a step up from being in the city and trying to hail for a taxi. There is even code written up for something as simple as an alarm clock, allowing the user to decide when the alarm should go off everyday. More complex algorithm ad program are used online for different sites like social media. Facebook and twitter have special algorithm that manipulate certain viewing of post for people to see. The algorithm will put up certain posts to make the user feel happy or angry depending on what the post was about. An example Joel used was someone asking his friend to go to a party with him. The friend could not saying he was sick or to busy to attend. The first person later went on Facebook only to learn his friend went to the party with his ex girlfriend. The post made the person angry. Twitter uses a similar algorithm as well. Twitter pulls up tweets onto the users’ feeds based on if the tweet will make the user happy or not. One user created a fake news post on twitter on busses arriving that held protesters during the election. The tweet went around the site thanks to the algorithm. The tweet even reached the president elect to which he tweeted it but saying that the bus were carrying his supporters for the election. Algorithms used for news site and social media post pages based on the user’s interest. It does not post pages from everyone’s point of view on a topic just the certain point of view that the user prefers and wants to learn more about. Joel also talks about the site Stack overflow, which he created to help programmers with their programming. There users post question about a piece of code that they are working on and other users can comment and correct the code or give advice where needed.

I liked this blog a lot along with the video. I liked how he talks about various sites that people use everyday and the coding and program behind them. This explains how different sites work and a warning to not fully believe in the story or news that are posted. This gives an insight of how software and programming is changing the future of our world and what to expect from it.

9/18/17 Software Design

Kindness and Code

This  blog is from a site called Code Simplicity. It is about coding on the human side as well as on the technical side. Many people do not realize that software on a computer is developed by humans. They create the code, write it, edit it and modify it as much as possible before having a computer run it. They think a computer can create the program and run it all on its own. Software and programs are made for people by people. If you a developing a program for a customer, the customer can tell you if you are doing the program they want done is right or wrong. They should not attack you and be rude about it for the mistakes, especially if it is one that can be fixed. The blog then gives examples of customers complaining about the program not working properly or the programmer not creating the program the way customer wants it to be. One customer complained the program developer did not know what he/she was doing and believe that the person had no experience in the field at all. Another customer simply complained that the program he wanted was not created properly and did not work the way it should have. The first customer was rude while the second just stated what the problem was. The main point of the blog is to show that there are people behind the coding and programs and that it is not just all done by a computer. The blog also gives people the idea of how much work goes into coding a program with little detail. The blog encourages developers and users to work together and talk to each other about the program. The let the programmer do his job and trust that he knows what he is doing. If a problem arises then the two can work together to fix it.

The reason why I picked this blog was because it talks about software development used in the real world. It shows the people behind the computer and what they can do. This also shows the relationship they have with their customers. And what the general public thinks of developers and programming.  This blog gives me an idea of what do expect when working with computer software and the relationship between the customer and developer. Not everything is done by a computer itself, there are people behind it creating the program and making the computer run.