Extreme Reviews

ExtremeProgramming does not include formal reviews. PairProgramming, CollectiveCodeOwnership, and impromptu informal reviews as part of team play are all part of XP.

UnitTests are run all the time, reviewing the code with machine precision, and helping the developers go very rapidly and confidently.

AcceptanceTests review the entire system with machine precision, providing confidence to the customers.

CollectiveCodeOwnership means that over time all eyes see most all the code.

NoSecondChance means that in troubled parts of the system, a new team takes over.

These, and the many other XP practices, have been sufficient so far to provide the quality that has been needed. XP is based on simplicity and we never add additional process elements unless we need them.

If quality defects of any kind were slipping through the process, an ExtremeProgrammingMaster would then (and only then) devise something to catch them. She would follow the steps in ImprovingExtremeProgramming.
BradAppleton points out that InformalReviews could facilitate more people seeing more of the code. PairProgramming and CollectiveCodeOwnership are a very active form of InformalReviews. ExtremeProgramming projects have observed no need to improve this area.


On the whole I'm a big fan of reviews. I push them with most clients I work with. From my observation C3 is full of reviews, through its practices of group design reviews with CRC cards, PairProgramming, and Refactoring. It does not seem to me that adding further reviews would add much.

I haven't seen C3 in person, but the DoIt team uses these practices aggressively. Back in the days when I worked on that team <sentimental sniff> we used to think of PairProgramming as 'real time code review' -- BillBarnett

However Kent did do reviews in the earlier stages. I'd be interesting in knowing what people (Ron, Kent, other C3ers) think of that now. Do they feel it was not worthwhile, or worthwhile then but not now?

However this observation does not dim my liking of reviews. I usually work with non-XP clients. Without a strong use of PairProgramming and Refactoring I wouldn't be comfortable without some form of review process. To me it isn't a case of reviews vs XP, it's more a case of how XP does reviews.

See also my thoughts on RefactoringReviews

--MartinFowler


The place (or, rather, lack of one) for inspections in XP came up at a recent ExtremeTuesdayClub, see http://www.xpdeveloper.com/cgi-bin/wiki.cgi?CodeInspection
See: FaganDefectFreeProcess

EditText of this page (last edited July 9, 2003) or FindPage with title or text search