- AI
- ambiguity
- APIs
- architecture
- augmented reality
- books
- bureaucracy
- career
- change
- Christmas
- cloud
- collaboration
- communication
- complexity
- computer history
- corporate life
- data
- decisions
- delivery
- devops
- end user tools
- ethics
- failure
- fear
- fundamentals
- gaming
- government
- halloween
- history
- humans
- hype
- identity
- infrastructure
- innovation
- language
- leadership
- learning
- legacy
- management
- measurement
- mental health
- money
- networking
- New Year
- operations
- philosophy
- physics
- platforms
- prediction
- process
- procurement
- programming
- quantum
- reliability
- resilience
- risk
- robotics
- science
- science fiction
- security
- shadow IT
- space
- standards
- strategy
- talent
- teams
- technical debt
- technology advocacy
- testing
- thinking
- transformation
- TV
- virtues
- vision
- writing
Test environments are from Mars; production environments are from Venus
If a crewed mission makes it to Mars, it will have lots of problems to overcome. The atmosphere is thin, and mostly made of carbon dioxide. The average temperature is -60 degrees Celsius. And there is no magnetic field to shield inhabitants from cosmic radiation. It’s not surprising that, so far, the planet is occupied by robots rather than people.
What about our other planetary neighbour, Venus? It’s slightly easier to get to, has more atmosphere, and is quite a bit warmer. Unfortunately, it’s warmer by about 700 degrees, with an average temperature of 640 degrees Celsius. And that atmosphere is a bit too thick, imposing a crushing pressure 90 times that of Earth. It’s mostly carbon dioxide too, but punctuated by clouds of sulphuric acid gas. And it doesn’t have a magnetic field – or a robot population. The only probes which have entered the Venusian atmosphere have been swiftly crushed and cooked.
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.