This post is for anyone who has had to try to bash through someone else’s shitty source code with all its confusion, obsolete logic and lack of documentation. In other words every software developer, everywhere. Spare a thought for Lieutenant Commands Rupert T. Gould.
From Longitude by Dava Sobel
H-1, H-2, H-3, H-4 are the model names for the various generations of clock that were created by genius inventor John Harrison for reliably telling the time at sea: the crucial . The devices languished unused and uncared for until Lieutenant Commander Rupert T. Gould from the Royal Navy took an interest in restoring them. It took him 12 years to restore all four. This restoration is very much a hardware story but software people will empathise:
So he set to right away with an ordinary hat brush, removing two full ounces of dirt and verdigris from H-1 …
It seems only proper that more than half of Gould’s repair work – seven years by his count – fell to H-3, which had taken Harrison the longest time to build. Indeed, Harrison’s problems begat Gould’s:
“No 3 is not merely complicated, like No. 2,” Gould told a gathering of the Society for Nautical Research in 1935, “it is abstruse. It embodies several devices which are entirely unique – devices which no clockmaker has ever thought of using …” In more than one instance, Gould found to his chagrin that “remains of some device which Harrison had tried and subsequently discarded had been left in situ.” He had to pick through these red herrings to find the devices deserving of salvage.
I feel for the guy, working through someone else’s undocumented code. Struggling to clean out the accumulated cruft of (what seems like) centuries of neglect. Discovering tons of methods that aren’t just commented with HACK or TODO, but methods that it turns out never get called in production.