Re: FYI: Lessons from Kai Wu at ArsDigita

Paul Everitt <[email protected]> Thu, 13 Feb 2003 00:10:03 +0100
Newsgroups gmane.comp.web.zope.zope2-migration
Message-ID <[email protected]>
I'll try to point out the places where I think Kai's email provides=20
similarities.

Note: the point here is risk management.  This transition is exciting,=20=

but it's also dangerous.  Thus, we must be brutally honest, even=20
paranoid, about learning from the examples in the industry.  Simply=20
finding a few differences related to our situation, and then throwing=20
out the similarities -- that's not risk management, it's wishful=20
thinking.

On mardi, f=E9v 11, 2003, at 10:20 Europe/Paris, Paul Everitt wrote:

> =46rom Kai Wu
>
> 	Ah, well (grimace) there wasn't a clear plan for transitions -
> we built ACS 4 Tcl anew, while ACS 5 Java, of course, shared
> little besides the data model with ACS 4 Tcl.  If you started on

Us too.  ACS 5 had a new data model, Zope 3 has a new API and new=20
component model.

> a given system (ACS 3, ACS 4, or ACS 5 Java) you usually stayed
> on it - translating software plumbing is a nauseating task for
> smart programmers, nor is it an appealing expense for clients.

Based on interactions in the last few weeks, I also worry about the=20
"nauseating task" part of ensuring a smooth transition.  But presumably=20=

this falls under the official promise, meaning it will get official=20
manpower to fulfill the promise.

> 	Zip back to Summer 2000; ArsDigita had a handful of our sharpest
> developers coding ACS 4 Tcl (note: we did not have a QA team, or
> dedicated doc people). We pre-sold new customers on ACS 4 Tcl for
> a while.  We told old customers (on ACS 3 Tcl) we'd take care of
> 'em - meaning, a developer or two on our end was essentially

I presume this will apply to any existing Zope company.  While this is=20=

feasible, supporting two very different platforms has a cost.  Do you=20
train some of your guys in supporting Zope 2 and some on Zope 3?  Do=20
you train all of them on both?

> 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

That's the story for us too.  Elaborating the migration issues happens=20=

some point in the future.

> with ACS 3; the changes were quite radical.  (We actually tried

Changes are quite radical for us.

> to get close to Zope's object model - no easy task using an RDBMS
> and a procedural language.)  Of course, the old customers who
> managed to survive (the 'net bubble was just starting to deflate
> at that point, in mid 2000) were rather curious as to what ACS 4
> had.  Some were willing to pay for developer time to do custom
> migrations, most not - new features, and not new plumbing, are

This is true for us as well.  It will take quite a while for the=20
features of Zope 3 to catch up with the features of Zope 2.  Also, it=20
will take a while for the maturity and bug-proofedness to catch up.

> almost always brighter lights for aggressive dot.coms to be drawn
> to.
> 	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
> people, internally and externally.  Our professional services
> people, having just ramped up on ACS 4 Tcl, were ticked that we

Zope is just starting to get big in the marketplace.  New companies=20
will want to enter, and they too will be faced with this issue: do I=20
train my 15 people on Zope 2 or Zope 3?  (Although the "few months" for=20=

us will be "few quarters".)

> were pretty much abandoning it within a few months.  Clients just
> started on ACS 4 Tcl were confused and worried.  We had at end of

We're likely to have some of this as well.  Some people will accept a=20
vendor statement that says everything will be ok.  Others will remember=20=

how vendors have said that in the past, and things didn't work out well.

> 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.

We won't have too much of this, as long as the message is sent: don't=20
use Zope 3 in production until (some time in 2004).

I worry because I hear some of the core developers saying they want to=20=

start using it first half of the year.  If that happens, we'll have a=20
different ballgame (IMO).  We'll start to lose flexibility.

> 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.

This risk is definitely under control.

