Who Ensures Quality in the Scaled Agile Framework (SAFe)?

May 31, 2024

As an external consultant in an Enabling Team for Cloud Architecture, I supported several teams and noticed that software development quality was lacking. This surprised me because the client was using the Scaled Agile Framework (SAFe). A quick look at the SAFe website promises that quality is built in with “build quality in.” Why was this not the case in the projects I was involved in?

For example, unit test coverage was low, and there were many untested areas in the code. The code was not “clean” with long, hard-to-understand methods. Domain-driven design was not applied, resulting in anemic data classes, where classes contained only data while business logic was hidden in services or repositories. Technical debt was not managed.

Who is Responsible for Quality in SAFe?

The SAFe website explains how quality responsibilities are distributed among different roles:

  • Product Owners ensure that acceptance criteria are clearly defined and quality requirements are included in user stories.
  • Developers and Testers use practices like test-driven development (TDD), behavior-driven development (BDD), pair programming, and code reviews to ensure code quality and catch errors early.
  • System and Solution Architects define the Architectural Runway and ensure the architecture supports these practices.

Overall quality arises from the collaboration of different roles in a cross-functional team. Everyone must contribute.

Where Did the Poor Quality Come From?

Quality Was Not a Priority

In some projects, the saying “Good, Fast, Cheap—pick two” prevailed. Under time pressure, features were quickly produced with a “we’ll fix it later” mindset, neglecting quality.

Lack of TDD Skills Among Developers

Test-driven development (TDD), pair programming, and code reviews were often skipped to “save time” in the short term, leading to more time spent fixing bugs later. Some developers lacked TDD skills, which need time and effort to learn.

Product Owners and Quality Requirements

Product Owners often lack the necessary knowledge to include concrete, actionable quality requirements in user stories.

Quality Assurance with Quality Analysts

In Thoughtworks projects, a Quality Analyst role (QA) is provided if needed. The QA focuses on the testability and correctness of the application and teaches the team to view the project through a quality assurance lens and build in quality. A successful QA enables the team to eventually produce high-quality software independently.

Conclusion

In SAFe, quality is “built-in” if and only if the whole team knows and applies quality practices. Otherwise, the team needs coaching to learn these practices, best done iteratively in daily work with a QA.

Remark:

  • Scaled Agile Framework® and SAFe™ are trademarks of Scaled Agile, Inc.