[Zope2-migration] Re: FYI: Lessons from Kai Wu at ArsDigita
Paul Everitt
paul at zope-europe.org
Thu Feb 13 00:10:03 EST 2003
I'll try to point out the places where I think Kai's email provides
similarities.
Note: the point here is risk management. This transition is exciting,
but it's also dangerous. Thus, we must be brutally honest, even
paranoid, about learning from the examples in the industry. Simply
finding a few differences related to our situation, and then throwing
out the similarities -- that's not risk management, it's wishful
thinking.
On mardi, fév 11, 2003, at 10:20 Europe/Paris, Paul Everitt wrote:
> From 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
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
"nauseating task" part of ensuring a smooth transition. But presumably
this falls under the official promise, meaning it will get official
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
feasible, supporting two very different platforms has a cost. Do you
train some of your guys in supporting Zope 2 and some on Zope 3? Do
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
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
features of Zope 3 to catch up with the features of Zope 2. Also, it
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
will want to enter, and they too will be faced with this issue: do I
train my 15 people on Zope 2 or Zope 3? (Although the "few months" for
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
vendor statement that says everything will be ok. Others will remember
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
use Zope 3 in production until (some time in 2004).
I worry because I hear some of the core developers saying they want to
start using it first half of the year. If that happens, we'll have a
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
non-Zope universe, are NOT going to have such a sublime assessment of
our transition. For business people, the specter of Zope 3 will
probably be as much a hindrance as a help in competing for contracts in
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
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
as being worthy of the energy of a total rewrite. You only rewrite
when the old thing was unfixable, right? "Shuffling feet" is fairly
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
communications. The "much bigger group" cares less, IMO, about new
component architectures. If you look at a standard evaluation matrix
for application servers, the kinds of things the bigger group cares
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.
With Jim's recent note, the path from Zope 2 to Zope 3 will be smoothed
by backporting important parts of Zope 3. That's good news. Previous
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
as fighting the bandwagon, heresy, being overly-pessimistic, etc.
I was hoping that we could move past the analysis of risks pretty
quickly and talk more about the steps to minimize them. However,
consensus has proven elusive on the risk assessment part.
Even if acknowledged the risks, and then decide not to do anything
about them, *at least* that would be a risk assessment. We'd know more
about the task ahead. Still, I think many of these risks can be
addressed with some good thinking, IMO.
--Paul
More information about the Zope2-migration
mailing list