O'Reilly logo

Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results by Eli Schragenheim, David J. Anderson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 4. Dealing with Uncertainty

The Five Constraints of Software Development

There are five main constraints in software development management: people, time, functionality, budget, and resources (excluding people). Agile methods recognize these constraints and seek to protect and exploit them [Beck 2000, p. 15].

Resources must be protected from uncertainty. Uncertainty manifests itself when the unplanned happens. A system can absorb uncertainty with the provision of buffers. Tom DeMarco wrote an entire book Slack, about buffering resources in software [2001]!

In every case, a constraint can be protected by a buffer. A buffer would normally be allocated in the same unit of measure as the constraint is measured. Hence, people should be ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required