This post is the result of attending An Evening With Uncle Bob Martin at IT Tralee, County Kerry, Ireland
It will be seen that the possibilities as to what one may do are immense. One of our difficulties will be the maintainence of an appropriate discipline, so that we do not lose track of what we are doing. We shall need a number of efficient librarian types to keep us in order… We shall need a great number of mathematicians of ability.
– Alan Turing[1]
Back in the 1940s there were few programmers. Alan Turing and Ada Lovelace might have starred each other’s projects on GitHub, had it existed. There might be 100,000,000 programmers now.
Mathematically, the curve that gets is from 1 in 1940 to 100,000,000 in 2020 is the one where the number of programmers doubles every five years. This means that half of the programmers in the world have less than five years experience.
If you’ve been programming for longer, consider the quality of code you wrote in those first five years.
Code used to be contained in huge, prohibitively expensive specialist machinery before the 70s, immense cathedrals of computation which were many magnitudes less capable then the average mobile phone.
Retro-engineering the trillions of transistors in your phone with vacuum tubes would take enough space to park 2,500 Nimitz class aircraft carriers, a terrawatt of power and a budget of around 50 trillion dollars. Now, you can sign a contract in a High Street store and walk out with the equivalent computational power in your pocket.
Code is soaked into the fabric of the manufactured world. Not in the obvious places like laptops and phones or the spreadsheets and bank transfers but physically around us in lightbulbs and fire alarms. In really important things like brakes and sensors.
Despite the phenomenal evolution of hardware, code hasn’t evolved much at all. It’s just become microscopically pervasive and disarmingly out of sight.
When (not if) this software errors in ways which have real-world legal consequences, it is the programmers rather than the board who face those consequences. From the court’s perspecive, the cause of the accident is the committed code not the pressure to deliver to deadline.
Like the medical profession before us, professional programmers have the opportunity to self-regulate before governments try to help.
Is our society predominantly run by charming, glib, slightly sociopathic people who look good on television or predominantly run by people who live in front of computers and control the world through numbers ?
– Vinay Gupta[2]
A piece of the original trans-Atlantic telegraph cable seems like an appropriate keepsake for someone with the experience and knowledge to provide this perspective on why code quality matters.
1 Lecture to the London Mathematical Society, 1947
2 Unrecognisable Capitalism, 25m video, 2016