Problem:
Feedback cycle time causes loss in productivity.
One of the productivity killers is long feedback times – The longer it takes to get feedback the more time is wasted either waiting or context switching.
Consider this example: Development has completed fixes to several bugs, but these are not tested until a week later. During this week the developers has written 100 lines of code and is no longer in context of the work done. When feedback from test, a customer demo or another source the developer has to start from scratch. It also goes for testers writing test cases, business analysts writing specifications etc. for the purpose of this article we will focus on feedback cycle time between development and testers.
Solution:
Explorative test, and reviews.
The agile projects we run makes the need for feedback even more urgent, as a week of waiting will not fit into a sprint of 14 days. In order to facilitate quick feedback we utilize explorative test and reviews, and this is how it is applies in a sprint.
When the
sprint the starts reviews are applied the Sprint Backlog Item (SBI), focusing
on code and test ability. This forces participants into thinking before acting,
and flushes a series of questions. These questions reduces the chance of
misunderstandings and misinterpretations of the requirements.
While
developer profiles write code, test profiles write test in the team. This test
focusses on the acceptance criterias of the SBIs under development, and is
often no more than test charters. The test charters can then be executed as
soon as deployment is done to a test environment.
Formalized
test cases can be recorded using the Microsoft Test Manager (MTM) for
explorative testing, making test case writing a 2nd priority when
preparing a team for fast feedback. For details on how to record bugs, test
cases and general usage of MTM for explorative test please visit: http://msdn.microsoft.com/en-us/library/vstudio/hh191621.aspx
Before
anything ships all code is reviewed using StyleCop, but on top of that pair
reviews amongst the developers is encouraged. Another thing that I have not
mentioned is unit test, but (I hope) that it goes without saying that unit
tests is the fastest feedback a developer can get – A must have!
Things that
might be worth trying to reduce feedback time: Developer
runs test cases directly related to acceptance criteria for the SBI he is
working on BEFORE check-in. We have not tried this in practice, as it would
require detailed test cases being written up front.
Happy
testing!
/Nicolai