[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PG: Hackers and Painters
I hate it when other people touch my code. It seems like they
always get it wrong. I always have to go and clean it up again
before I can stand to look at it. Even if I'm not making any
changes, I've been known on more than one occasion to check out a
file that someone has modified, fix all the formatting, rewrite
all the comments, restructure the control flow, and check it
By "fix" I mean change it to meet my normal style, not to correct
some actual bug. Even if they get the formatting right (which is
surprisingly rare) I'm not content until it looks and feels exactly
like my code, both at a casual glance and on a careful read-through.
I agree with Paul on this one--I'm just way too crabby about my own
code to cooperate at that level. I'm like a bitter old man who
doesn't think anyone can get anything right and I'm still in my 20s.
I pity anyone who has to share code with me in a few years after
I've really had a chance to get set in my ways.
On Wed, May 14, 2003 at 05:19:50PM -0000, Paul Graham wrote:
> I've heard of this agile programming thing. (Surely "agile" isn't
> the best word, btw; surely one hacker is at least more *agile*
> than two.) There may well be cases where several people can work
> on code. I don't think I could, though. It's fine to have code
> reviews. Such code reviews could even take the form of presenting
> someone with a rewritten version for them to adopt if they chose.
> But I don't think I could stand more than that. Nor would I
> presume to do more than that to code someone else owned.
> Maybe I'm just an old crab though. Does anyone on LL1 have
> any opinions about this?
> --Ken Anderson wrote:
> > At 07:39 PM 5/8/2003 -0400, Geoffrey Knauth wrote:
> > >Saw this on Slashdot:
> > >
> > >http://www.paulgraham.com/hp.html
> > >"Hackers and Painters"
> > I had passed by Paul's site several days ago and started reading it. I agree with most of it, for example Yugoslavia, and i marked up several key points - It should be a pencil, not a pen. Scribble, smudge, and smear describes what i do best.
> > But i disagree with this paragraph:
> > "I think this is the right model for collaboration in software too. Don't push it too far. When a piece of code is being hacked by three or four different people, no one of whom really owns it, it will end up being like a common-room. It will tend to feel bleak and abandoned, and accumulate cruft. The right way to collaborate, I think, is to divide projects into sharply defined modules, each with a definite owner, and with interfaces between them that are as carefully designed and, if possible, as articulated as programming languages.
> > "
> > There is an alternative to the common room feeling now.
> > Several ideas of extreme programming, which you can follow more gently, and call an "agile method", are:
> > I1: no one owns the code.
> > I2: anyone can refactor any of the code when they need to add behavior. refactoring means, reorganize the code so it is easier to understand and provides the capabilities of the previous version.
> > I3: pair programming allows multiple people to contribute to the design of a module. I've seen our most junior pair programmer help my code and even make it simpler.