
On 6 Apr, 08:53 pm, james@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.