Here's what we learned to be useful and what did not work so good:
- It is a typical problem in off-shore development that the development team and the product owner - if there's any - are disconnected thus leaving the team with poor understanding of the purpose of the project and lack of motivation. A leading manager who joined the sprint planning helped a lot to motivate the team. Any other attempts of the management to motivate the team had a negative impact on the velocity and focus.
- An external consultant worked with the development team to set up an A-TDD infrastructure and process in the first sprint. This proved to be counterproductive and rather confused the team. The team dropped A-TDD and returned to TDD for unit testing and manual testing for user stories after a few sprints.
- We used fine grained user stories and a product backlog even though the goal was to re-implement an existing software. This proved to be essential for having a regular conversation with technical people at the client side and planning, especially since the 1:1 rebuild included some major changes in the end.
- Since everyone was so concerned about the potential shipping day we estimated the backlog using planning poker for some stories and magic estimation for a fast guess of approximately 100 stories within a few hours. The estimation was a complete waste of time since we could have simply used the amount of stories to get an idea of the velocity.
- Checking proactively within a small group of people the user stories for the upcoming sprint for technical dependencies and open questions thus making stories ready before the sprint planning had the highest impact on the team's speed.
- Adding two more people to the team reduced as expected the velocity to half for 1-2 sprints