[Twisted-Python] win32 reactors

glyph at divmod.com glyph at divmod.com
Mon Apr 7 01:32:19 EDT 2008

On 6 Apr, 08:53 pm, james at mansionfamily.plus.com wrote:
>It may be that the way that people like to 'collaborate' in open source 
>does  not
>generally extend to design review, but that's wasteful and ultimately 

If you really insist on continuing this debate (I recommend not; I don't 
see a way it could come to a useful conclusion), I would really 
appreciate some links to software engineering research which 
conclusively verifies this claim.

As it is, all I've got here is the fact that your experience and 
knowledge of the field does not overlap mine at all.  Design review is, 
in fact, a waste of time _if you are including people who have not been 
involved in and thoroughly understand the implementation_.

Perhaps putting this in more familiar terms will help you understand why 
your wisdom is not being met with respect.  There is definitely a 
culture clash here.

In most companies, this is reflected in a hierarchy; junior developers 
are not given senior architect positions and are not included in high- 
level design reviews.  People may be hired directly at senior-level 
positions, of course, but they are _invited_ to do so; they don't just 
start showing up one day.  And junior developers do sometimes provide 
design input, but potential hires never do.

In Twisted-land, people like myself, JP Calderone, Thomas Herve, and 
Chris Armstrong can engage in this sort of high-level discussion and 
review.  We frequently do, often in the context of comments on tickets, 
sometimes at in-person meetings (PyCon was great for this kind of 
thing).  However, we do this because we have "high ranking" positions on 
the project.  We earned these ranks by contributing code.  To be blunt, 
you haven't.  Not only that: you specifically began this conversation by 
saying that you never would.  So the analogue in the world of business 
is: you're not just a guy we haven't "hired" for this project, you're a 
guy who has already said "I will never work for you under any 
circumstances".  You may understand why we don't invite you to our 
design meetings, from this perspective.

Despite how it may sound, this isn't any insult to you personally.  In 
fact, the decision to spend your Sunday nights doing something 
worthwhile rather than correcting errors in the finer points of 
Twisted's recv() error handling on win32 might be an endorsement of your 
generally sound judgment.  I know that sometimes I'd rather have been 
working out, watching a movie, spending time with my friends, or at 
least doing something billable during those hours.  But, if what you 
want is people to listen to you on our humble little project, you need 
to acquire some of the reputation currency that we trade around here.

This is compounded by the fact that Twisted, organizationally, has a 
very wary attitude towards design reviews.  Speaking from my own 
experiences: once one has reached a certain level of abstraction, it is 
*very* easy to delude oneself into believing that further consideration 
and discussion is useful work, when in fact all of the assumptions in 
the discussion are based on a subtly flawed or impossible-to-implement 
decision.  We discuss design and we think about it, but every discussion 
is followed by a prototype.

A design discussion is an unverified hypothesis.  There's no point in 
developing it into a theory until you have some further indication that 
it might be implemented.  And unless you have resources available (i.e. 
developers, ready and waiting to do more work) to perform the 
experiment, than brainstorming more hypotheses is a waste of time.

More information about the Twisted-Python mailing list