Release management: landing airplanes

It's all very well to talk about "release trains" of interdependent changes as if in a sequence, but meanwhile in the real world it's a complex business scheduling inter-dependent and conflicting releases.

I was reminded of this watching a client wrestle with this recently. The purist theory says have uncoupled or loosely-coupled architecture, have everything SOA; do many small changes, don't bundle them; code to be independent of related changes ... and so on. And line them up in a train of releases.

If everything you own was built in the last few years by the best in the business, you might just be achieving that. As I said: a unicorn. Meanwhile for we horses the situation is more fraught.

I feel the "release train" is not a good analogy: airplanes are better. They can change order, be stacked on hold, pass each other, but they all need to land on the production runways before too long. They have business passengers who want to get home, cargo to deliver...
So we need to reduce the gaps between landings, land them closer.
Big planes make a jetwash that has to be allowed to clear, smaller planes can close up tighter.

In short it's hard to schedule change in the real world of Real IT. Like an airport.

Syndicate content