by Vladimir Oane, the CEO of uberVU, winner of Seedcamp 2008
Dreams and Nightmares
When we won Seedcamp a few months ago it was like a dream come true. We were playing in the big league! And there was nothing to stop us. We had a working product that had “a few” scalability issues, we were backed by some amazing people and most important we had access to an amazing network of people to offer us feedback and guide us to success. World domination seemed not so far away.
But the amazing Seedcamp network can pose some dangers for the weaker minds. You meet so many people and all of them offer you amazing advice that you try to implement everything and exceed all expectations. At least that is what we did! And we failed … big time. I remember that before the last pitch in December we were working on five or six different feature sets. But none of them worked the way they were supposed to work and none of them were ready for a public release. We said stop and took a week off to regroup. We were all over the place and not delivering anything. We needed to change our development methodology.
Here comes the light
At the first sprint meeting
We knew about Agile for some time. But we never seriously considered to implement it. “We are a startup”, we thought. “We need to get things done and not worry about stupid development frameworks. Those are for big corporations anyway.” We then met Todd Sampson in San Francisco and he told us a bit how Agile works and what the benefits are. Hmmm…. it sounded quite good. After reading 2-3 books on the subject we all agreed we should use this. ASAP. Now we use a form of Agile development called SCRUM.
Few starting concepts:
SCRUM is built around the concept of DONE. Defining what DONE means is one of the first steps in implementing SCRUM.
You may start by defining DONE as documentation, coding and human testing but as you start to evolve the meaning of DONE should be enlarged with automated tests, integration tests or code review.
In SCRUM you work in iterations, called sprints. And the purpose of each iteration is to create a 100% ready product. The beauty is you can re-evaluate the direction of the product after each sprint. That’s what being Agile means.
You separate the business from the development. You need a product guy, interested in features that will move the product fwd. He is called the product owner. He keeps a file (an excel works best) – a product backlog – with all the features, called user stories. They are organized by priority. The development team is run by a project manager. His role is to move the top priority user stories from product backlog to the sprint backlog and break them in atomic tasks that are distributed to your developers.
Each sprint begins with a sprint meeting where you decide what the purpose of the sprint is and what the product should look like at the end of it. And each sprint ends with a demo, where the development team present what they have achieved.
To track the evolution of the sprint the project manager keeps track of each task in a sprint backlog and based on that he produces a graph that shows the evolution of the sprint. Also, each day, the team meets for 15 minutes for a PPP sesion. They discuss Progress, Plan for the next day and Problems.
The benefits are immense:
You have the possibility to change direction pretty fast. You don’t have to decide on features 2 months in advance. If you work in an Internet startup we can agree that this a suicidal technique anyway.
You have a new version with each sprint. You know about the “Release often” saying. Very few companies can do it. And I know why.
Having a product backlog with estimates, descriptions and priorities keeps your future development strategy in order. Hopefully you will not end in chaos working on tons of features like we did before we started using this. Having something DONE and knowing what done means is huge. It is not an easy task to make it happen.
As Morpheus would say: “There is a difference between knowing the path and walking the path.” Your first sprints will probably fail. Ours did. But you have to keep going.
I hope we have opened your appetite about SCRUM. Here are a few resources to keep you going:
- A video presentation video from Ken Schwaber, one of the creators of SCRUM:
- Wikipedia has a great article on the subject
- Learn how Google Adwords is using SCRUM:
- Some general SCRUM resources
- I recommend you read Scrum and XP from the Trenches. You can have it as PDF (and it is free) or buy the print version.
- Read some anti-SCRUM ideas from an ex-Google employee. Read the comments too.
That’s it. It was a very long one. Let us know how it goes. You can use the comment section, FriendFeed, Twitter etc…We will find it and get back to you.