Wednesday, 23 May 2012

Don’t light my fuse

In the fabulously funny (I may be overselling it) Mystery Men, the hapless heroes are brought together by the shadowy Sphinx; scrum master by day, crime fighter by night, a figure whose aphorisms inspire his team to save the city from Prince Practitioners. Judge for yourself:
He who questions training only trains himself at asking questions.
To summon your power for the conflict to come, you must first have power over that which conflicts you.
When you can balance a tack hammer on your head, you will head off your foes with a balanced attack.
I’m psyched. I’m exaggerating. The Sphinx, as far as I’m aware, isn’t an Agile consultant; though sometimes my Twitter feed suggests he could be. A 140 character per-post social networking service does tend to encourage brevity, tending to meaningless. It’s harmless enough, and within all the chaff there’s an occasional nugget. It is - and I wish I didn’t feel the need to say this - in no way indicative of the worth of this set of development methods, as Twitter is in no way indicative of the worth of anything. It makes me smile, if not always in the way intended. Sometimes it makes me frown:
Legacy maintenance is nothing but a pay-cheque. Sustaining a healthy, talented team of engineers in that arid environment is impossible.
Now there’s a statement that troubles in a multitude of ways, it’s a dead-end, a mixture of obvious, worthless and insulting. “Obvious” because we learn nothing in being told certain tasks aren’t that enjoyable; you might as well comment children are our future and fun things are... erm... fun. “Worthless” as one definition for legacy is any live software (I read that on Twitter!) and therefore most projects would require, bar the first iteration, some level of “legacy maintenance” - how do we live with ourselves? “Insulting” since telling those who do such work they’re only in it for the money, and (unintentionally?) insinuating they have no ability, isn’t very helpful. It doesn't progress the subject. It’s also bollocks. It’s a cul-de-sac of thought; at worst a “talented people don’t do these kind of jobs”, at best a “some jobs are more enjoyable than others”; well, you don’t say, but they still need to be done. Just what kind of world do we seek; one that would ghettoise certain types of work, or one where all can contribute, and all contributions are valued?


  1. Bollocks indeed. Wading through KLOCS of shonky COBOL to find the two figure dates so someones system didn't take down their business on Jan 1 2000 or ploughing through hundreds of poorly constructed VB modules to find the right place to set a breakpoint to determine why all your financial projections are coming out with minus signs in front of them may not be glamourous, but it's hardly unskilled work.

    And frankly, if you want excitement, adventure and really wild things, I can heartily recommend working your way through ~2.5 MLOCS of disassembled machine code for an application used to design safety critical chemical engineering processes so that you can add features without breaking anything, RE the associated device driver and emulate the hardware dongle so that the app can be used on modern hardware.

    Granted, that's at the "weird shit" end of the legacy spectrum, but still.

    I suspect that what most people mean by 'legacy' is 'stuff that's been around for ages', I came across one system that had been running more or less continuously since the year I was born, moving from minis to virtualised environments as hardware wore out. That kind of system is providing core business value on a continuous basis, and every developer has something to learn just from being in the presence of it.

    IMHO :)