[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PG: Hackers and Painters

On Wed, 2003-05-14 at 15:13, Andrew Pimlott wrote:
> Common code ownership, on the other hand, I find a generally bad
> practice.  I really don't see how a piece of evolving code can
> retain any conceptual integrity if nobody feels responsible for
> it--and I've seen nice code without an active owner decay many
> times.  I don't think that "refactoring" can fix this, since there
> is no way that Joe bug whacker will take the time to understand the
> original design.

Several people have expressed a similar sentiment.  I don't agree with
the premise that common code ownership means that no one feels
responsible for the code.  In fact, the opposite should be true; if
everyone owns the code, everyone should feel responsible.

The large projects I contribute to -- Python and Zope -- employ some
ideas from extreme programming.  In general, the less extreme parts of
XP seem just right for these projects.

If no one person owns the code, then it is everyone's responsibility to
repair broken code and improve what exists.  In practice, each person
has a different area of expertise.  It's unusual for someone to make
changes in an area of the code they're not familiar with.  For example,
few people understand the Python garbage collector; as a result, few
developers make changes there.  Many changes are discussed in email,
first, and many developers read checkin mail that includes diffs.  As a
result, there is a lot of peer review of changes.

The other complaint people have had about common ownership is the worry
that someone will add bad code to good.  I don't think that worry has
anything to do with XP.  If you've got people writing bad code, they
need to learn to write better code or to stick to parts of the code were
they will do the least harm.  If anything, I think XP would help here
more than hurt.  If you see bad code, you fix it, regardless of who
wrote it.