[Zope-dev] Next steps on Zope 2.6 plan
Brian Lloyd
brian@zope.com
Wed, 20 Mar 2002 15:04:29 -0500
Hi all,
As talked about last week, I've updated the proposed features
document for Zope 2.6:
http://dev.zope.org/Wikis/DevSite/Projects/Zope2.6/ProposedFeatures
...to cut out those proposals without volunteers. Now comes
the hard part :^)
There are quite a few proposals there. The current list
is still a "laundry list" - it reflects every idea that
someone had and volunteered for without any consideration
of whether the proposals are good / bad / indifferent.
Now we need to do a "quality chop" to turn the laundry
list into an actual project plan consisting of only things
that:
1 Have volunteers committed to producing the code AND
associated documentation
2 Are generally agreed to be good ideas, for some
definition of "generally" and "good" :)
3 Can realistically be completed (code and docs) by
the May 1 target we are setting for 2.6 alpha 1.
Getting from laundry list to project plan is made a bit
harder this time around because this is the first really
community-driven release, and we don't have any real process
in place for getting there :(
I think that we have #1 above under control, and #3 does
not bother me that much, but #2 is a tough cookie.
Right now, the laundry list includes some "competing" proposals
(things that solve the same or similar problems in different
ways), as well as some "better XXX" proposals that "compete"
with things already in the core and some pretty big "overhaul XXX"
proposals with wide ranging non-trivial impacts on documentation,
packaging and other non-software concerns.
Somehow we need to get to resolution on these things. I know
that realistically we'll be winging it for 2.6 (there's no
way that we could get any sort of well-thought-out generally
agreed upon process in place in time). But while we're winging
it, I'd like for us to be starting to think about these things
and putting pieces in place as we're able.
One suggestion Casey had was to start to codify a set of rules
that features have to abide by to be considered for inclusion.
Some examples here would be:
- A feature that is a "better X than X" (where X is a feature
or component already in Zope), has a much higher bar to jump
over since it will almost never be worth the user confusion
and extra documenation burden to add another component that
does almost (but not quite!) the same thing as an existing
builtin component.
For example, if you have a "better Folder" implementation,
the right approach is to add your betterness to the current
builtin Folder, because Zope is not going to ship with two
kinds of Folder (with the associated two sets of docs, etc.)
without a very, very good reason *.
* Exhibit A for multiple similar objects causing confusion: DTML
Document and DTML Method.
- A feature release should never contain more than one blow-it-
up-and-redo-it type project (such as radical changes to key
parts of packaging or infrastructure). For example, it would
probably be a bad idea to totally redo the ZODB, packaging
and installation and the security system all in one release
(unless it is a major release like Zope2 -> Zope3).
The aggregate impact in terms of obsoleting existing knowledge
and documentation is too great to do many of these at once. It
takes time for users and developers to catch up after something
major is refactored, and we need to keep this in mind.
- Features or components added to the Zope core should address a
clear and generally agreed-upon need. Otherwise, accumulation
of components over time will become a significant support
burden for the zope maintainers.
- Features that affect the security system face a higher
analysis, design and documentation burden :^)
I'm sure there are many other good guidelines, but you get the
idea. Having a set of ground rules that everyone agrees on will
make it easier to keep focused on arguing edge cases (instead of
every detail) when it's time to define a release.
Thoughts? I'll volunteer to maintain the guidelines document
on dev.zope.org if folks can send their guideline suggestions.
Brian Lloyd brian@zope.com
V.P. Engineering 540.361.1716
Zope Corporation http://www.zope.com