Isnin, 17 September 2012

Important Question For Software Engineer



1.      Why does it take so long to get software finished ?

     Software take a long time to finished because of programming computers is an inherently complex process which becomes more complex as the project gets larger and more people are involved. Furthermore the configuration involves in developed of software including the program, document and data which it means a lots of work need to do and manage for make it a successful software. For example, the engineer must make the research before his start the development process. Then, after research, he need to make analysis of his research to start the development. After done the development, the software need to be test and error following the procedures requirement. Finally software will test by the customer or user until they were satisfied with the result produce by the software. If not, the software must be return to fix it and make the improvement until it getting better and better for the customer or user used.The satisfied from user are very important because from user's viewpoint, the work product is the resultant information that somehow makes the user's world better. So, the software engineer need to produces the high-quality work product for user. That why the process of development software take a long time to finished.

2.      Why are development cost so high ?

     Developing software  cost so high because of many factor. Firstly, when we want to develop the software, we need the computer equipment and nowadays, it was expensive. This is especially to develop the high quality software which mean the developer need to upgrade their hardware or buy a higher spec of computer. Plus, software methodologies and tools change very often, the developers need to invest a lot of time and budget to keep it up with the development to provide the better software and make the user satisfied. Second, it's also takes skills and experience and lots of people working to develop and test the software. It can take months even years to get all the code written and tested and checked. It takes a team of people to do this, and all of them are well educated and often have a lot of experience. So, all this people need to be paid for their works to keep living and it costs a lots of money. Third, developing software need the understanding from each others, developer and user/customer. Both of them need to agree for the requirement and the spec before development process happened. This is because when the codebase grows and the complexity increases together with it, a small change can cause the higher cost to make it happened. The programmer may decide properly restructuring the code to facilitate this small change and will involves a long time and cost to paid the works.


3.      Why can’t we find all errors before we give the software to our customers ?

     In the making of software, there a lots of test & error must be done. But as a human we are not perfect. Every human being have different perspective and their own opinion. So, when we developing the software, we must really know what the customer needs to decrease the errors from happened. The developer and customer must always meeting to test and error, again and again until everyone are satisfied before do the finalization process. Developer also must give all efforts by following some steps that can avoid from error happened in software. Avoid using the fancy coding. The more complicated the code, the more likely there's bugs. Usually on the modern systems, clearly written code will be fast and small enough.For existing code, learn how to restructure, how to make small changes in the code, often using an automated tool, that make the code more readable without changing the behavior.Don't do anything too quickly. Taking a little time up front to do things right, to check what you've done, and to think about what you're doing can pay off big time later.Once you've written the code, use what you've got to make it good. Unit tests are great. You can often write tests ahead of time, which can be great feedback (if done consistently, this is test-driven development). Compile with warning options, and pay attention to the warnings.Get somebody else to look at the code. Formal code reviews are good, but they may not be at a convenient time. By following this step the error will be reduce when the software was been given to the customer/user.

4.      Why do we spend so much time and effort maintaining existing programs ?

    When we talks about maintaining the existing programs, user know the programs had been done already. It suppose should not have a bugs , error and failure functionality , it must be perfect to use. That is from user viewpoint, but as the software engineer we know where the level of our software. It's still need improvement or not. That why when first software was been launched, user's complaints was very important to software engineer aware. This because they will know where the part of the software that they need to do the improvement. To make this changes was not easy, need a lot of efforts and time from all team workers that involves in the software development. Otherwise, if the developer take easy on the development without cares about the future, he will faces the big problems. For the example, if the developer developed the software without manage the coding properly ,in future to make the improvement or fix it will take a lot of time and effort even to make a simple fix. So, management in development it so important. Another example is  a car. When we buy a new car,  it is in good condition. But in certain time we need to sent our car to services. If not our car will be in higher risks to break down. Same as software, in certain time we need to make a 'service' to make sure all in good functions. Furthermore, our technology in this worlds a so fast improve, such as operating system. So, we need to do the maintenance to upgrade our software to be compatible with a new software. In facts, there are too many why we need to give a lot of effort and time to maintaining a existing program but what is most important ,the determination and encouragement from the developer to produces the high quality program with lower risks and error.

5.      Why do we continue to have difficulty in measuring progress as software is being developed and maintained ?

      We have this difficulty because we as a human being doesn't know when and what will happened to the software in future. Sometimes we will do a mistakes, and the errors will happened and we need to fix it back. This will make the progress delayed until the error was been found and fixed. But we still can try decrease this an unexpected error from happened by managing the process with cares. With the good management we can estimated the period to finish the software. Otherwise, the miserable will happen to us. Same to development team. If certain of the team doesn't not works as what they had been asked, it will drag all team member to a long time in a progress to finished up the project.