Subscribe on LinkedIn
Haunted legacy: a Halloween code story
David Knott David Knott

Haunted legacy: a Halloween code story

It was 17:55 on the 31st October. Five minutes before the programmer’s shift ended and the night shift took over. The time when you hope that no new bugs will be reported and no new tickets will be raised.

Ping!

The ticketing system sounded an alert, and the notification bubble popped back into existence, a bright little ‘1’ in the middle of its red circle.

Read More
A moment in the project plan; a lifetime in the codebase
David Knott David Knott

A moment in the project plan; a lifetime in the codebase

Software can be a source of regret as well as value. It is a common experience to find yourself looking at code and wondering what fool could possibly have written it, only to read the comments and find out that it was you.

The passage from choice to regret is often clear to developers, despite their faulty memories. You knew what you were doing when you made those decisions – and that you (or someone else) would pay for them in the future.

However, this path is not so clear to other stakeholders and non-technical decision makers – and their choices are often the ones that create the most regret.

Read More
I was going to do something about legacy technology but I forgot . . .
David Knott David Knott

I was going to do something about legacy technology but I forgot . . .

Have you ever had the weird experience of reading a book and, part way through, realising that you’ve read it before?

Or being recommended a book, going to buy it, and realise that it’s already on your e-reader, marked as read?

Human memory is strange and fallible. It seems that it is possible for us to spend hours engrossed in an activity which occupies our minds, and then completely forget about it.

Read More
The time to care about code quality is now
David Knott David Knott

The time to care about code quality is now

What do we talk about when we talk about legacy technology?

Sometimes we talk about infrastructure: hardware that is out of support, operating systems which have not been patched or tools which are out of date. And sometimes we talk about commercial software: packages that have not been updated in years, products which are no longer made, and vendors which have gone out of business.

These forms of legacy can dominate our talk, as they present the most immediate and obvious threats: the unpatched server that is a beacon for attackers, the ancient hardware that may never turn back on again if we lose power, and the support line that just rings and rings.

Read More
Don’t talk to me about legacy: I’ve got wax in my ears
David Knott David Knott

Don’t talk to me about legacy: I’ve got wax in my ears

I learnt a new concept this week, from Cory Doctorow's blog: the idea of the Ulysses Pact. It comes from the part of the Odyssey where the Greek hero orders his men to tie him to the mast of his ship as they approach the lair of the Sirens, monsters whose songs lure sailors onto the rocks. Ulysses’ crew will follow the standard remedy of blocking their ears with wax, while Ulysses will become the first person to hear the deadly song and survive. As well as ordering the crew to tie him up, Ulysses tells them that, no matter what he says, no matter how much he threatens or implores them, they must not set him free.

The idea of the Ulysses Pact is for those times when we know that we will be tempted in the future to act against the values, instincts and interests that we have now. Unless we are unusually self-disciplined, we have this experience every time we embark on a diet, or exercise regime, or a course of learning: we want the good intentions of today to override the temptations of tomorrow. We adopt tactics such as purging our house of snacks, or putting gym and study sessions into our diaries. We lash ourselves to the mast of self-improvement and hope that the bonds are strong enough.

Read More
The vicious circle of legacy technology
David Knott David Knott

The vicious circle of legacy technology

Where does a vicious circle start?

I think that, in the case of legacy technology, it starts with an implicit agreement: to optimise for short-term outcomes over sustained capability. I also think that, once that implicit agreement gets the vicious circle of legacy technology going, it gets progressively more difficult to stop.

Let’s take a step back, and make it clear what we mean by legacy technology, and what it means to optimise for short-term outcomes.

‘Legacy’ is a euphemism. In normal language, it means something good: the things that we are proud to leave behind. In enterprise technology, it means something bad: the systems that have truly been left behind, in the sense that technology, capability and best practice have all moved on.

Read More
The dawn of a post-legacy world
David Knott David Knott

The dawn of a post-legacy world

It’s easy to be fatalistic when you work in enterprise technology.

Of course the great big programme will go wrong: great big programmes always go wrong. Of course the infrastructure will fail: infrastructure always fails. And of course we will always have legacy technology: technology becomes legacy the moment it is deployed.

Sometimes this fatalism is cynical: it is the world weary shrug of people who have lived through many failures. Fortunately, though, this fatalism is more often realistic, practical and active, and prompts us to create mechanisms to deal with inevitable failure.

Great big programmes always go wrong: that’s why we break them up into smaller pieces, manage our work through backlogs, and adjust our plans after each iteration.

Infrastructure always fails: that’s why we design reliability and resilience into our solutions, and treat infrastructure failure as an expected operating condition.

