[Opensource] Discussion: Walkthrough Committee

Michael Rimov rimovm at centercomp.com
Thu Mar 6 12:27:02 PST 2003


Hey All,

Just a thought here....

As Lirian and others have voiced, the Expresso code base could use 
additional cleanup.  To be honest, I only see the possibility of this 
happening by doing a series of code walk-throughs.  I, personally, believe 
this is beneficial from a security standpoint as well since the OpenBSD has 
proven time and time again that such practices significantly increase the 
security of the software.

So, if we did something like this, what would it look like?  How would 
meetings happen?  How often, how much, etc?

I suggest that something along the lines of a minimum of a 3 people meeting 
that took place once a month and would entail a walk-though of probably 
only one class at a time.  Depending on the size of the class the group 
could decide to tackle more than one class as well.

Pre-meeting tasks:
-Have somebody with Jalopy reformat the code for the class we're going to 
look at.  This would provide a standard format that we could all agree on.

-Somebody goes through the class and walks through the javadocs on the 
class and adds what they do understand.  Leave '????' for javadocs on 
undocumented classes/functions that don't make sense at a casual glance.

Meeting Tasks:  Generalized walkthrough the code.  If nobody understands 
the code being looked at, the goal of the walkthrough is to just understand 
it at first and javadoc it.  Look for code cleanup.  Look for updating unit 
tests, etc.

Quorum:  As I said, I think 3 people groups are probably a good idea.  For 
a distributed project and all our wild schedules, I don't really see being 
able to corral more folks at once than that.  That doesn't mean only 3 
people have to sign up for walkthroughs!  Depending on skill level with the 
code, folks could 'tag along', others could form their own group... or 
having additional people would help provide a 'pool' of people that could 
meet at a particular time, thus helping to ensure the meetings happen :)
	Each group would have to have a committer on board.  [Major Contributor 
and higher], and that person makes changes as suggested.  Anything that 
isn't a 'quick fix' should be added to the Expresso task list for 
fixing/refactoring for for the next release.

How do we prioritize the classes to walk through?  There was an interesting 
Dr. Dobbs article about somebody tracking down the classes that most likely 
need walkthrough's simply by running standard code metrics against various 
classes and computing a 'complexity' number.  Higher complixity classes 
should be walked through first.  This should help yield the highest number 
of bug fixes.

How do we meet?  That depends... we could MSN or AIM... there's a few UNIX 
folks out there that could donate the use of an IRC server.  Or if somebody 
wanted to donate a 'conference call' system for use, that would be great 
too.  This would be something to hash out.

Anyway, I think things like this could greatly assist the Expresso code 
base.  By only taking once class a month, we being a slow but steady effort 
to clean things up, and by prioritizing our walkthroughs we could get the 
worst offenders first.  Best of all, participants would get thorough 
knowledge of one class at a time, and since.

Reporting:  Probably it would be best if the findings of the walkthrough 
were posted to the list.  We could agree on a general template so that 
folks would only have to fill in the blanks.

Implementation Timeline:  I would like to start this probably after the 
release of 5.1 [or at least begin it well into the 'ea' schedule].

So, the question is, what do you guys think of this, if we did this, who 
would volunteer, and finally what could be done to make this more efficient?

Feedback appreciated!
							-Mike





More information about the Opensource mailing list