Re: Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
Re: Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
- Subject: Re: Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
- From: James Quick <email@hidden>
- Date: Thu, 24 Jul 2003 16:42:56 -0400
On Wednesday, July 23, 2003, at 01:25 PM, Georg Tuparev wrote:
On Wednesday, Jul 23, 2003, at 17:46 Europe/Amsterdam, Jim Rankin
wrote:
One more thing: a lot of the controversy over Extreme Programming is
its advocacy for pair programming, meaning always having a team of
two people working together at one computer on one piece of code at a
time. This, to my mind is the least important part of the
methodology and the rest of the principles work just as well without
it.
Well, as someone practicing pair programming as often as I can
(actually many years before the word XP was coined) I would say this
is probably the most important practice of all! Many other things
brake without PP (examples: collective code ownership, simple design,
coding standards, continuos integration ... just to mention few). And
my own measures show very clearly that a pair can work 30-40% faster
(in long run) compared to two solo programmers. And Cocoa is probably
the best environment that I know (with possible exception of
Smalltalk) to do not only PP but all of the 12 XP practices.
I would suggest that, paired programming, followed strictly, may have
strong benefits, in
some areas, but that in others it may prove a disadvantage. I agree in
the value
of creating a culture which fosters collective ownership, standards,
and a few others.
I would contend however, that for some individuals, the amount of time
they should
optimally devote to direct collaboration vs working on their own will
vary widely.
Accounting for differences in learning style, temperament, and other
psychological factors,
suggests that some individuals will be more productive and reliable
when constantly paired,
while others will be far less creative and prone to make more mistakes.
For the latter group
working side by side will probably only be beneficial for an hour or
two a day. Concrete
examples of people who may fall into the second category, are
introverted thinking
types who measure (I'm guessing about a cutoff here) 80% percentile or
more towards
intraversion on the Meyers Briggs scale, and people with some degree of
ADD.
For both of these specific classes, their temperament (or biochemistry)
makes them better
able than the general public to sustain intense focus and mental effort
while solving a problem.
In each case, however, they tend to perform at their peak when provided
with sufficient
time for quiet reflection, or protected from too much distraction,
respectively.
The application of a methodology should focus on maximizing the
collective
strengths of the individual contributors. A blanket endorsement of
paired
programming all the time, in some cases may have the opposite effect.
Just my 2 cents.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.