Re: FYI: Lessons from Kai Wu at ArsDigita

Ken Manheimer <[email protected]> Wed, 12 Feb 2003 15:33:49 -0500 (EST)
Newsgroups gmane.comp.web.zope.zope2-migration
Message-ID <[email protected]>
On Tue, 11 Feb 2003, Paul Everitt wrote:

> Howdy.  Below is an email that Kai Wu, a former engineering manager and 
> early employee from ArsDigita, sent me about things they didn't do 
> right.  He agreed that I could share it with this list.
> 
> While it's true that their situation had some differences, I think the 
> commonality far outweighs the differences.
> 
> I hope we choose to *actively* learn from his experience.  I think that 
> the current discussion falls in the Risk Management category.  What are 
> we doing to avoid the pitfalls described below?

Hiya, paul!  To my surprise, i saw the situation quite differently
than you did - i was quite _encouraged_ by the differences in the
stories.  There are some differences that i see as crucial.  Maybe i'm
deluding myself to some degree, as a Zope Corp employee and partisan.
I can't be the judge of that - but i can try to lay out what i'm
seeing...

First, ArsDigita seemed to be making drastic, fundamental changes to
_depart_ from their previous course.  First from ACS 3 Tcl to ACS 4
Tcl -

> From Kai Wu [about ArsDigita experience]
> [...]
> stuck in support mode, tied to a legacy client.  At that point we
> had a separate engineering team forging ahead with ACS 4 Tcl
> pretty much freed of any obligation to do backwards compatibility
> with ACS 3; the changes were quite radical.  (We actually tried
> to get close to Zope's object model - no easy task using an RDBMS
> and a procedural language.)  Of course, the old customers who

and then, in mid-stream, they tried to change horses even further:

> 	By Fall 2000, with our sales and marketing guys telling us for
> the past year that Tcl sucked in the marketplace and that all big
> clients were asking for Java, the first ACS 4 release was done.
> Almost immediately, we re-focused on ACS 5 Java, while expanding
> our engineering team dramatically.  Well this ticked off a lot of

In Zope3, we're changing APIs, but we're sticking with our fundamental
technologies - python, and you can even see the seeds of the
component-based Zope3 model existing and being tested and expanded in
the ongoing CMF, and tools being placed in the public CVS.

Second, they were staking their future in migrating their sales to the
new product, even before it was ready:

> started on ACS 4 Tcl were confused and worried.  We had at end of
> 2000 almost nothing working in Java, just orders to get it done
> ASAP.  As it turned out, 5-6 months later in summer 2001, the
> first client projects were tentatively deployed on ACS 5 Java.
> Upon reflection I get a little freaked just writing this; in
> retrospect it was an insane schedule, driven by no small amounts
> of fear and desperation, and as one of the lead managers I walked
> a constant tight-rope with client teams who did their best
> delivering systems on alpha software.

Zope Corp very specifically and deliberately is continuing to propose
and develop customer projects in Zope2, and very specifically and
deliberately has committed to continue doing so as the driving force
in our business engagements.  From the http://www.zope.com/News/ZopeRoadmap -

ZRM>  Zope Corporation will continue to support, enhance, and solicit
ZRM>  enhancements for Zope 2.x for the foreseeable future. Our
ZRM>  commitment to our customers and community requires this.
ZRM>
ZRM>  While Zope 3 progress is a critical R&D effort on the part of
ZRM>  Zope Corporation, Zope 2 is the driving force in the Company's
ZRM>  current business engagements.

Drastic rate of change also seems to be a big factor in the ArsDigita
progression - and i don't have any sense at all that is what is
happening with Zope3!  From the inside (and speaking as a developer,
not anything connected with public relations), i don't fee any rush to
adopt Zope3 at all before it's ready.  I'm developing in Zope2.  I
even have an increasing sense that my CMF experience gives me a
legitimate foretaste, particularly with portal tools that are similar
to services being created for Zope3.

(Eg, events and an event listener tool we developed which Chris
McDonough recently ported to public CVS - see
http://cvs.zope.org/Products/EventListenerTool, to be used with the
Event system and Scheduler, which were already there.  And note that
these Zope3-ish facilities are in 'Packages', not 'Packages3' -
because they're usable in Zope2, while similar as (if not the same as
- i dunno?) facilities that will be in Zope3.)

For what it's worth, i see and have always seen Zope3 as a profound
_refactoring_, not any abandoning of the old ways.  A refactoring that
i think any old-hand at Zope would see as well advised - emerging out
of our experience with developing and using the software.

Furthermore, the "our" of "our experience" is Zope Corp *and* the
larger Zope community.

That's another striking difference - Kai mentions small teams of
developers churning away at heroic rates to come up with the new ACS
versions, and then plopping it out into the world, full born.  That is
in stark contrast with the fish-bowl/public-sprint/give-and-take that
i see happening with Zope3.

If i _had_ to sum this all up, i would characterize the ArsDigita
actions more towards the "push the new version because we have no
other choice" variety, while i see the Zope3 process as being "do that
refactoring we now have the wisdom and time to do, in a way we can
land gradually and as fits".  I'm sure that's an idyllic view, a bit
self-indulgent - but i do see the two situations, ACS development
versus Zope development, as being different in key and, from the Zope
side, redeeming ways ...

-- 
Ken
[email protected]