Saturday, December 18, 2010

Software Myths!!!

Software Myths!!!

The above pictures elucidate that the techies understand the problem differently than what it really is and it results to a different solution as the problem itself is misunderstood.So the problem understanding i.e. requirement analysis must be done properly to avoid any problems in later stages as it will have devastating effects.

Software Myths : Myth is defined as "widely held but false notation" by the oxford dictionary, so as in other fields software arena also has some myths to demystify.Pressman insists "Software myths- beliefs about software and the process used to build it- can be traced to earliest days of computing. Myths have a number of attributes that have made them insidious." So software myths prevail but though they do are not clearly visible they have the potential to harm all the parties involved in the software development process mainly the developer team. Tom DeMarco expresses “In the absence of meaningful standards, a new industry like software comes to depend instead on folklore."The given statement points out that the software industry caught pace just some decades back so it has not matured to a formidable level and there are no strict standards in software development. There does not exist one best method of software development that ultimately equates to the ubiquitous software myths.

Primarily, there are three types of software myths, all the three are stated below: 1. Management Myth
2. Customer Myth
3. Practitioner/Developer Myth
Before defining the above three myths one by one lets scrutinize why these myths occur on the first place. The picture below tries to clarify the complexity of the problem of software development requirement analysis mainly between the developer team and the clients.

1.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 those beliefs will lessen the pressure (even temporarily). Some common managerial myths stated by Roger
Pressman include:
I.We have standards and procedures for building software, so developers have everything they need to know.
II.We have state-of-the-art software development tools; after all, we buy the latest computer.
III.If we're behind schedule, we can add more programmers to catch up.
IV.A good manger can manage any project.

The managers completely ignore that fact that they are working on something intangible but very important to the clients which invites more trouble than solution. So a software project manger must have worked well with the software development process analyzing the minute deals associated with the field learning the nitty-gritty and the tips and trick of the trade. The realities are self understood as it is already stated how complex the software development process is.

2.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 lead to false expectations (by the customer) and, ultimately, dissatisfaction with the developer. Commonly held myths by the clients are:
I.A general statement of objectives is sufficient to begin writing programs - we can fill in the details later.
II.Requirement changes are easy to accommodate because software is flexible.
III.I know what my problem is; therefore I know how to solve it.
This primarily is seen evidently because the clients do not have a first hand experience in software development and they think that it's an easy process.

3.Practitioner/ Developer 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. A malpractice seen is developers are that they think they know everything and neglect the peculiarity of each problem.
I.If I miss something now, I can fix it later.
II.Once the program is written and running, my job is done.
III.Until a program is running, there's no way of assessing its quality.
IV.The only deliverable for a software project is a working program.
Every developer should try to get all requirement is relevant detail to effectively design and code the system.

Some misplaced assumptions that intensify the myths are listed below:
1.All requirements can be pre-specified
2.Users are experts at specification of their needs
3.Users and developers are both good at visualization
4.The project team is capable of unambiguous communication
On the whole, realities are always different from the myths. So the myths must be demystified and work should be based on systematic, scientific and logical bases than the irrational myths. The systemic view must be considered to determine the success of any software project its not only the matter of hard skills but soft skills of the developer team also matter to come up with a efficient system.

No comments:

Post a Comment