I believe in reviews. Code reviews, design reviews, architecture reviews, data model reviews, employee reviews, scenario/requirement reviews, UI reviews. Maybe you can tell from that that I’m not a HUGE XP fan.
But, I believe in reviews for a reason. I have 7 years of experience that shows me on both sides of the line that projects with a review culture go well, and projects without a review culture don’t go well. Projects that review most things go well, but the things that slip through have problems. I also know that projects with a review culture generally get to where 99% of reviews have no comments. How is this valuable if it almost never catches anything?
Well, it’s all about the culture. I believe there’s a number of factors that go into it, but I think it really boils down to a few core aspects:
- People do better work if they know it will be looked at
- People feel more collective ownership over the product
- People’s output evolves towards a community standard
That said, the main benefits I get out of consistent reviews are:
- Higher quality output
- More consistent artifacts
- Shorter development time (what!?!? Yes, it’s true)
- More educated and empowered team members
- Evidence (for CMMI, etc)
- Clear local milestones
and the constraints I impose to keep reviews effective are:
- Minimal batch size – keep it short!
- Standardized process – everybody knows how to do it
- Optimized tools – make it easy to set up
- Common reporting – all the results together (and reportable)
- Expert Reviewer – primary reviewer is always the most qualified available individual
- Required resolution – all raised issues are explicitly addressed
These things combine to make reviews very easy and effective… qualitatively justifying the needs I need.
Well, fast forward to my new job, and my pronouncement that “everything will be reviewed”. The two guys from Iowa went “ok”, and the two local developers went “ummm…. I guess…. but that will be the first thing to go if things get tight”. Now, that just hit me wrong. At the time, I explained that I was pretty firm about this, and that I felt it was more important to review during the crunch times. I then went on to explain more about the process I used for reviews and went through some of the information I typed above.
But… the verdict’s still out. I’m a salesperson now!