By Andry Plastov
Modern approaches to testing frequently imply antagonism between advocates of Scrum and CMM(I) processes. In my opinion, though, the question of drawbacks and merits is less interesting than combining these processes, i.e. providing the opportunity to create a symbiosis of both Scrum and CMM(I).
What are the particularities of Scrum and CMM(I)? The particular characteristic of Scrum is intensive cooperation and communication in groups, adaptive project management, frequent interim releases and, correspondently, frequently repeated test execution. For CMM(I) it is characteristic that releases come up in considerable time periods, the process is strictly documented and takes much more work input, and it’s less flexible as a result.
Is symbiosis between these processes possible after all? If we take an insight into these processes, we can see that one of them comprises the elements of the other and vice versa. Ex., long periods between releases go well with using Scrum within these intervals, whereas the necessity to manage the requirements and the configurative control are the integral parts of a good Agile project.
Besides, in the current projects it often happens that one project is added to the other one in spiral. Eg., when the test team increases or when new teams join on other sites working in different time zones but within one project, there evolves the necessity to change the process towards CMM(I). At the same time a reduction of the team makes expenditures of the resources for CMM(I) inexpedient and inevitably makes us turn towards the Scrum approach. The delay of the final release leads to the delay of the beginning of the test cycle and, correspondently, to prolongation of the product output; the demand to be on time requires frequent testing at the early stages; besides, the possibility to work out the test plan using raw versions of requirements is the key moment for using a Scrum approach.
An indisputable merit of symbiosis of Agile and CMM(I) is unsurpassed flexibility, which enables adjustments to the process and specifics of the project quickly, to support a good balance between the spend on quality and the cost of the end product. Test execution at the early stages of functional readiness helps to equalize workload of the engineers, to lessen overhead and to reduce the time, needed to put the product on the market.
In my opinion, the modern approach to testing not only can, but should be based on the balanced combination of Scrum and CMM(I) processes