> 	Even by the time I left (got axed, urk!) aD in December 2001,
> client teams were still ramping up on ACS 5 Java, and product
> development was still intense.  And if you visit the Red Hat site
> (they bought us out in a rather, uhm, closed-door deal) and look
> for CCM, you'll see it continues; I'm quite curious to see it
> eventually since I like my former colleagues and liked our
> product idea, but I've decided to go with Zope for several of my
> own projects.
> 	Back to the past: Of course, our open-source external community
> (see openacs.org) was up in arms about all these changes; first
> they were asked to adopt the ACS 3 Tcl orphan.  Then the ACS 4
> Tcl newborn came along.  It took them a long time to translate
> and begin improving ACS 4 Tcl (they use Postgres, we used
> Oracle) - in some ways, that learning curve sucked up such
> critical amounts of time and energy that their whole community
> suffered; growth in ACS adopters slowed greatly.  I don't have
> numbers, but anyone who visited the openacs.org site during 2001
> would, with a little investigation, find lots of FUD around
> ArsDigita, the ACS, and the community - enough to say, "Screw it,
> I'll go with PHP" (small budget) or "Screw it, I'll go with J2EE"

Us too.  We need to understand and appreciate that others, out in the=20
non-Zope universe, are NOT going to have such a sublime assessment of=20
our transition.  For business people, the specter of Zope 3 will=20
probably be as much a hindrance as a help in competing for contracts in=20=

2003.

> (big budget).  Suffice to say, by the time we said we'll be going
> to Java, it was essentially a divorce; a process that is costly
> and damaging to both parties, no matter how much either one
> denies it.
> 	Lessons?
> 	Always have a few good technical scouts providing
> well-considered feedback as to long-term product and marketplace

I don't really think we're doing too much of this.  Then again, that's=20=

probably out of scope.

> trends so your development efforts have a high ROI and stay
> relevant, and so that your product plans are proactive and can be
> communicated consistently (perhaps aD started out on the wrong
> technical base; perhaps, if we had gone from ACS 3 Tcl to an ACS
> Java, and told everyone so for a while, we'd be OK).
> 	If you have the luxury of time and a slow transition, use it.

Certainly we're doing this.

> 	And always, always have something to show people (users,
> developers, business people, the press) that works today, is
> polished (good installation, ample docs, high quality, and
> completed functionality with slick UI), and is clearly being
> supported (lists, IRC, forums, newsletters with buzz, and regular
> module/Product releases) - that gets you the gold of credibility.
> Perhaps today's pace is just a bit slower than the boom time, but
> I think even a period of 6 months where you're promising The Next
> Great Thing while reluctantly showing your old software with

Let's face it, we're stuck pretty hard in this one.  We talk up Zope 3=20=

as being worthy of the energy of a total rewrite.  You only rewrite=20
when the old thing was unfixable, right?  "Shuffling feet" is fairly=20
accurate.

> downcast eyes and shuffling feet will do you serious harm.  And
> we all know 6 months is not enough time for anything as big and
> cool as Zope 3 to mature.
> 	Finally, if your product is any good, you will always have your
> smartest and fastest developers clamoring to push ahead - let
> them, but don't let their buzz stir FUD with the much bigger

This is the point that we're trying to address on this list: external=20
communications.  The "much bigger group" cares less, IMO, about new=20
component architectures.  If you look at a standard evaluation matrix=20
for application servers, the kinds of things the bigger group cares=20
about -- is much of that getting attention?

> group of regular coders, users, clients, etc.  We know those
> uber-developers are clever and eager to prove it with some great
> software; sometimes too eager.  Disdain for continuity in the

Increasing the amount of continuity is what some of us are advocating. =20=

With Jim's recent note, the path from Zope 2 to Zope 3 will be smoothed=20=

by backporting important parts of Zope 3.  That's good news.  Previous=20=

statements indicated some "translation" would be employed instead.

> product and disdain for its community can kill or maim the whole
> product; a real pity for open-source products, where many people
> give very generously of their time and energy.
> 	There may be more pithy lessons, but that's what I can think of
> for now.  Hope this helps,
>
> Kai

Talking about risks is never fun nor popular.  It always comes across=20
as fighting the bandwagon, heresy, being overly-pessimistic, etc.

I was hoping that we could move past the analysis of risks pretty=20
quickly and talk more about the steps to minimize them.  However,=20
consensus has proven elusive on the risk assessment part.

Even if acknowledged the risks, and then decide not to do anything=20
about them, *at least* that would be a risk assessment.  We'd know more=20=

about the task ahead.  Still, I think many of these risks can be=20
addressed with some good thinking, IMO.

--Paul