Following are the causes identified behind the failure of software development:
Other causes of software development failures are as follow:
- Optimism:
Bugs are the result of faulty ideas. An assumption of "all will go well" leads to a possible negative effect on the schedule. The project may go as planned if as the probability distribution for encountered delay exists and "No Delay" has a finite probability. A large programming effort may consist of many tasks that might be interlinked which exponentially decreases the possibility of a successful software project development, as the probability of success is highly dependent on the successful development of each of the components itself.
- Man-Month:
Total Cost = Total number of Men x Total number of Months
In reality, progress is not equal to the equation above !
The size of the job cannot be measured from the Man-Month measuring unit as it considers Man and Month being interchangeable units. It is possible only if the task can be divided among the workers and does not require communication; which is not true for systems programming instead is possible for physical tasks such as farming.
Task being sequential requiring constant communication cannot be partitioned thus more labor applied to it cannot result in the completion of task before schedule i.e.
Progress = 0 (with respect to increase in labor)
Therefore such tasks should also be added to the amount of work done.
The communication taking places in software development houses are of 2 types:
- Training:
- For use of new technology.
- For understanding the goals of the effort.
- For the derivation of an overall strategy.
- For understanding the plan of work where it cannot be partitioned. Where this effort becomes directly proportional to the number of trainee workers.
- Intercommunication:
- Each part of the task should be separately coordinated with other parts. Thus resulting in an increase in effort such that:
Effort=(n(n-1))/2,Where n=number of workers
- System Test:
Result: Testing Phase is the most MIS-SCHEDULED part of the system programming.
Thus the cost of delay will be very high if the project is fully staffed and the cost per day has reached its maximum value. The software is to support other business efforts i.e. shipping of computers and operation of new facilities etc. It is also known as the "secondary cost" which is the highest as compared to the rest of the cost. To avoid it a proper schedule should be devised for software testing. Schedule troubles are only encountered at the delivery time when late delivery results in unhappy customers and higher costs of delay leading to severe financial and psychological effects. Author according to this observation proposed his own time division between tasks:
- 1/3 of total time for Planning
- 1/6 of total time for Coding
- 1/4 of total time for Component testing and early system testing
- 1/4 of total time for system testing and debugging of all its parts.
- One-half of the project schedule is spent on testing.
- Many projects completed on schedule until and except in system testing where not enough testing time resulted in system failure.
- Gutless Estimation:
- Productivity figures
- Bug incidents
- Estimation rules
- Regenerative Schedule Disaster:
- Rescheduling:
- The work according to the newly driven schedule.
- The quality of the work will be maintained.
- Adding new skilled labor still required training which may result in then again a false estimation. One of the reasons for this is that it may deviate the team from the actual task or the repartitioning of tasks may result in the loss of the already done tasks.
- Trim of Tasks:
- This technique is the most feasible if the secondary costs are really high.
- Managers proposition in this case:
- Trim firmly and carefully to schedule.
- Silently trim tasks by hasty designs and incomplete testing.
The major reason for the failure of software products is the schedule devised for its delivery after development and testing. The following can be used to drive software development schedule:
- The total number of months required for the completion of the project is directly proportional to the sequential constraints.
- The maximum number of men required for the project is directly proportional to the total number of subtasks.
Comments
Post a Comment