You are on page 1of 1

SYMPTOMS AND ROOT CAUSES OF SOFTWARE DEVELOPMENT

PROBLEMS

Different software development projects fail in different ways—and, unfortunately, too


many of them fail—but it is possible to identify a number of common symptoms that
characterize these kinds of projects: [2] [3]

[2]
Caper Jones, Patterns of Software Systems Failure and Success. London:International Thompson Computer Press,
1996

[3]
Edward Yourdon, Death March: Managing "Mission Imposible" Projects. Upper Saddle River, NJ: Prentice-Hall,
1997.

• Inaccurate understanding of end-user needs


• Inability to deal with changing requirements
• Modules that don't fit together
• Software that's hard to maintain or extend
• Late discovery of serious project flaws
• Poor software quality
• Unacceptable software performance
• Team members in each other's way, making it impossible to reconstruct who
changed what, when, where, and why
• An untrustworthy build-and-release process

Unfortunately, treating these symptoms does not treat the disease. For example, the late
discovery of serious project flaws is only a symptom of larger problems, namely,
subjective project status assessment and undetected inconsistencies in the project's
requirements, designs, and implementations.

Although different projects fail in different ways, it appears that most of them fail
because of a combination of the following root causes:

• Ad hoc requirements management


• Ambiguous and imprecise communication
• Brittle architectures
• Overwhelming complexity
• Undetected inconsistencies in requirements, designs, and implementations
• Insufficient testing
• Subjective assessment of project status
• Failure to attack risk
• Uncontrolled change propagation
• Insufficient automation

You might also like