Our client was responsible for the development and maintenance of multiple software projects. The teams were following a Scrum-based development process, but as the size of the projects increased, the need for a continuous assessment of the systems became apparent to ensure the quality and compliance of the work. We were mandated to improve this state by introducing daily assessment.
We approached these issues in two ways: (1) we introduced custom reporting tools, and (2), we coached the teams to make their decisions explicit, and to check them against the reality of the system.
To get stakeholders to define their concerns explicitly, we held several interactive workshops in which we identified problems and showed how these can be answered fast. We then encoded these concerns into rules that addressed several areas including quality assurance and documentation.
We used Moose to craft the reporting tools. These tools were integrated into the continuous integration process and provided continuous and contextual feedback about how the concerns were reflected in the system. An example of such a report can be seen below.
The most important component of our work was to affect the development process to get the team take the actual state of the system into account and to correct the situation continuously.
First, the concerns were made explicit and captured in form of rules that were integrated into the continuous reporting. The detected problems were then discussed on a daily basis. If the rule was considered valid, it was either resolved immediately, or planned for a later iteration. If it was determined that the concern is not valid or has exceptions, the rule was adjusted.
The quality of the projects improved in a short amount of time with only little overall overhead, and the confidence of the team and management increased.