Introduction
Software myths are the propagated misinformation, wrong ideas, wrong opinions and wrong beliefs about software, which appear to be reasonable statement of facts, sometimes containing elements of truth and promulgated by experienced and respected personalities, but they have caused more harm than good. They can be traced to be the cause of software failure or low quality software. There are various software myths, which are promulgated by various groups of people, therefore, they will be classified and discussed based on the group of people that promulgate them. The various classes of software myths are listed below:
These are software myths that are promulgated by managers with software responsibility. The following are the various wrong beliefs of software as promulgated by managers with software responsibility:
However, the truth is that the books that are full of standards and procedures for building software may exist, but do the people use them? Are softwre practitioners aware of the existence of such books? Do the contents of such books reflect modern software engineering practice?
However, the truth is that developing high quality software requires more than the best computers. Furthermore, having state of the art software engineering tools does not mean that they are using the tools efficiently.
However, the truth is that software development is not like manufacturing handware products. In software development, adding more people to the latter stage of software development makes it later. This is because time will be required for the old people that are working on the software project to educate the newcomers, thereby reducing the amount of time spent on productive software development.
However, the truth is that if an organisation does not know how to control an internal software project, they will always struggle to manage the project when they outsource it.
These are the software myths that are promulgated by a client, who may be a person or a group of people or a department in an organisation that has requested for a software to be developed under contract.
However, the truth is that a poor up-front is a major cause of failed software project. The fact is that formal description of the specification of the software in terms of information domain, functions, behaviour, performance, interface, design constraints etc is essential. This can be done through effective communication between the customer and the client.
However, the truth is that though software requirement can change, but the impact of the change depends on the stage the change is introduced. The cost implication of introducing change at the early stage of software project is low, while the cost implication of introducing change at the latter stage of software project is high.
These are software myths that are promulgated by software practitioners (i.e. analyst, designers and programmers).
However, the truth is that formal technical review, which is one of the most effective formal software quality assurance mechanism can be applied from the time the software project started.
However, the truth is that the sooner you begin to write the code, the longer it will take to get the work done. This is because reliable statistics show that between 60% and 80% of software effors are expended after the software is delivered to the custmer at the first time.
However, the truth is that the working program is only a part of the deliverable work product for a successful software project. Documentation, which provide a guide on what the program does and how to use the program is very important deliverable work product of a successful software project.
However, the truth is that software engineering is not about creating documents, but it is about creating quality. Better quality leads to reduced rework, and reduction in rework leads to faster delivery time.
However, the truth is that software is developed by a team of expert and non-experts. The members of software development team should not be the experts only (i.e. analysts, designers and programmers), but it should include the representative of every group of people that has a stake in the system. It has been established that software developed by team members who are experts have many social problems, like rejection, abandonement and abseetism. These social problems can be prevented where a participatory approach to software development is in place. This approach allows people in the organisation to be members of the software development team, and make significant contribution towards the development of the software. The people believe that they are the architect of developed software, and will be willing to make it to succeed, instead of allowing few experts to impose technology on them.