We were recently joined by Kevlin Henney – journalist, coach, speaker and programmer – for a lunchtime session on Twitter Spaces. In a frank conversation, packed with interesting anecdotes and thought-provoking suggestions, we discussed topics such as:
- Why most developers code for the past,
- Our moral responsibility to think about future uses of our code, as well as
- How technology companies can weather tough economic times.
Read the highlights article below, or skip to the event recording to listen to it in full and read the transcript.
Highlights from our #TechTalk with Kevlin Henney
Most developers are coding for the past – and here’s why
While technology is often portrayed as something futuristic, the reality is that most developers are actually coding for the past, for reasons that stem from the past. (The main exception being those working in startups, where the whole environment is greenfield, meaning you’re working closer to the present, though still not necessarily in the future).
What do we mean by coding for the past?
When someone touches a piece of code, it will have been written in the past. It may use legacy languages and frameworks. It’s based on past facts and assumptions, which may no longer be true.
Moreover, as systems thinker John Seddon pointed out, much of what developers are doing comes from requirements that themselves are the result of past failures. For example, something in an organisation may not be working as it should, so software is then required to fix it. Or perhaps some existing software isn’t doing what it should, and needs addressing.
This type of failure-driven work, Kevlin suggested, takes up the majority of developers’ time, as opposed to value-driven work, which is based on creating something genuinely novel and distinct.
All developers have a moral responsibility to code for the future
An interesting topic we explored was the need for developers to think about future uses of their code as they’re writing it. While you may be writing code for a very specific situation, could the code subsequently be used in another context?
Kevlin shared two case studies of this. In one, some supposedly ‘throwaway’ example code he’d put together during a training workshop, made its way into a customer’s production system. As a result, he now strongly advocates writing proper tests for any code. Because ‘throwaway’ code rarely gets thrown away.
His other example highlighted how a team he was working on made a decision to only implement light security for some critical national infrastructure control software. This was based on the assumption that no one would run something this important on a public network. It subsequently emerged that people did want to do this, meaning the team had to move very fast to put in place the necessary safeguards, to meet these new needs.
This requirement to think about how your code could be used in the future is particularly important if you plan to open-source it.
We all need to take time to clean up our code bases
Coding for the future brought up another interesting point, which was how so much speculative code gets added to codebases. This happens when stakeholders imagine different possible future scenarios, and add provision for these into their application.
Over time, the code gets littered with this speculation. Where this isn’t used, it becomes a burden on the team responsible for the software, and potentially has performance, cost and environmental impacts.
With so much pressure to keep moving forward with new features, it can be challenging to make time to review the codebase and tidy up the speculative code that isn’t actually needed. But carving out time to do this will generally result in a leaner codebase that’s easier and lower-cost to maintain and develop, and has a lower environmental footprint.
Why technology companies are well-placed to weather tough economic times during 2023
The final area we explored was what the coming year holds for those working in technology. Kevlin was optimistic. He noted how the need for connectivity pervades virtually every industry and, if anything, becomes stronger in tough economic times, as organisations seek to make efficiencies or better understand their operations through data.
All of this will drive demand for more digital solutions, and that’s great news for those in the business of designing, building and supporting them.
Listen to the full event recording
Read the transcript (Word document, 53kb)
Sign up to our upcoming events
Throughout the year, Softwire will be holding events at its London and Manchester offices. Check out the Events calendar to see what’s coming and to also view the highlight summaries from other past events.