If a project has not achieved a system architecture, including its rationale, the project should not proceed to full-scale system development. Specifying the architecture as a deliverable enables its use throughout the development and maintenance process.
Poor management can increase software costs more rapidly than any other factor.
Agile methods derive much of their agility by relying on the tacit knowledge embodied in the team, rather than writing the knowleadge down in plans.
Fix specification errors early.
To fix later, they will cost:
* 500% more at design stage
* 1,000% more at coding
* 2,000% more at unit test
* 20,000% more at delivery