Disciplined Agile

Improve Quality

This Construction phase process goal describes how our team will continuously improve the quality of our work and potentially reduce technical debt within our overall infrastructure. The focus of this goal is to capture specific techniques, rather than general strategies such as increasing collaboration, comprehensive testing, and reducing the feedback cycle. These general strategies pervade DA tool kit, for example the Accelerate Value Delivery process goal encompasses a large number of testing techniques and strategies, and the Produce a Potentially Consumable Solution process goal addresses consumability techniques and executable specification strategies such as test-driven development (TDD) and behavior-driven development (BDD) that reduce the feedback cycle a DA team has with its stakeholders. The point is that quality strategies pervade DA.

To properly improve quality we must consider all aspects of our work, not just the work products that we create, and we must be enterprise aware in that we recognize quality goes beyond the confines of the solution that we’re producing.

2021 Project Management Institute Improve Quality v5.2 Improve Implementation Refactor code Refactor databases Refactor user interface (UI) Refactor test assets Accept technical debt Rewrite Improve Deliverable Documentation Single-source information Executable specifications Single-purpose documents Multipurpose documents Improve Deliverable Format Apply concise template Write freeform documents (#NoTemplates) Refactor away from template Apply comprehensive template Reuse Enterprise Assets Follow common guidelines Leverage common process assets Leverage existing experience/learnings Leverage shared data sources Leverage shared functionality

Figure 1. The Improve Quality process goal diagram.

Click the diagram to open the interactive DA Browser, where you can learn more about the decision points and options of this goal.

Why This is Important

This goal is important because it enables us to:

  1. Pay down technical debt. Technical debt refers to the implied cost of future refactoring or rework to improve the quality of an asset to make it easy to maintain and extend. We want to pay down technical debt, in other words fix the quality problems within our assets, to enable us to evolve them safely and quickly. High-quality assets are easier and cheaper to work with than low-quality assets.
  2. Avoid new technical debt. At a minimum we shouldn’t make our organization’s technical debt problem any worse than it already is. By being quality focused, by quickly addressing any quality problems that we do inject into our work (often via refactoring), we can avoid adding new technical debt.
  3. Work in a more enterprise-aware manner. Quality problems affect everyone—they affect our team’s ability to evolve our solution to meet the changing needs of our stakeholders, they affect the user experience of our solution, and they reduce the value of our solution to our organization.

Important Questions to Consider

  • How will we address technical debt within our system(s)?
  • How will we produce high-quality documentation?
  • How will we take advantage of existing infrastructure and other assets? 

Key Points

  • Technical debt is slowly choking the life out of your organization, reducing your ability to respond to opportunities in the marketplace and increasing your cost of operations.
  • The easiest technical debt to pay down is the debt that you don’t incur in the first place.
  • Consider paying down technical debt gradually over time, making it part of what you normally do as a matter of course.

January 2023