The challenges of large-scale software development PDF Print E-mail

Research carried out on behalf of the US government indicates that the majority of large-scale software developments will never reach completion. Why should this be so, especially when there are so many experienced software developers and project managers.

Experience and lessons learned in smaller development projects is misleading. This experience cannot be scaled to larger projects in a linear fashion:

  • The type of effort required changes radically.
  • The major work shifts from programming (writing code) to defect detection and removal. Productivity decreases dramatically with size.
  • Adding programmers often adds even more complexity and decreases efficiency.
  • Required management and communication time increases as a function of staff numbers and software complexity.
  • Large teams are very poor predictors of their own performance.
  • It is not appreciated that small improvements in process result in large improvements in productivity.

Effort, time, size, complexity and productivity all have very non-linear relationships

Development projects are frequently initiated without adequate preparation. Proper linkage of the business, technical and management requirements is often overlooked.

  • Business and user requirements are not traced through the life of the development.
  • Management reviews have no yardstick to measure real progress.
  • Risks are inadequately identified and managed.
  • The choice of technologies and suppliers can be haphazard.
  • Technical trade-offs are made without reference to business needs. The critical path is not properly identified or managed.
  • Software Configuration Management is inadequately addressed.
  • User Acceptance test reveals big surprises.

The less attention paid to proper project set-up, the lower the productivity of the development project and the higher the risk that business goals will not be met.