Re: [AM] Code reviews preventative?

"Scott E. Preece" <[email protected]>
Newsgroups gmane.comp.programming.modeling.agile
Message-ID <[email protected]>
By "code branch" I mean a private view of the code (which would be
shared by people working together on the code).  By "integrate" I mean
"release for use by others with a promise that it is known to work".
In our environment (ClearCase) that would mean moving the code to
the main line.

"Integration" may mean different things to different people. Our process
would typically involve (a) the developer working with the code on a
private branch, (b) the developer unit testing the code on that branch,
(c) the developer synching the branch with the main line by merging any
main line changes down into the development branch (pre-integrating),
(d) the user building the whole system and running a defined set of
integration tests, (e) the user moving the code to the main branch, (f)
the user doing a system build and running the integration tests again,
(g) the configuration management team moving the label to the new
version.  We would call (g) "Integrated". Inspections would usually
happen between after (c) and before (e), the exact point depending on
the project and the specifics of the development (based on an evaluation
of the risks involved).

Note that going to smaller cycles reduces the time spent in steps (a)
and (b) (and, therefore, the probability of interfering integrations
requiring merging), but if ALL the developers are doing several
integrations a day, that drives the risk or interference right back up.

Our rule is that code is never allowed on the main line (where others
will pick it up in their builds) until it has been inspected and built
on the development branch.  Breaking the build is a major sin.

If you're really integrating several times a day, then the integrations
must be small, so the inspections would also be small.  You could also
batch the inspections (have one group of inspectors do several small
readings in one session).

scott



| From: "J. B. Rainsberger" <[email protected]>
| 50 -0500
| Date: Tue, 03 Feb 2004 18:36:11 -0500
| 
| Scott E. Preece wrote:
| > | From: "J. B. Rainsberger" <[email protected]>
| > | 
| > | Scott E. Preece wrote:
| > | > Presumably pair programming similarly doesn't keep defects from being
| > | > written, it just identifies them faster (the person typing is still
| > | > going to type the error before the person reading can see what was
| > | > typed). [I recognize that in some cases the pair will recognize the
| > | > defect in discussion before typing, but that kind of incidental save is
| > | > no more preventative than a single programmer re-reading her code before
| > | > submitting it for testing - some defects simply don't live long enough
| > | > to reach the metrics.]
| > | 
| > | Agreed: it's just a question of where we find the defect. I placed the 
| > | dividing line at "did we integrate yet?" which is releasing to the rest 
| > | of the team. You placed the dividing line at "did we release to the 
| > | customer yet?" I think there's a considerable difference between the two.
| > ---
| > 
| > I'm missing what you're trying to say here - inspections would normally
| > be done before integration (that is, before the code branch switches
| > from private to public).
| 
| "Code branch"?! I don't want to get into a discussion of code branches.
| 
| It appears that you're saying we inspect code before we integrate it. 
| That's already several times per day on my projects. If we're inspecting 
| code that often, we might as well do it continuously: the 
| context-switching costs of running three-to-five code separate 
| inspections per programmer per day are quite high.
| -- 
| J. B. Rainsberger,
| Diaspar Software Services
| http://www.diasparsoftware.com :: +1 416 791-8603
| Let's write software that people understand
| 
| For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
| 
| 


-- 
scott preece
motorola urbana design center (il67), 1800 s. oak st., champaign, il  61820  
e-mail:	[email protected]	fax:	217-384-8550
phone:	217-384-8589	cell: 217-433-6114	pager: [email protected]

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.