[Twisted-Python] win32 reactors
glyph at divmod.com
glyph at divmod.com
Sun Apr 6 23:32:19 MDT 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
>foolish
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