Dienstag, November 30, 2010

A case study: Scrum with outsourcing teams and fix prices


Since 6 months we are using scrum together with our outsourcing partner. We have the advantage that our development partner works only 60km away from our office, so we can meet once a week in person. In this blog I want to share the experience implementing a scrum-like process with distributed teams, especially with external development partners.

Motivation:
After implementing scrum into our own processes, we wanted to port the success we experienced to our external team (outsourcing partner). We had a lot of luck, because our partner likes to try new things, so we didn’t even change the contract.

Teams:
We separated our work into projects, so the two teams worked on different parts of the system. This made life much easier, because we worked on different branches and the code was only been merged at the end of each iteration.

Iterations:
We decided that a two week iteration length would keep the merge costs relatively low. We made the daily stand ups separately but stayed in contact for questions. At the end of an iteration we were visiting our partner for a project presentation and a small retrospective. Unfortunately we had no resources for placing a project manager into the external team that could discuss issues in the daily stand up each day. A member of the external team filled in that role as a “proxy”. That went quite well, because he also wrote a specification document at the beginning of the project for us.

Tools:
For quality measurements we used Atlassians Cruicible for making “code reviews” each iteration. That worked pretty good and we found some design issues we would have missed by just looking at all changes at the end of the project.
We were using a continuous integration server (Hudson) with some static code analysis turned on (checkstyle and findbugs) to catch the obvious bugs.

End of the project:
Even though we agreed on a fixed price and feature set at the beginning of the project, we were able to change the requirements and discuss them all together (AGILE). We only had to agree on a prize for the new requirements or decided which requirements were not necessary anymore.

To improve:
We would like to use “Skype” for daily stand ups so the understanding for each others problems will be improved.

Conclusion:
Scrum works also great with external partners and fix price projects. But only if you have an honest relationship and using the right tools!

Labels: ,