As a member of the TMMi (Test Maturity Model integration) Foundation, I have been part of a group that have been looking at how TMMi is applied to Agile projects and organisations. In fact, for experienced Agile and TMMi Practitioners, the current form of TMMi can be applied as is to Agile projects and even whole Agile organisations.
In order to make it more accessible to everyone, we have been interpreting TMMi for you, to use in your Agile environment. To date we have completed this for Level 2 Managed and I wanted to share this with you. The full document can be found at https://www.tmmi.org/tmmi-documents/
TMMi and Agile
There is a mistaken belief that the TMMi and Agile approaches are at odds. Where TMMi may be seen as heavy weight and process rich, Agile is seen as lightweight with flexible process.
Agile approaches and TMMi can not only co-exist, but will bring substantial benefits when successfully integrated. Testing is fully embedded within Agile development, whilst in traditional methods there is likely to be an independent team which can create challenges when looking at what that means in the context of a “test” improvement programme.
Using the TMMi model in an Agile context provides reminders of critical testing practices that are often “forgotten”. The document shows, with examples, that TMMi and Agile methods can effectively work together. The challenge is to apply lean principles to empower Agile and facilitate TMMi practices.
Some of the principal aspects to consider, when looking at the influence of Agile on improvement context, are:
- Improvement cycle frequency
- Organisational aspects
- Scope of improvements
- Source of improvements
- Level of (test) documentation
- Improvement methods
TMMi Model
The TMMi Model, for those of you that have not seen it, looks like this:
Within Agile projects, improvements generally take place in regular feedback loops which enable test process improvements to be considered frequently as a result of the discussions within the Retrospectives.
Often small but frequent improvements are made which focus mainly on solving specific project problems. The focus of these improvements is often not on cross-project learning and institutionalisation of improvements.
One of the key differentiators in projects using an Agile methodology is not to expect the level of test documentation you would from projects using a sequential lifecycle. There may be a single combined “test document” covering the essential elements of a test policy, test strategy and even high-level test plan.
Test process improvers should avoid making “improvement” suggestions which call for more rigorous and thorough test documentation. Agile projects focus more on the team discussion, resulting in a common understanding rather than extensive documentation.
Process Area 2.1 Test Policy and Strategy
The purpose of the Test Policy and Strategy process area is to develop and establish a test policy, and an organisation or program-wide test strategy in which the test activities, such as test types and test quadrants, are unambiguously defined. To measure test performance and value of test activities, as well as expose areas for improvement, test performance indicators are introduced.
Test Policy
The test policy defines the organisation’s overall test objectives, goals and strategic views regarding testing and test professionals. The TMMi specific goal to Establish a Test Policy, including its specific practices, is fully applicable to organisations applying Agile software development. Of course, the elements of a test policy can also be incorporated in another document.
Test Strategy
A test strategy is a vital document within an Agile environment. It defines on a high-level the testing to be done in the Agile teams, what test types and test quadrants are executed, and their approach at a high-level. The test strategy ensures that all those involved in testing understand the bigger testing picture.
The lean test strategy document is often a good solution for Agile organisations. During release, planning either the already available organisation or program-wide test strategy is discussed and confirmed, or a test strategy is created specifically for the project.
Establish Test Performance Indicators
Within Agile, the focus is more on team-based and systems thinking. This may result in a corresponding broadening of indicators to the team and overall system, rather than being confined solely to the specifics of testing itself.
Also, the indicators at TMMi level 2 are mainly related to the end results of the iterations. Examples include escaped defects, velocity, customer satisfaction ratings, effort/waste, test automation percentage, etc. The challenge is to define the appropriate blend of indicators relating to the team-based approach and systems thinking, while giving a good indication of the performance achievements of a TMMi-based test improvement programme.
PART II – Test Planning, Monitoring and Beyond →