Monday, July 10, 2006

Collaborative Practices for the Dream Team

Fran O'Hara, Insight Test Services, Ireland

This is an article from the August edition of the EuroSTAR newsletter.
Click here to view the entire Newsletter and to subscribe for future editions.

What are the best team-based practices to help testers and developers collaborate to deliver better software more quickly and less expensively? This article will highlight and provide insight into two high value practices that are both practical and proven in industry.

(Note these and other team based practices such as collaborative planning, project reviews, agile practices, etc. will be expanded upon in Fran O’Hara’s tutorial of the same title at EuroSTAR 2006)

1. Reviews.

Reviews are a key team-based practice that helps develop better collaboration between developers and testers…. if they are well executed. Appropriate use of an efficient and effective review process (one that finds a high percentage of important problems quickly and which also promotes learning) is the best way to gain cultural acceptance and facilitate collaboration. Testers need knowledge to test – reviews are a practical way to gain much of that requirements/system knowledge. Testers are also excellent at finding documentation faults so their involvement adds considerable value. Key documents that benefit significantly from collaborative review involving developers, business analysts, users and testers include User Requirements and Functional Specifications as well as Test Strategies and Plans.

Typical pitfalls with reviews include:

1. Reviews aren’t planned into the project schedule so they have to be done for free in zero time! Without enough time to prepare or indeed without having the right review team, reviews will not find a sufficient percentage of important problems.

2. Review meetings drag on and aren’t well managed. Trivial issues like spelling mistakes are raised, discussions about solutions occur and conflicts arise about the severity of problems or which solution is best.

3. A ‘review everything’ mandate has come from management. When too much has to be reviewed together, the natural tendency is to check the documents quickly just to get through them. This results in finding the more obvious and trivial problems but many of the more subtle and important problems are missed.

4. A ‘one size fits all’ process is being used. Sometimes this is too formal and rigorous for what is really required or indeed for the existing level of maturity of the organisation. This can then result in going through the motions with reviews – this lack of buy-in is often fatal for the process.

5. Review leader role is not emphasized (e.g. no training provided) – leading to poorly planned preparation and poor management of the review meeting – see point b. above. The review leader role is there to ensure efficient and effective reviews by maintaining the team’s focus on finding major defects.

A sample practical peer review process which avoids the above pitfalls will be presented and practiced at the upcoming EuroSTAR conference tutorial.

2. Risk based testing practices.
Risk-based testing provides a common language between all stakeholders including test, development, management and customers/users. Workshops where key stakeholders collaborate to identify and analyse risks and then develop a full lifecycle risk-based test strategy are powerful collaborative activities. They unite development and test in a collaborative approach to testing and addressing risk (including the go/no-go decisions on release). The knowledge transfer and shared vision resulting from such collaborations go a long way to helping ensure a successful project.

Risk-based testing typically involves:

1. Identifying and analyzing/prioritising product risks that can be addressed by testing. This is best done in collaboration with customers/users that can provide business risks and developers who can provide system/technical risks. Examples of business risks include critical functions/features that the users need to do their job. System/technical risks could include core system functions, performance, security or other issues that are critical from a system operational viewpoint. Workshops are an effective approach to use here.

2. Developing a testing strategy that can mitigate these prioritised risks. This may involve assigning critical features to be tested in particular stages or iterations of testing (ranging from static testing such as peer reviews of designs/code to dynamic testing such as functional system testing). Again, focused workshops facilitate this collaboration and agreement on the testing approach throughout the full lifecycle for best results.

3. Designing tests within each test stage that extensively check the allocated high risk elements with less testing of lower risk elements. The result is a prioritised set of test cases agreed by project stakeholders to address the most important product risks.

4. Executing the tests in order of priority.

5. Reporting progress on the basis of risks addressed and residual risks remaining.

Users have their concerns addressed and are provided with information in a language they understand i.e. risk. Developers provide input on technical risk identification as well as executing their part of an integrated test strategy. Testers gain valuable knowledge to help ensure they add significant value to the project.

In summary, at Insight Test Services (www.insight-test.com ) our experience in multiple environments and domains has been that the above two team-based collaborative practices are both practical and highly beneficial in terms of project success. Properly planned and managed reviews used throughout the complete lifecycle make a significant contribution to quality of the final product. The deployment of our risk-based methodology Test Control™ on projects has helped to ensure the positive involvement and collaboration of all stakeholders on a wide range of projects of different size and complexity.

Biography

Fran O’Hara is European director of RPI Alliance,Ltd, (www.rpialliance.com) an alliance of consulting companies collaborating to deliver advanced process improvement technologies. In 1996, he formed Insight Consulting (www.insight.ie) providing Process Improvement services. In 2002, he co-founded Insight Test Services providing managed test/validation services. He is a co-founder and ex-chairman of the Irish Software Testing SIG, SoftTest Ireland (www.softtest.ie), a fellow of the Irish Computer Society and a regular presenter at international conferences and seminars.

No comments: