Subscribe on LinkedIn
What could possibly go wrong?
round trip question David Knott round trip question David Knott

What could possibly go wrong?

Are technology people particularly short-sighted? The story of the millennium bug seems to say so. In case you’re not familiar with it (and, although it loomed large in my life, I have to remember that it was over twenty years ago now), the millennium bug was caused by people like me building computer systems which only used two digits to store the year. This seemed like a great way of saving storage and memory in the 1970s and 1980s, but less so when the millennium loomed, and we realised that we were going to need a bigger date. It took millions of people, hours and dollars to fix things so that systems carried on working on 1st January 2000 (and if anyone tries to tell you that the whole thing was a hoax, try asking someone who worked on a millennium project or ran tests that night).

I think that the story of the millennium bug is not a story of short-sightedness: rather it is a reminder that we are still at the early stages of integrating computers into our society. From the perspective of 2022, it seems obvious that systems will run for decades and that they need to be capable of handling all future dates. From the perspective of the 1970s and 1980s, those systems were brand new, and it seemed certain that they would have limited lifespans. Surely nobody would still be running that code twenty years later!

Read More
Completing the round trip: from centuries to microseconds
round trip question David Knott round trip question David Knott

Completing the round trip: from centuries to microseconds

What happens when you press ‘send’ on your mobile banking app? I first posed what I called ‘the round trip question’ a few weeks ago, to illustrate that the people who build technology have a duty to explain. Over those weeks, I’ve explored the nature of computing, of digital communication, of identity, and of the humans who build and use systems. I’ll now attempt to give an end-to-end answer to the question, starting a little bit before you press that button . . .

Mid-19th century: Ada Lovelace and Charles Babbage collaborate on the Analytical Engine, intended to be the first programmable, general purpose computer, although it was never finished. Samuel Morse (and others) create a binary code for communication over telegraph wires.

1930s and 1940s: Alan Turing publishes the paper, ‘On Computable Numbers, With an Application to the Entscheidungsproblem,’ laying the theoretical foundations for digital computers. The theory is put into practice by the creation of Colossuss by Tommy Flowers in Bletchley Park.

Read More
Always remember that computer systems have humans at both ends
round trip question David Knott round trip question David Knott

Always remember that computer systems have humans at both ends

We should never forget that computing is a human activity that should be used to improve human lives. All computer systems ultimately have humans at both ends: the humans that use the systems, and the humans that build and run those systems.

Unfortunately, the business of building, running and maintaining computer systems can often be so difficult that, in the process of organising programmes, building teams, hiring partners, and writing plans, we forget about the humans. Indeed, for many years, the methods most large companies companies followed to build computer systems seemed designed to squeeze the humanity out of those methods and systems.

If you work for a large enterprise, you have probably been involved in some way in a technology project, even if you have never worked as part of a technology team. You may have been on the receiving end of new software or changed systems, or may have had the opportunity to define requirements or test changes. You may also have heard the term ‘waterfall project’ and picked up the impression that we don’t like waterfall projects any more - even though we still seem to spend huge amounts of time, effort and money executing them.

Read More
The servers are virtual, just like the money
round trip question David Knott round trip question David Knott

The servers are virtual, just like the money

In old films, the robbers broke into the bank and stole the money from the vault. In new films, the heroes often break into the computer room to hack the mainframe.

Both of these cliches have some foundation in reality. Bank vaults do contain money - and used to contain a lot more. Mainframe computers are still used in many large organisations, and often run some of their most important systems (although ‘the mainframe’ is no longer as important as films such as those in this video would have you believe).

However, there is also a fundamental flaw in both these ideas: these days, the assets they are trying to gain access to (money and computing systems) are mostly virtual. They do not exist as fixed, physical entities in the world any more.

Read More
Into the ever rising ocean of data
round trip question David Knott round trip question David Knott

Into the ever rising ocean of data

Data is, at the same time, the most mundane and most exciting aspect of computing.

It is mundane because of its origins in the world of folders and filing cabinets. In my first ever paid programming job, for a government department in the 1980s, the team I was part of was not called Information Technology (and certainly not Digital), but Automated Data Processing. And, while I was thrilled to get paid for writing code, the work we were doing was about as exciting as that title implies: we were doing the computing equivalent of shoveling coal from one pile to another (or moving records from one file to another). All of the data we were working already existed, in written paper records, in printed documents or even on micro-fiche. By creating Automated Data Processing systems, we were enabling data to be processed with greater speed and accuracy - but we were not creating new data.

Based on some informal surveys, I think that most people who have not had the chance to work in technical jobs, still think of data in this way. When we press ‘send’ on our mobile banking app, we imagine that the work that computers are doing is similar to the work that clerks would have done with printed ledgers many years ago: the data is hauled up from the memory of the computer, the number is read and sent out, some amendments may be made, and the data is sent back to its quiet resting place.

Read More
Shrinking space and time with dots and dashes
round trip question David Knott round trip question David Knott

Shrinking space and time with dots and dashes

In 1844 Samuel Morse did two things that changed the world. He sent the first telegram in the USA, and he sent it using his famous Morse code. (Like many world changing inventions, the degree to which this was All His Own Work and the degree to which he drew from the work of others is disputed - not least by Morse). The telegraph shrank time and space for decades until it was superceded by other communications technologies: the last telegram was sent in the USA around 2006.

It may seem that the telegraph and Morse code are antiquated relics now, but I think that they help us understand an important part of The Round Trip question: networking. (This is part of a series of articles in which I attempt to answer, in non-technical terms, what happens when you press send on your mobile banking app. Or, more broadly: what does it mean to live in a world run by computers and made out of software?)

I must admit that I am not an expert in networking, and find the many network components that lie between the phone in my hand and the computer in my bank complex and difficult to understand and describe. I am hoping that simpler technology from another age can help me.

Read More
A balance between security, convenience . . . and legacy
round trip question David Knott round trip question David Knott

A balance between security, convenience . . . and legacy

We talk about the Stone Age, the Bronze Age and the Iron Age, and sometimes the Digital or Information Age. Perhaps one day we will talk about the Paper Age: the time when the world was run on systems and processes and information, but those systems and processes were manual, and the information was stored on paper.

Back in the Paper age, the way you proved your identity to your bank, whether to make a deposit, withdrawal or payment, was by signing a piece of paper: a paying in slip, a cheque or a letter. Today, that seems like an incredibly primitive and insecure method of authentication. Cheque books can be stolen, signatures can be easily forged, and anyone can write a letter. And, of course, banks were subject to fraud during the Paper age, to the extent that there are many slang terms for writing bad cheques: paper hanging, cheque kiting, bouncing cheques, hot cheques and so on. But many of these forms of fraud were exploiting the same feature that gave the banking system some measure of protection: it was slow. Cheques were physically transported to central sorting facilities where they were checked, reconciled and cleared. Letters could be queried. Signatures could be manually checked.

Read More
A question of identity
round trip question David Knott round trip question David Knott

A question of identity

It happens in the blink of an eye. You press the tip of your finger against your phone. A capacitative sensor determines the pattern of ridges and valleys in your fingeprint . An algorithm matches the pattern against a digital representation stored in a secure enclave on your mobile device. If it finds a match, it unlocks your phone (or does whatever other task you were attempting to authorise).

There are other means of authentication, such as facial recognition, PIN codes and passwords, but I think that fingerprint recognition is particularly interesting because it illustrates important differences between the ways that humans and machines and systems deal with identity. (By ‘systems’ I mean all formal, process driven methods of interaction - not just those implemented in software on computers.)

When humans think about identity we think about an individual, a person. When we say that we know someone, we mean that we know many things about them: not just their name and their profession, but aspects of their behaviour and personality. It is remarkable how quickly we form an impression of a person: even if we have only shaken hands and shared a meeting room with someone for an hour or two, we come away with some idea of what they are like. (Of course, our impressions are also subject to bias and preconceptions: the speed with which we form ideas about others is not always a good thing.) When we encounter that person again, we don’t typically feel that they need to prove their identity. We recognise them.

Read More
It is in the nature of software to be broken
round trip question David Knott round trip question David Knott

It is in the nature of software to be broken

‘Why don’t they just write the code properly? Why can’t they just get it right first time?’

I’ve heard these sentences spoken several times in a professional context by non-technical project managers wondering why the testing phase of a project (or a sprint, or a release) is taking so long.

Even if you’re not a project manager working on a development project, you may have similar questions when you encounter software problems in your normal daily life. Why does your laptop always need updates? Why is the web site you want to use down yet again? Why are big budget games full of bugs when they are first released?

If you have ever written code for a living you may be simultaneously exasperated and embarrassed by these reactions. Embarrassed because you recognise that too much code which makes it to production contains too many bugs which should have been detected and eliminated in testing. Exasperated because comments such as ‘Why don’t they just get it right first time?’ fundamentally misrepresent the experience of writing software.

Read More
The round trip question: if you want to understand the world, learn to code
round trip question David Knott round trip question David Knott

The round trip question: if you want to understand the world, learn to code

COBOL turned 60 in 2019. Happy birthday COBOL! Python turned 30 this year. Happy birthday Python!

If you work in a large company, you have probably heard of COBOL - often in hushed tones, referring to ancient, giant systems that are held in a special facility somewhere out of sight, tended to by people steeped in ancient wisdom. You may also have heard people speak about Python, often in excited tones, referring to new disciplines such as data science and machine learning, exercised by smart new people fresh out of college.

The comparative age of COBOL and Python may be surprising to anyone who has never had the chance to write code: COBOL is older than Python, but they are both so old that they have been around longer than most people today have been working. If you do write code then you know that, while they may have significant differences, at root these languages are more similar than they are different. They both use the same logical constructs to manipulate data.

Read More
The round trip question: what is a computer?
round trip question David Knott round trip question David Knott

The round trip question: what is a computer?

It is the secret that everybody knows: a story which has rightly become a legend. During the Second World War, Alan Turing and a team at Bletchley Park invented the computer in order to crack the Enigma code, shortening the war and saving millions of lives. Turing was persecuted for his sexuality and died tragically, to be recognised as a national hero decades later.

Except that, while Turing deserves all the acclaim we can give him, part of this story is wrong. Turing did not invent the computer to crack the Enigma code. The difference between the device used for Enigma, the Bombe, and the real first computer, Colossus, as well as the original thinking that Turing did before the war, help us understand what makes a computer a computer, and why they make such a difference to the world.

Read More
The round trip question: a tale of two computers
round trip question David Knott round trip question David Knott

The round trip question: a tale of two computers

Let’s start with a problem. You think some bills have just been paid out of your account. You want to check how much money you have left. You have a computer in your hand - your mobile phone - but that computer does not currently know your balance. There is at least one computer that does know your balance, but it does not belong to you, and it sits in a large building hundreds of miles away. How does the number that represents your balance get from your bank’s computer to the mobile phone in your hand?

This is one of a series of articles which explores how we use computers to run the world by considering the round trip question: what happens when we press a button on a mobile banking app which tells it to do something with our money?

Simply by virtue of being computers, the phone in your hand and the machine in your bank have a lot of similarities. For now, though, I’d like to explore their differences, as those differences are what makes the round trip question interesting.

Read More