The seven wastes of software development
Lean Thinking is more than just a set of management tools; it is a philosophy centered on maximizing customer value while relentlessly eliminating waste. At its core, it challenges us...
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.
The SAFe website explains how quality responsibilities are distributed among different roles:
Overall quality arises from the collaboration of different roles in a cross-functional team. Everyone must contribute.
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.
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 often lack the necessary knowledge to include concrete, actionable quality requirements in user stories.
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.
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:
Lean Thinking is more than just a set of management tools; it is a philosophy centered on maximizing customer value while relentlessly eliminating waste. At its core, it challenges us...
In the novel “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win”, the protagonist Bill is promoted against his will and must immediately take over, be...