Friday 7 November 2014

ColdFusion: Adobe kinda trumped me to this

G'day:
An article I've been drafting in my head is a suggestion for Adobe as to how they can make the ColdFusion release cycle less painful for their clients. They've actually done part of what I was thinking of advising today, by releasing the latest updater for ColdFusion 11 to beta for us to test ("ColdFusion 11: a decent bugfix update has been released to beta"). But I'll write down what I was thinking anyhow.



The issue we're faced with with Adobe and ColdFusion is that to use ColdFusion, Adobe expects us to pay money upfront. This is a normal commercial practice, so fair enough. However having bought - say - ColdFusion 11, what we have actually bought is some fixes to CF10, some new features (some good, some... well... <cfclient>), and a sea of bugs. Some of the sea are the sames ones as were in ColdFusion 10 (or 9... or 8...), but a lot were new. And in ColdFusion 11 there are a lot of bugs. I'd say it's the buggiest release since CFMX 6.0.

However Adobe seem - traditionally - very very slow to see us right as far as the bugs go. They don't seem to "get" that they've sold us a bill of goods, and should we find something wrong with it, then they kinda need to address that. But in a timely fashion.

As big as this update 3 is (100+ issues dealt with), it was too long in coming. ColdFusion has an updater in it now, so Adobe can dribble out updates whenever they want. The updater actually works pretty well for a proof of concept / first iteration, but it still needs work. Here's where they need to focus for update 4 (which ought to be released next month):

Multiple update branches

Many software applications have this these days, and Railo is a good example here. They have a "stable release" branch - fully tested and supported updates - and a "bleeding edge" branch which is basically whatever Micha or Igal have finished and built and probably works. They release these fixes to anyone who wants them, and this is an excellent way of getting volunteers to do yer testing. And if someone needs a bugfix now because it's causing them issues, they can run with it (at their own risk, obviously). Conversely the "stable" branch is updated less often, but the stuff is "finished" and properly supported.

Abandon cumulative updates

One of the problems Adobe have made for themselves is that the updater only seems to do cumulative updates. Every subsequent update has all the previous fixes in it too. This makes each update more risky to install. Let's say five updates go by and there's nothing in them I need, so I don't bother. Now an update 6 comes out and I need a fix... I have to accept all the other fixes too. Which means I have that much more exposure to regressions to test. This sux. And should be unnecessary.

What Adobe should do is to make any given update a separate thing. The only time it should have a dependency is if it fixes something which another previously released updater caused. This way they can trickle out invididual bugfixes, and keep the most people happy any any given moment in time.

Periodically they can release larger "roll-up" updaters which include some / all of the previous hotfixes (some hotfixes might be so edge-case that there's no grounds for them to be rolled into anything). This means people with constraints on how often they can update their systems can just do periodic bulk updates. Win.

(this is, btw, not a new idea. It's how they did it in all versions of ColdFusion up to 9. They only went to this cumulative thing with 10 & 11).

Money

Then... when ColdFusion [next] comes around, all those bugs can be rolled into the release. And Adobe can charge us for it! But the client has less exposure because they've already been running with some / most of them. It makes a release less of a significant risk for the users. Another win for everyone.

Update 5...

And thereafter, Adobe need to retask their approach to bugfixing and have a cycle of triage->fix->test->release to bleeding edge->release to stable. And get bugs out all the time. We should not be waiting six months between updates. Yes, we've had two in a coupla weeks, but that's because of a security hole, not because of Adobe's generosity! We should be getting fixes constantly.

Happy

Because then we'll be happy. Everyone. Well I'll find a reason not to be, but everyone else will be ;-)

Time for me to board my flight.

--
Adam