Tuesday, 18 February 2014

Slow news day & Adobe charging twice for CFML features

You'll be pleased to know that Brendon McCullum got his 300 runs, becoming New Zealand's highest scorer for an innings, finally falling on 302. New Zealand declared on 680, which is their highest innings score in test cricket. We now have 56 overs to bowl India out to win the match. Which is seeming possibly on the cards as they are already 28/2: "McCullum, Neesham bat India out".

Increasingly the news media is relying on Twitter banality for its news content, and - whilst not a news organ - I don't see why I should be any different. So today's article is brought to you via a comment on Twitter.

James raises a very good point, and one I've been meaning to comment on for a coupla months now. Adobe are currently working through their bug backlog, and a lot of bugs are being fixed, with the comment of "this will be available in the next major release of ColdFusion" (ie: ColdFusion 11). That has a veneer of good news about it, but let's stop to think about this.

ColdFusion 9 and ColdFusion 10 are the current versions of ColdFusion. They are both still within their standard support phase (ColdFusion 9 until 31/12/2014, and 10 until 16/5/2017. Ref: "Adobe products and Enterprise Technical Support periods covered under the new Lifecycle Policy").

So if a bug gets raised as affecting ColdFusion 9, and its accepted as a bug, then it should be fixed for ColdFusion 9. And obviously same with ColdFusion 10. Tough shit that Adobe have to do some work to fix the bug... as clients we've already paid for the thing to work. This is not to say that I think software should be bug free, or that it's somehow mysterious or unexpected that bugs show up in software after purchase, but - fair's fair - we have paid a not-insignificant amount of money for working software, so if we find a bug that's affecting us in this software we've paid for, it should be fixed for that version.

I also acknowledge that Adobe have trickled out some fixes for ColdFusion 9, and quite a few for ColdFusion 10. But this does not represent the bulk of bugs in those products. And the number of bug fixes going into ColdFusion 11 represents a lot of person-hours from Adobe, but that's also... well... tough shit. You'd not have to sink all this time into fixing bugs had the bugs not been there in the first place. A bunch of these bugs are pretty esoteric sorts of things, sure, but a lot a very bloody fundamental ones too.

It's completely not on that Adobe only fixes these bugs in ColdFusion 11, and expects us to pay to get them. There's the upfront licence cost we need to pay to get 11 in the first place, but there's also the time and effort to perform the upgrade and test it. In my experience ColdFusion upgrades are not things to take lightly, and always require a chunk of work. Which has an additional cost to it.

As tHeSmUrF comments below, there's also a time consideration here. Say I raise a bug in ColdFusion 9 some time after work for ColdFusion 11 dev cuts off. Adode's current model is that I'm basically screwed as far as ColdFusion 9 goes, because I'd need to wait until ColdFusion 12 comes out to get the fix. Equally I could find a bug in ColdFusion 10 now (and bear in mind that 10 is the most current version of ColdFusion available), and it'll probably miss the cut for ColdFusion 11 now, so again I'll just need to wait. Or quite simply I could have raised a bug in ColdFusion 10 18 months ago now (it was released in May 2012), and Adobe's bugfix policy is that it's "OK" for me to wait until ColdFusion 11 is released - and then pay for it - to have this situation solved for me. Timeframes like this are just not on either.

What Adobe need (in good conscience) to do is this:
  • Release ColdFusion 11 as currently planned: all the features and bells and whistles and <cfclient> and bug fixes and new bugs and the like.
  • Release ColdFusion 10.5 which has all the bugfixes for ColdFusion 10 and earlier. But none of the ColdFusion 11 features.
  • Release ColdFusion 9.5, which is as above, but only the bugfixes raised for ColdFusion 9 and earlier.
  • From now on, any bug that was reported as being in a given version of ColdFusion and is subsequently fixed, should be released for all relevant ColdFusion versions which are still in their core support period. These should be released as discrete individual hotfixes, which might then subsequently released in hotfix roll-ups (ie: as per the updates we currently get via the ColdFusion 10 updater), but in the first instance, they should be discrete, issue-specific fixes.
  • Fixes pushed out via the updater should not be cumulative. The current update model on ColdFusion 10 is untenable in my opinion, as each new updater becomes increasingly risky to install, and also increasingly irrelevant to any given installation because intrinsically a diminishing number of the included bugs will actually be an issue needing addressing on a given ColdFusion installation.
And as a community we should not accept this model Adobe has of charging us twice for functionality: once for the chance to find bugs in it, and again to have the bugs fixed. This has gotta stop. The Adobe ColdFusion team needs to shoulder responsibility for the quality of their work, and the knock-on cost of the quality of that work that Adobe needs to incur. We the clients should not be wearing that cost.