Sunday, November 12, 2006

Week four-six (diff and merge)

The truck number on this project is 2. If two people get hit by a truck the project suffers irreparable harm. Every piece of work is also get assigned to these two people while there are more people in the team.

Collective ownership and shared code is a good next step for this team. No single person should claim ownership over any part of the system and anyone can make any necessary changes. The team goal should be to increase the truck number. The nice side effect would be the improved code quality. The good news is that the team members are all open minded and willing to work it out. The bad news is that pressure is already too high and technical debt is increasing.

Friday Nov 9th over having a wonderful food in an Indian restaurant – one of my friends said an interesting thing: “start deleting code…” - Looking back at 4th week, while doing a short iteration, that advice would have been the best strategy. It is obvious, the more software you have to maintain, the more it costs. The team is doing a lot of diff and merge of code. Customers are demanding and then something new comes. To deliver this version quickly, the team duplicates the code base, make the changes, and ship it. Sometimes the shipped s/w is not accepted and new things get added. Now, the line of code to maintain is doubled and code needs to be changed and merges in many different places. I’ve seen this cost cripple team’s ability and it is nearly impossible to merge a split code base without heroic and immediate action of 2 people. It feels good to write this: Don’t duplicate your code base. I have also mentioned short iteration and shortening the UAT cycle for fighting this syndrome. Please post a comment if you have a suggestion.

No comments: