Uncertainty | Glossary

Definition

Uncertainty is a crucial aspect that requires constant management in Agile Projects. Since Agile involved empirical processes( aka “the need to know”), there is a requirement of understanding how to adapt the process to unknown quantities. The “Stacey Complexity Model” categorizes uncertainty into two types :

  • Requirements Uncertainty: Dealing with the requirements of a Project and the certainty of the customers in wanting the project
  • Technology Uncertainty:  Dealing with the level of understanding of technological solutions to the problem

Further Reading

  •  “Actionable Agile Metrics for Predictability: An Introduction”(book), by Daniel S Vacanti

Technical Debt | Glossary

Definition

Technical Debt represents that extra rework caused when a faster, seemingly-easier solution is chosen to accomplish a task, instead of a more reliable one that takes a long period of time. The carry over work accumulates as ‘debt’ and can cause problems for the development team in the long run. It is also referred to as Design Debt, and is commonly associated with extreme programming.

Further Reading

  •  “Refactoring for Software Design Smells: Managing Technical Debt”(book), by Mike Cohn