Friday, February 17, 2006

Version Hell

In the beginning we called it "CoolCodename". But that was then... That was before fate stepped in. A one-act play...

[Demosthenes is lying on his chaise longue, eating grapes, he appears to have been in this state of lassitude for a long time. Ctesiphon enters stage right in a hurry, he appears dishevelled.]

Demosthenes: [between munches] So what's bothering you, Ctesiphon? Software got you down?

Ctesiphon: The software's no problem, it's the naming thing. Those Gods are capricious beasts.

Demosthenes: [puzzled look]

Ctesiphon: I mean its the version thing. It's the fact that there is no longer an XYZ 2.5, it's now ABC 2.5.

[he continues, gesticulating wildly]

Did you know that the ABC 2.5.1 stream into which I've checked in 8 bugs was renamed on Wednesday to be the ABC 2.6 stream?

Demosthenes: Slow down a little, let me get it straight. There's a 2.5.1?

Ctesiphon: Slow down? Demo, 2.5 was last month's story, it's all 2.5.1 these days. And 2.6 of course. Yes. Well...

[slowly now, pausing to collect himself]

The ABC 2.5.1 project was renamed to ABC 2.6 after people like myself had been checking things into it for weeks. Ergo, post-facto crapulum.

Demosthenes: Hmmm. Ipso facto absurdum.

Ctesiphon: Greek not Latin, where's your classics, you anachronistic orator. This means that I have to recreate all my activities and redo the check-ins into whatever project is now supposed to be ABC 2.5.1.

Demosthenes: But I heard from the Oracle that the latest thing was XYZ 2.5, I mean JKL 2.5.

Ctesiphon: Rebranding they call it, that's the thing with Delphic Oracles... [pauses] Then they pretend that we were always calling it ABC 2.5 and not XYZ 2.5 and that we were always calling it JKL 2.5 and not CoolCodename. But that's a seperate issue. Don't get me started.

[he starts pacing up and down the stage, suggest crackling thunder in the background as he enumerates each point]

What gets me steamed is that

  1. They only told us now (Friday night) that the ABC 2.5.1 stream is open for submissions, and
  2. All submissions are due by Sunday, and
  3. The ABC 2.5.1 stream is now the ABC 2.6 stream, and
  4. The place to check in the ABC 2.5.1 fix is the old XYZ 2.5 stream which was not renamed to ABC 2.5.1
  5. And... oh forget it, who knows what the ABC stream is for....
Thus when I check in for ABC 2.5.1, I have to remember not to use the streams I had created, named ABC 2.5.1, but rather the old stream called XYZ 2.5. Reductio ad absurdum.

Demosthenes: [After winking at the audience] But I just read this week's scrolls, it was all about 2.6. What's going on, Ctsey?

[Ctesiphon becomes manic as he replies, perhaps his toga starts coming loose]

Ctesiphon: Which 2.6, I ask? Which 2.6, Demo? Let's not mention that we are going to have a new release of XYZ. They only tell you later. As you know XYZ 2.6 is based on CoolCodename, I mean JKL 2.5, but they'll be wanting some of the fixes from ABC 2.5.1.

[louder]

So this Saturday, after I finish merging my work into ABC 2.5.1 in the old XYZ 2.5 streams, I'll have to find the new streams for JKL 2.6, whatever they are named, because they won't do automatic merges. Then I have to diff the 2.5.1 code against the JKL 2.6 base (I mean the XYZ 2.6 base) and take only those changes that are in ABC 2.5.1 and hand-merge them.

[Even louder and faster]

But of course, they made some security fixes for that Trojan issue in JKL and so the security model has changed because the SMB market you aren't guaranteed to be using DBO instead it's XBO or SBO. And of course, there is no machine to test any of this stuff whether ABC, XYZ or JKL. Come to think of it, I've only ever tested my patch on a old build of ABC 2.5 that was using DBO, I never tested with...

Demosthenes: All right, all right... [winking again at audience then patting Ctesiphon on the back]

You better get some sleep, sounds like you've got a busy weekend ahead of you.

Ctesiphon: That Sisyphus had it good, the boulder always rolled down the same hill.

[Demosthenes walks him out stage right. Comes back alone, pours himself a goblet of wine, sips it and sighs... looks straight at the audience.]

Demosthenes: That's the thing about managing engineers, you've got to tolerate all this background noise. [Picks up a grape and sits down]

[Curtain falls.]

Note: the foregoing is a work of fiction, any resemblance to actual persons or products is entirely coincidental. Your mileage may vary. Always fasten your seatbelts when on a chariot. Objects in the mirror may be closer than they appear. Do not drink and drive.

Further reading

Soundtrack for this dialogue

Playwright's Note


A number of people have been reading themselves or their products into my little tale of version whiplash and confusion and I've even been asked to decode ABCs and JKLs. I rather thought the point was that the three letter acronyms didn't matter and indeed will change without notice until something sticks in the market place (ESB, SOA etc)

I will admit that almost all the lines of dialog sounded vaguely familiar to some, "verbatim" was what a friend said. But really, it's just fiction...

Still one might well construct a parallel universe in which CoolCodename might be "Portal" or "Workplace". Lotus Workplace (LWP) might become IBM Workplace and then might morph into Workplace Collaboration Services (WCS) for a while. Product managers might get the idea to attack the SMB market and turn a "lightweight" WCS into a CoolCodename-d PortalX which might in turn become Workplace Services Express (WSE) and then you might need to get version so-and-so out for... Well you get the picture.

It's all Greek to me.

See also: Version Hell Revisited

File under: , , , , , , , , , ,

1 comment:

Anonymous said...

you're back! cool. when are you going to get off this lame blogging platform?

one thing - the italics on the latest piece are actually quite hard to read. i am getting old i know.