When all is said and done, moving to agile development methodologies has had positive results for us.
The biggest gain by far is the total focus on delivering client value early and at all stages of a project. Sure we were focused on client value before, but only at the milestones where there were client deliverables. Usually, iterations were longer and developers did the tasks in any order as long as the client got the expected result at the end of the day. This resulted in being 80% done for a long time yet having software that was not releasable or testable until near the (sometimes very busy) end.
Two things changed:
- User Stories
- Shorter Iterations
By writing user requirements from the perspective of blocks of user defined functionality, things really change fast. The story is either completed or not. If it’s complete, it’s complete at all levels of the technology stack that the story affects. You either created the customer value or you didn’t.
Developers and other team members stay focused. You can only work on small number of stories at a time (preferably one). This means that they get completed before we move on to the next problems. The importance of this closure cannot be understated.
What this also means is that the user story can be tested by the customer as soon as it is completed. This leads to feedback much earlier in the cycle.
Iterations are now generally 1-2 weeks (depending on the project). User stories are picked to fill the iteration (by the client or client representative) based on client priorities. Developers take on stories of their choosing from the iteration backlog until all the stories are completed.
Iteration velocity can easily be measured and progress more readily tracked. At the end of each iteration, only completed user stories count: and software must be stable and releasable. We can now fully test the software as part of each iteration, increasing the value of testing and quality assurance.
The combination of short iterations AND user stories is where it all comes together. A good source for further reading is “User Stories Applied” by Mike Cohn.
Whether it’s running the business or building software, it’s just smart business to always be focusing on delivering client value.