[Zope3-dev] Lesson's learned about Z3 Dev Practices & Schemas

Martijn Faassen faassen@vet.uu.nl
Mon, 15 Jul 2002 12:44:10 +0200


Stephan Richter wrote:
> sorry about my remarks last night, but I was slightly aggrevated.

You too, huh? I was more than slightly aggravated with this, and still am.

> Here are the things I observed:
> 
> 1. Larger projects, such as Schemas, always need a proposal, even though they 
> are started at a sprint. Really, the problem was that people made decisions 
> at the sprint and did not write them down. I had read all the Schema Wiki 
> stuff again before coding this weekend. I had mentioned that to Jim already 
> after the EP sprint.

Some of the design will always be in the code. Some of the design decisions
are in the CVS checkin messages and you can follow it through CVS history.
Some of the design decisions are captured in unit tests. And some of the 
design decisions will be in the heads of the people who made the design.

You altered some code you didn't have to alter, and I had to change it back
(validate methods shouldn't return anything) -- if you'd checked with
any of these things I just listed (most conveniently me), we could've
avoided all that work.

The one thing missing was that we hadn't written an interface yet that
made this design decision explicit. This was an oversight.
I fixed that bug now.

> 2. Before someone starts coding on a component, they should notify the mailing 
> lists. IRC is not enough, since noone can be there all the time. If someone 
> claims a module and cannot finish it (I know we had this case often), they 
> either write another message to the Z3 dev list or we have some sort of 
> timeout.

Always talk to the people last working on this thing before you start changing
things. Very important.

> 3. IF it is obvious that someone is working on a module (like I did this 
> weekend), then an additional developer should check back. I had already many 
> more lines of Forms implementation, which I had to rewrite because my 
> check-ins were overwritten.

It was obvious that I was working on the schema module already, and you did
not check with me, did you? (certainly didn't wait for me to get back to
you) You caused me to rewrite quite a bunch you had overwritten. 

Are you calling *me* an 'additional developer' here, by the way? :) 

> 4. If possible, developers should be at least logged into IRC while 
> developing. This way immediate feedback is possible.

> 5. We should vote about the naming of the fields. While the EP Schema team 
> decided to stay with shortcuts, I had at least five people responding to my 
> original mail preferring the long names (which also follows the style guide). 
> I will write a separate message for that.

You can't design an architecture by voting, sorry. If you want people to
vote, they should be informed enough to actually vote sensibly.

Anyway, now you feel rather close to the way I felt when you overturned all
kinds of design decisions without even talking to the person who made
those decisions, who was still clearly involved (witness irc discussion
thursday, which was prompted because someone *did* contact me about this).

And the only thing I did was turn the design back again into what it was
before.

I think that was you did this weekend was out of line, and you should apologize
to me. You should apply the guidelines you are listing in this mail to
yourself, too, not only to me. :) You wouldn't like it if I unilaterally
reversed all kinds of design decisions in code you wrote either, would you?
Oh, no, you didn't. :)

Quite of bit of what you created has clear merit and there's merit
in that you're working on it, and you're entirely correct in being
frustrated with my lack of time and the lack of progress. But this is not
the way to proceed with such a thing, even though it did cause progress
to occur..

Regards,

Martijn