Software Reviews are recognized to be a cost
effective way of finding and fixing defects in
software products. If you are not performing any
type of reviews or inspections right now, you should
consider reading some of the literature below.
Reviews are commonly sited as a main factor for the
superior quality found in mature open source
software projects. For example, OpenBSD credits its
incredible security track record with repeated
inspections of its source code. Even, the extreme
programming movement advocates pair programming,
essentially a constant review during coding process.
However, many, many projects either don't do reviews
or do them so poorly that they are a waste of
money. If you interested in doing reviews on your
projects, and have never been trained, please pick
up one of the following books.
Books
Peer Reviews In Software, Karl E. Wiegers.
This is the best book for people who are just
starting out with software reviews. It is very
accessible description of the software review
process. It describes the best known processes for
running reviews, deals with common challenges
introducing reviews into a typical organization, and
has a section on the metric data collection and
analysis. If you can only get one book, this is the
one to get.
Software Inspection, Tom Gilb and Dorothy Graham.
This book is about 10 years old. It mainly focuses
on the processes used by IBM. It also has some case
studies from other companies. It describes a
hard-core formal inspection process. If you do any
inspections or reviews currently, this book will
make you feel bad for not running them better. If
you are responsible for making inspections happen in
your organization, then you will probably want to
pick up this book. It is very detailed in its
descriptions of the different steps in a full blown
formal inspection process, has an exhaustive list of
forms, and metric data that you will want to
consider tracking. The case study from the Sema
Group has some metric data that really drives home
the danger of inspecting too much material and
generally going too fast. I can only recommend this
book for people that have already decided to do
inspections, and are interested in making sure they
are done well. If you need to sell inspections to
others, stick with the "Peer Reviews In Software"
book.
Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating
Programs, Projects, and Products.
I have not read this book.
Links
The "Peer Reviews In Software" book has a companion
web site with templates, sample chapters from the
book, excel files for metrics analysis, and links to
some commercial reviewing tools.
http://www.processimpact.com/pr_goodies.shtml
Construx (Steve McConnell's company) has a training
class for doing software reviews.
http://www.construx.com/training/courses/PeerReviews.php
I have not attended the class, but Steve McConnell
is one of the most respected people in the software
engineering community, so I am sure that it would be
worth checking out.
NASA has a nice page on code inspections.
http://satc.gsfc.nasa.gov/fi/fipage.html
The SEI also has a nice page on software
inspections.
http://www.sei.cmu.edu/str/descriptions/inspections_body.html
Codestriker's competitors
We have not used any of these tools. The small
number of tools that are available just underscores
how few projects are using them. If people have any
experience with any of the tools listed and would
like to write us a review, please drop us a
note. Also, if we missed a tool, please email us a
link.
Open-source tools
JCR: http://jcodereview.sourceforge.net.
Web application for performing and managing code reviews.
It can be used for reviews of any type of source code,
although it has some special smarts for reviewing Java projects.
Written in Python and licenced under the GPL.
Commercial tools
ASSIST: http://www.cs.strath.ac.uk/~efocs/home/assist.html.
Only licensed for research purposes, runs on Solaris
2.5.1, and python. You needs to send your
information to the author before you can use it. It
looks like it has not been modified for a couple of
years.
ReviewPro: http://www.sdtcorp.com/reviewpro.html.
Web based, uses a commercial database as a back end, and
they offer it as a hosted service. They have an
online demo that you can use if your register with
them.
CodeReviewer: http://www.codehistorian.com.
It runs under Windows, and is not web-based. It
works with CVS, SourceSafe, and Perforce and handles
reviews of diffs. It is not client-server and it
stores everything into the source code control
system. This company also make some nice tools to collect
and analyze source code metrics.
Macadamian CodeReview: http://www.macadamian.com/products/index.html.
Macadamian CodeReview is an add-in module for
Microsoft Visual Studio .NET. With CodeReview you
can attach comments, and even code suggestions, to
any source code file supported in Visual Studio
.NET.
Cenqua Crucible: http://www.cenqua.com.
From their website: "Due for release in 2005, Crucible is a tool that manages the peer code
review process. Crucible builds on FishEye to provide highly
configurable review workflow, email and RSS notifications, threaded
comment support and many other features."
Jupiter: http://csdl.ics.hawaii.edu/Tools/Jupiter.
Jupiter is an open-source code review plug-in tool
for the Eclipse IDE.
This page was contributed by Jason Remillard.
|