Sympathy for Ian "Harry" Harris
by Simon at 20:30 30/11/09 (Blogs::Simon)
Have just got around to retrieving and looking at the 'hacked' University of East Anglia Climate Research Unit files - concentrating on the code rather than the emails.

Ian "Harry" Harris, author of "HARRY_READ_ME.txt" in the 'documents' tree - you have my deepest sympathy. You're the designated shit/fan interface right now, and it isn't your fault.

The key quote from him is this:

Oh GOD if I could start this project again and actually argue the case for junking the inherited program suite!!

There are going to be lots of people looking at his README and maybe his code, and they'll criticise him as a result. Experienced developers, however, will nod sadly and recognise the situation immediately.

This isn't a development project, it's software archaeology. The original developers have either died, left, gone mad or been promoted and it's Harry's job to try and grok the remains. Worse, the current code doesn't actually run and that's where the can of worms labelled "Extra Wriggly" gets opened.

I bet the original requirement sounded pretty simple - having read Harry's README a couple of times I suspect it has to do with a shift in one aspect of the raw data from recording cloud cover to recording amount of sunshine around 1996. The one ought to be simply derivable from the other - they're logically opposite, after all.

What could be easier? Even if the rest of the code's a mess this ought to be a surgical change with little onward inpact - just convert inbound sunshine data to cloud cover data and feed the transformed result into the rest of the existing code.

Sadly for Harry, just trying to re-run the legacy codebase on the existing data is a hornet's nest. Compilation failures, endian issues, inconsistent data formats... heroically he embarks on analysing the problem and trying to repair the existing mess.

The key quote, above, is a throwaway comment borne of frustration at an unexpected (but it turns out, trivial) issue with permissions when trying to create an output file but by this point he's long since realised the true extent of the actual problem he faces...

Rule 1 of software development - other people's code is crap
(Corollary: your own younger selves count as other people too)

I feel for Harry, I really do. I bet there are million reasons why rewriting from scratch wasn't an option, but they should all have been overridden because it would have been the right thing to do.

Rule 1 for managers - any time the guy you've asked to work with legacy code says it's a pile of fetid dingoes kidneys, and he can demonstrate this easily, PAY ATTENTION!

Go read Harry's README file - it's part of the 60MB download of material that escaped from UAE's CRU. It's an essential insight into how our species ends up in the holes it does, armed with an infinite supply of shovels.

--
Simon

<< Stonehenge Visitor Centre Sunr... The "God Equation" >>
Powered by
Powered by Novacaster