On a previous post on Agile QA Guidelines, we discussed metrics reporting but didn’t go into specifics. With agile, everyone thinks you go faster and get more done. Therefore, agile velocity is often the key metric. Wrong! Agile velocity is a resultant metric, one that happens when you do other things right. The problem is that when you go faster, you tend to crash more often.
So, when we work with clients who seem to focus on velocity, we try to convince them to take the view that if they focus on quality, and aspects of quality that will directly impact productivity and efficiency, then they’ll be able to achieve velocity.
So the question becomes, what things impact velocity and how can we work on these elements? Here are a few:
Rework: This comes in many forms. Any time you have to do something again, that’s rework, by definition. So any time you have a defect, that’s rework. As a tester, you may be asked:”why didn’t we (you) find this defect?” But as developers, do we also ask, “Why did you insert this defect?” The most important thing about defects is to take the time to examine the source of the defect, and why and where it was inserted. This kind of analysis should be done regularly, and if not, it becomes… Technical Debt.
Technical Debt: Also coming in many forms, this could be any one of the following such as; code that needs to be refactored, test cases that don’t get written, defects that stay in a person’s head although still active. It’s natural that if you go fast, you make sacrifices that could impact your future capabilities to adapt and go faster.
Requirements: In agile, there is a tendency to rush through requirements thinking that we need to be flexible, ‘we don’t need no documentation, the requirements will change anyway’… But if we just slow down a few minutes to get a product owner more involved and to get tests written against the requirements, then we’d increase the quality of our development and eliminate tons of rework.
These 3 elements are inter-related and the top culprits at inhibiting agile velocity. By getting a handle on these 3, you’ll get to velocity. Don’t just focus on getting more stories out the door. You’ll surely crash.