Friday, 21 August 2009

Agile estimating- A practical quick start

Agile estimating techniques described by QSTC are based on the Wideband Delphi forecasting method, a refinement of the Delphi method developed by Rand during the cold war to forecast the impact of technology on warfare. Existing scientific laws didn't really work too well but there was a great deal of experience and expert opinions around. The challenge was to aggregate all of this expertise into a single forecast. A bit like trying to estimate how long the testing of software will take I guess (lol).

The technique uses a facilitator to gather and consolidate information to get a broad consensus on the estimate. After all a guess by the experts is better than a guess by the project manager (sorry PMs out there but you do tend to be a little optimistic at times!)

OK how do we do it? You can follow a quite detailed process in the links at the bottom of the page, but let's fast track it.

First we need to break down the system under test into manageable chunks; a good start point is to discuss with the developers what the content of the first "build" of the system will contain.

For each chunk decide and list what will be tested. Consider the GUI, any hidden client server functions, data bases access (stored procedures/SQL etc), infrastructure, performance checks, stress checks - user and technical (incoming interface overload), and infrastructure checks.

Define the major activities for testing e.g.









Remember tests have to be designed and written. Data has to be identified and created (why do we always overlook the test data strategy). Tests have to be executed and logged, some tests will be repeated (software does sometimes go wrong). Problems have to be analysed, reported, fixed and retested.

This forms the background for the experts at the estimating workshop.

Up to five experts are selected for the estimating workshop for their expertise and knowledge, (no bag carriers, observers this is a working session) covering:

• Experience of developing and testing software's using the chosen technology
• Experience of testing systems
• Experienced business user who know how the system will be used
• Experienced service delivery (the guys who have to run and maintain the system when it is live)
• Project Management

The facilitator describes a chunk of the system to be tested and the attendees vote on the effort required (person hours/days etc). Use the Fibonacci sequence to estimate the effort with hold up cards or post its:-

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

If there are estimates that are significantly different (someone votes 1 day when everyone else thinks it is 8 days) then those experts are asked what made them come to that conclusion. After discussion another vote is taken repeat until consensus is reached.

Record any assumptions that the team have made when estimating.

Thank you for reading, and I hope you found it useful. If you would like further information please feel free to comment below, or visit the following pages:

http://en.wikipedia.org/wiki/Delphi_method
http://www.processimpact.com/articles/delphi.html

It is also worth mentioning that I will be presenting a number of software testing sessions for Intellect (London), during October and November 2009, and if you would like further information please click here.

No comments: