Software Myths- beliefs about software and the process used to build it - can be traced to the earliest days of computing. Myths have a number of attributes that have made them insidious. For instance, myths appear to be reasonable statements of fact, they have an intuitive feel, and they are often promulgated by experienced practitioners who "know the
score".
There are three types of myths :
- Management myth
- Customer myth
- Practitioner myth
Management Myths
Managers with software responsibility, like managers in most disciplines, are often under pressure to maintain budgets, keep schedules from slipping, and improve quality. Like a drowning person who grasps at a straw, a software manager often grasps at belief in a software myth, If the Belief will lessen the pressure.
Myth 1 : We already have a book that's full of standards and procedures for building software. Won't that provide my people with everything they need to know?
Myth 1 : We already have a book that's full of standards and procedures for building software. Won't that provide my people with everything they need to know?
The book of standards may very well exist, but is it used?
- Are software practitioners aware of its existence?
- Does it reflect modern software engineering practice?
- Is it complete? Is it adaptable?
- Is it streamlined to improve time to delivery while still maintaining a focus on Quality?
In many cases, the answer to these entire question is no.
Myth 2 : If we get behind schedule, we can add more programmers and catch up (sometimes called the Mongolian horde concept)
Reality : Software development is not a mechanistic process like manufacturing. In the words of Brooks [BRO75]: "Adding people to a late software project makes it later." At first, this statement may seem counterintuitive. However, as new people are added, people who were working must spend time educating the newcomers, thereby reducing the amount of time spent on productive development effort
Myth 3 : If we decide to outsource the software project to a third party, I can just relax and let that firm build it.
Reality : If an organization does not understand how to manage and control software project internally, it will invariably struggle when it out sources software project.
- Are software practitioners aware of its existence?
- Does it reflect modern software engineering practice?
- Is it complete? Is it adaptable?
- Is it streamlined to improve time to delivery while still maintaining a focus on Quality?
In many cases, the answer to these entire question is no.
Myth 2 : If we get behind schedule, we can add more programmers and catch up (sometimes called the Mongolian horde concept)
Reality : Software development is not a mechanistic process like manufacturing. In the words of Brooks [BRO75]: "Adding people to a late software project makes it later." At first, this statement may seem counterintuitive. However, as new people are added, people who were working must spend time educating the newcomers, thereby reducing the amount of time spent on productive development effort
Myth 3 : If we decide to outsource the software project to a third party, I can just relax and let that firm build it.
Reality : If an organization does not understand how to manage and control software project internally, it will invariably struggle when it out sources software project.
Customer Myths
A customer who requests computer software may be a person at the next desk, a technical group down the hall, the marketing /sales department, or an outside company that has requested software under contract. In many cases, the customer believes myths about software because software managers and practitioners do little to correct misinformation. Myths led to false expectations and ultimately, dissatisfaction with the developers.
Myth 1 : A general statement of objectives is sufficient to begin writing programs we can fill in details later.
Myth 1 : A general statement of objectives is sufficient to begin writing programs we can fill in details later.
Although a comprehensive and stable statement of requirements is not always possible, an ambiguous statement of objectives is a recipe for disaster. Unambiguous requirements are developed only through effective and continuous communication between customer and developer.
Myth 2: Project requirements continually change, but change can be easily accommodated because software is flexible.
Myth 2: Project requirements continually change, but change can be easily accommodated because software is flexible.
It's true that software requirement change, but the impact of change varies with the time at which it is introduced. When requirement changes are requested early, cost impact is relatively small. However, as time passes, cost impact grows rapidly - resources have been committed, a design framework has been established, and change can cause upheaval that requires additional resources and major design modification.
Practitioner Myths
Myths that are still believed by software practitioners have been fostered by over 50 years of programming culture. During the early days of software, programming was viewed as an art form. Old ways and attitudes die hard.
Myth 1: Job is done once we write and get the program work.
Someone once said that the sooner you begin writing code, the longer it’ll take you to get done. Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer for the first time.Myth 2: I should not accessing the quality, until i got the program running.
One of the most effective software quality assurance mechanisms can be applied from the inception of a project – the formal technical review. Software reviews are a “quality filter” that have been found to be more effective than testing for finding certain classes of software errors.Myth 3: Working program is the only deliverable work for a successful project.
A working program is only one part of a software configuration that includes many elements. Documentation provides a foundation for successful engineering and a more importantly, guidance for software support.
No comments:
Post a Comment