Except for legacy.

Read More
Give your legacy teams room and respect
David Knott David Knott

Give your legacy teams room and respect

What’s the best thing to give the teams looking after your legacy systems?

I was fortunate to be invited to sit on a panel at techUK's Building for a Smarter State conference last week. The topic was legacy, and the discussion prompted me to consider this question.

I’ve heard many answers to this question in my career, on a sliding scale from optimism to cynicism. I’ve heard optimists say that the best thing to give these teams is hope: the opportunity to learn new skills, to adopt new ways of working, to embrace new challenges and new solutions. And I’ve heard cynics say that the best thing to give these teams is the sack: they are stuck in the past, burdened with outdated skills and ways of thinking, and unwilling to change. Fortunately, the optimists have outnumbered the cynics, and we had no cynics on last week’s panel.

However, I think that there are two more things that we should give the teams running legacy systems: room and respect.

Read More
Legacy isn’t a technical problem; it’s a management problem
David Knott David Knott

Legacy isn’t a technical problem; it’s a management problem

Imagine a world in which your car was subject to a product recall every week. Sometimes the recall notice would be gentle but firm: bring your car into the garage when it’s convenient, but don’t wait too long. At other times, the notice would be more alarming: stop what you’re doing and bring the car in NOW!

If this was the case, you’d probably change your car. But what if every car in the world was the same? If you really needed to drive, you’d build regular maintenance into your schedule. It would be irritating and inconvenient, but better than having no car at all - and much better than crashing. You’d probably get pretty good at it, and so would your garage: they’d have lots of practice.

This is the world of enterprise technology. If you run commercial software of any complexity, then you receive patches and upgrades on a regular basis, most frequently to fix security vulnerabilities. Some of these patches will be minor or advisory, but others will be critical: they address immediate danger. Fortunately, we don’t have to take our software to the garage to get the patches applied: they come to us over the Internet. But there is work required to apply them.

Read More
From Oppenheimer to Fargo: the ups and downs of ingenuity
David Knott David Knott

From Oppenheimer to Fargo: the ups and downs of ingenuity

Is that really a Palm Pilot?

Coverage of the recently released biopic, Oppenheimer, revealed that the film was so long that the reels at IMAX cinemas needed to be modified to contain its full eleven miles. Observant viewers with an interest in technology noticed something much more surprising, though: the IMAX reels seemed to be controlled by something that looked like a Palm Pilot, a Personal Digital Assistant (PDA) from 2002. (For younger readers, a PDA was like a smartphone, only without a touch screen, the ability to make calls, connect to the Internet, take photos or store all your music. You may wonder why we spent so much money on them. In hindsight, me too.)

It turned out that the setup did not actually use a Palm Pilot, but a Palm Pilot emulator running on a Windows tablet - which somehow makes it seem even more weird. An obsolete device has been converted into software and presented as a physical interface on another obsolete device. Coupled with the mild shock at the realization that IMAX cinemas still use physical film at all, the whole configuration seems like a steampunk mashup of technology from different decades.

Read More
The three flavours of legacy: sour, bitter and sweet
David Knott David Knott

The three flavours of legacy: sour, bitter and sweet

What does legacy technology taste like?

That might seem like an odd question, not just because it’s strange to ask about the taste of technology, but also because it might seem obvious that legacy tastes bad. We usually talk as if legacy systems are unequivocally awful. We have legacy remediation programmes, legacy reduction programmes, and legacy elimination programmes. We sometimes seem to put more effort into getting rid of legacy systems than we do in building them in the first place.

However, I think that the world is not that simple, and that it’s more helpful to think of legacy systems as coming in three flavours: sour, bitter and sweet.

Read More
Are you breaking up monoliths or creating rubble piles?
David Knott David Knott

Are you breaking up monoliths or creating rubble piles?

This week I learnt (via the wonderful Skeptics' Guide to the Universe) that asteroids in the solar system come in two varieties: monoliths and rubble piles. These are exactly what they sound like: monoliths are big, singular rocks, while rubble piles are, well, piles of rubble, held together by gravity.

Rubble piles have a couple of interesting properties. First, the oldest asteroids are rubble piles. This makes sense: if a monolith experiences a collision and gets broken up, it may become a rubble pile. But there’s no way for a rock pile to go back to being a monolith. Second, rubble piles are harder to move. If we detect a big monolith heading towards Earth, we may be able to change its trajectory with a single impact. But if we send something up to impact a rubble pile, it might just jiggle around and do nothing to stop it coming towards us.

Read More