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.