- Software engineering is extremely complex and expensive work, with large software systems costing more than buildings and often having high failure rates.
- The two main factors that cause "runaway" software projects that exceed budgets and schedules are poor estimation done too early and unstable requirements that change frequently.
- Programmers are often given impossible tasks with too much work and not enough time, leading them to produce workarounds and quick fixes rather than well-designed solutions.