Friday, May 8, 2009

Iterate your Way to Success (and have fun doing it)

I've been interested about Agile methodologies for a while but until recently I've never been on a project that really embraced iterations and change. e did try a few techniques (daily meeting, poker planning, task board for the iteration) but it did not really work at the time, possibly due to a lack of successful evangelism on my part.

I just finished working on a third sprint in a Scrum project. And this time, it just worked.

The team was interested in the new process, the client was often coming to see what was going on, the ScrumMaster was great at explaining the process, the artifacts (product and sprint backlogs, burn down chart), the meetings and why we were doing each of them (daily, demo, retro). Some people were not familiar with the process but a quick and clear explanation of the next step kept everyone interested and in focus.
Here is what went right in this project:
  • Preparation - the client and a few team members prepared a product backlog, rough drafts for the look of the user interface and a little bit of useful documentation.
  • Collocation - everyone was sitting a few feet away from each other
  • Quick wins - first sprint of one week delivered a bit of functionality while developing the build tools and test structure. This allowed the team to get a feel of what an iteration feels like (we did the planning, demo and retro as usual) while getting our build, continuous integration and test framework underway.
  • Client involvement - on site two days a week, not changing his mind in the middle of the sprint. Would it have been better if the client had been there five days a week? Maybe, but two days is a lot better than nothing!
  • We shipped! We did have a few hiccups, but overall we did ship working software and the client was happy with it.
And how did people feel about our ways of working? I can't talk for everyone, but here are a few things that I liked:
  • Commitment- I believe everyone wanted the project to succeed and did their best.
  • Openness - pretty much everything was open to discussion, including the architecture and the features the client wanted.
  • Pride - for me this was a big one. I was proud of what we achieved and proud of the team.
  • Fun - need I say more?
A few things could have been better:
  • Lack of focus - we had a tendency to work on tasks on many stories and closed most of them at the very end of the sprint.
  • Adaptation - our retrospectives allowed us to highlight a few points that we wanted to improve but we did not really address those in the following sprint.
Although not a silver bullet, iterative development sure give you all the tools to run a successful project. A motivated team will perform better and what better way to motivate people than to give them the power to improve and select their own tools and processes?

I'm eager to start on my next Agile project...

No comments:

Post a Comment