Peer Review Makes More Time

February 8, 2011

Chapter 8 – Open Teams

In most teams when you help someone else you get the credit for solving their problems. You took time away from your work to help them. That means that you have less time to finish your own work. In essence, the time you spent helping that other person was a direct cost to you. The logic is simple: you had X amount of time, you gave Y amount of that time away, so you have X – Y amount of time left. This equation is straightforward, logical, and completely inapplicable to software development.

Spending your time helping other people leaves more time for your work. This sounds impossible, but it is true for your team. When you add to the general knowledge of your team you are helping yourself. Working in a smarter, more capable team will always help you. When you work together you can get more done than when you work separately.

We can quantify this theory with a simple example. Assume you’re working on a new subsystem. If left alone, you would spend 1 week designing the subsystem, 2 weeks implementing the subsystem, 1 week refining the subsystem, and 3 weeks fixing bugs. The total time would be 7 weeks.

You can create better software faster when you have more people looking at it. This doesn’t mean your team reads every line of your code. It means that you spend time talking with them about the decisions you are making and why.

If you completed the same process in a peer-reviewed team it might look like this: 1 week of overhead helping out other people, 1 week designing the subsystem, 2 weeks implementing and reviewing the subsystem, and 2 weeks fixing bugs. The total time would be 6 weeks. You save a week even though you spent a week helping other people. The intensive review of your ideas will lead to a faster turnaround with fewer bugs. It also decreases the risk that you will have to redesign the system because you didn’t understand one of the requirements.

Peer review will make your code more readable and more stable with fewer bugs. The increased communication of the open team model will also make it much easier for you to stay connected with your team when you are remote.

Previous post:

Next post: