Subscribe on LinkedIn
A tale of two codebases
David Knott David Knott

A tale of two codebases

It was the best the code would ever be; it was the worst the code would ever be.

Let me share two stories about software development.

In the first story, I was working on a software project. For the purposes of this story, it doesn’t really matter which one: after a while, all software projects have similar characteristics. But let’s pick a project in which I was helping build a new billing system for a utility company. The project started well, with a structured approach to architecture and requirements, and it seemed that we had all the time in the world. But, as the project progressed, the time vanished. The list of requirements got longer, not shorter. Programs returned from the testing team with more bugs, not fewer. We replanned, and rescheduled, and rebaselined, but didn’t find any magic ways to create more time. However, we crunched through, and eventually broke into the clear: with a bit of nifty rescoping, and expectation setting, and agreement that we had to release something, we launched the system. We survived the first few months of teething problems, and the system settled down. It wasn’t what had originally been envisaged, and the code was full of compromises and inefficiencies. But it was running - and when it was running well enough, the project was shut down and we walked away, some of us to start the next cycle all over again.

Read More
Skeuomorphism, refactoring and the persistence of constraints
David Knott David Knott

Skeuomorphism, refactoring and the persistence of constraints

Whenever I walk through Westminster (which, these days, I do a lot), there are queues of people waiting to take photos outside the red phone boxes that stand in Parliament Square. I can understand why: not only are the red phone boxes attractive symbols of Britishness, but if you line your shot up right, you can get Big Ben in the background.

However, there is an irony in crowds of people using expensive mobile phones to take pictures of the service that you used when you didn’t have a phone - and which has largely been rendered obsolete by those same mobile phones.

We see similar juxtapositions of old and new technology iconography every day, even if we don’t notice it. I’m looking at the home screen of my own mobile phone now, and I can see icons in the shapes of an old telephone handset, an old camera (twice), a wallet containing physical cards, a round clock with hands, and, finally, a mechanical gear wheel. This phenomenon is known as skeuomorphism: the use of old technology to represent new technology. It is remarkable how persistent these symbols are: I recognise them because I grew up with their analogue counterparts, but they are also used confidently by people who have never picked up a physical handset from a cradle, or clicked the button on an old-fashioned camera.

Read More
Sometimes it’s fine to have a solution looking for a problem
David Knott David Knott

Sometimes it’s fine to have a solution looking for a problem

The lightbulb was not always the symbol of a good idea.

Edison’s incandescent electric lightbulb initially met with scepticism on both sides of the Atlantic. Henry Morton of the Stevens Institute of Technology said that, ‘Everyone acquainted with the subject will recognise it as a conspicuous failure,’ while a British Parliamentary committee said that it was, ‘unworthy of the attention of practical or scientific men.’

Part of the reason for this scepticism was due to problems that had not yet been solved, such as the distribution or ‘subdivision’ of electricity. But part of it was also due to the feeling that these problems did not need to be solved: there were already established ways of providing illumination. Edison’s lightbulb was a solution looking for a problem.

Read More
That’s why they call it the future
David Knott David Knott

That’s why they call it the future

What does the future look like, seen from the past?

Recently, I’ve been doing a lot of reading about the early days of the public Internet, and revisited the book ‘What Just Happened?’ by James Gleick. It’s a collection of essays about technology, written through the 90s and published in 2002. It was already a time capsule when it was published, and is even more so from the perspective of 2024. For anyone who lived through those times, it’s a mix of nostalgia (dial-up modems; Usenet; multimedia content on CD-ROM), prescience (GPS in your pocket; personalised feeds; digitisation of money) and emerging questions of behaviour and social impact (privacy; etiquette; trust).

The themes I found most interesting, though, were optimism and frustration.

Read More
Failure, fairness and friends: development and video games
David Knott David Knott

Failure, fairness and friends: development and video games

If you play video games, you may be aware of the Dark Souls series, or the genre of ‘Soulslike’ games. These games have common characteristics: they are third person action adventure games, usually (but not always) set in a fantasy world, where you fight an implacably hostile environment and enemies, including bosses who often tower above you. They have complex, obscure stories that you discover piece by piece, you level up by gathering resources (souls, or runes or something else) from the enemies you kill, and you lose those resources when you get killed - but you can regain them if you fight your way back to the place you died without getting killed. And they’re hard. Very hard.

i enjoy these games (with a few exceptions - ahem Sekiro ahem). Even though they are intense and frustrating, they are very rewarding when you manage to overcome challenges and get to the end. Moreover, they feel fair: when you die to a boss for the fifteenth time, you know that it was because you made a mistake: you dodged slightly too late, or you waited slightly too long to heal, or you pushed your luck a bit too far.

Read More
Features are like feathers: you never know how they will be used
David Knott David Knott

Features are like feathers: you never know how they will be used

We now know that many dinosaurs had feathers. However, this doesn’t mean that all feathered dinosaurs could fly: it is believed that feathers first evolved for insulation rather than flight, and developed over millions more years to provide lift as well as warmth.

Feathers are an example of exaptation: a term proposed by Stephen Jay Gould and Eilsabeth Vrba in 1982, to describe the phenomenon of something that evolved for one purpose, and has been adapted by evolution to serve another purpose. Other examples include the development of two of the bones that formed part of the reptilian jaw to become the malleus and incus, essential parts of the mammalian ear: we hear with bones that reptiles use to eat.

Exaptation is a useful concept in technology too, and we do not have to wait millions of years to see it in action: human ingenuity acts faster than evolution. For example, take the powerful computing devices we carry in our pockets and call ‘mobile phones’.

Read More
Technology estimates: unpredictable since 1823
David Knott David Knott

Technology estimates: unpredictable since 1823

In 1823, Charles Babbage was awarded £1,700 to build a machine known as Difference Engine 1, capable of automatically producing astronomical and mathematical tables. It was to be based on Babbage’s success in building Difference Engine 0, a smaller, prototype machine, which showed the potential of automatic calculation.

Nineteen years later, in 1842, after the budget had been spent ten times over, the project was abandoned. By this time, Babbage’s attention had shifted to an even more ambitious project, the Analytical Engine, which anticipated much of the computing architecture of modern, digital machines, including programs, memory and an arithmetic processing unit. Despite the contributions of another genius, Ada Lovelace, only a small part of the Analytical Engine had been built before Babbage died in 1871.

We should not disparage the work of Babbage and his colleagues for being incomplete: the Analytical Engine may be the best example ever of a machine being ahead of its time. To a modern computer engineer, the idea of building a mechanical digital computer out of brass and steel is audacious, to say the least. To a software engineer, the idea of developing computer programs, as Lovelace, without a machine to run them on, without the fundamentals of computing being settled - and without the modern programmer’s primary resources: the Internet, a search engine and online forums - is terrifying.

Read More
Try visiting a different layer of abstraction
David Knott David Knott

Try visiting a different layer of abstraction

I had a brush with assembly language over the Christmas break.

I’ve always counted myself fortunate that I started programming in the microcomputer era, when BASIC was the most common entry point for hobbyists, and that I got my first programming job when assembler programming was becoming rare, and languages such as COBOL were the norm.

BASIC and COBOL are regarded as old-fashioned now, but their core programming paradigm - a simplified, English-like syntax used to construct logic and manipulate variables - endures. However, I’ve always been aware of the assembly programming paradigm that involves loading, incrementing and comparing registers, and that it’s a lot closer to what is actually happening at a hardware level. I’ve also been aware that many large enterprises still depend on code written in assembly language, and have been grateful that I’ve never had to attempt to learn, read or debug it.

Read More
What’s hiding in your technology sock drawer?
David Knott David Knott

What’s hiding in your technology sock drawer?

If you celebrate Christmas, I hope that you got some good presents. But you may also have got some presents that seem fun for a few weeks, or a few days, or a few hours and that you then put away, never to take out again.

In the fascinating podcast series Gamecraft (https://www.gamecraftpod.com/), Mitch Lasky and Blake Robbins explore the history of the video game industry. I learnt a lot from this series about the economics and history of video games, as well as the way that the behaviour of developers and players has shaped and been shaped by games. I recommend listening to the whole series, but there’s one concept that particularly stuck with me: the idea of ‘sock drawer ware’.

This is consumer technology that appears to be a good idea, and that looks like it will gain a committed, sustained audience, but ends up in the sock drawer after a few weeks. (This term crops up in the episode about virtual reality - sorry VR people, but this seems like a good way to describe the repeated waves of enthusiasm and indifference that have greeted developments in VR. Perhaps this time round it will be different.)

Read More
Now you’re thinking with . . .
David Knott David Knott

Now you’re thinking with . . .

Christmas is a time for play, so let’s talk about a game. If you haven’t played the video game Portal, then I suggest that you stop reading this article and go and play it.

Welcome back. Did you play Portal 2 as well? If not, go and play that one as well: it’s even better.

If you didn’t take my advice, then you’ve missed out on a great experience. (Maybe you should go and try it - we’ll wait.) I believe that the Portal games are examples of just how good video gaming can be: intriguing, playful, thoughtful and challenging, with a sparse but engaging story.

In the games, you are a subject in a lab, and you have one tool to pass a series of strange and dangerous tests: a portal gun. When fired, this gun creates a hole on a surface, and when fired again, it creates a hole on another surface. If you jump through one hole, you come out of the other - it’s a portal! The games are an exercise in creativity on top of this simple premise, by both the developers and the players.

Read More
The lion, the steam train and the LLM
David Knott David Knott

The lion, the steam train and the LLM

Last week, I was fortunate to go on a journey on a steam train, from one side of England to the other and back again. All along the route, people smiled and waved and took photos as the train chugged past: it was a special sight.

From a purely technical point of view, this happy reaction may seem to make no sense. Steam trains are slower, less reliable and more polluting than their electric alternatives. Yet a steam train has charisma: it has a presence and an energy which an electric train, no matter how sleek or modern, can’t match.

There is an analogue in the world of nature: some animals are deignated charismatic megafauna: lions, tigers, elephants, rhinos and so on. You can probably guess the top ten animals in this category: they are the animals that appear in film and stories, in advertising and environmental campaigns. They have a status as symbols: their images mean courage, ferocity, strength and other abstract concepts which may have little to do with their actual attributes and behaviours.

Read More
Eat your standards: they’re good for you
David Knott David Knott

Eat your standards: they’re good for you

I didn’t like vegetables much when I was growing up.

This might have been due to my immature palate, or it might have been because the quality and variety of vegetables in British cuisine in the 1970s were limited. I knew that I was supposed to eat more vegetables, but why should I when there were plenty of burgers, chips and beans to go around? (Do chips and baked beans count as vegetables? Technically, yes, I suppose, but not aesthetically or nutritionally.)

I think that technologists sometimes have a similar attitude to standards. We know that we should follow them, we know that they are probably good for us, but we also feel that they cramp our style, and that they are rather less fun than they could be. This is especially the case when we have the figures of central governance, change boards and process approvals looming over us, asking us whether we have implemented our standards and whether we can prove it, the technical equivalent of asking whether we have eaten our vegetables and whether we have clean plates to show for it.

Read More