All the things that matter still matter, but they matter more

Photo credit: Hannes Kottner via Unsplash

Hype tends to be, well, hyperbolic.

If you read headlines and social media posts about the use of AI in software development, then you would be forgiven for thinking that is the end of everything. No more developers! No more testers! No more SaaS! English is the only coding language! The death of technologies, practices and industries has been declared many times over the last few years - and yet they seem to keep on going.

If we step away from the hype and take a few deep breaths, I believe that we can see that, while AI will have a disruptive impact on software development, it will be one of amplification rather than dislocation.

To see this, let’s imagine an optimistic vision of the future, a few years from now. We drop in on a software development team and find that it comprises a group of people with engineering, design and business domain skills. It also contains a set of AI tools which are set up to do a lot of the work currently done manually (we might call these AI agents, and we might even have been persuaded to call them AI team members, but they remain tools, however they are labeled). The time from concept to production has been dramatically reduced, as team members use these tools to generate prototypes, refine code through multiple cycles and build and run tests with more coverage than they could manage before. Alongside the tools that assist the development pipeline, there are a set of operational tools, constantly monitoring the state of the code, the level of patching and production performance: these tools suggest changes when they detect problems, and are authorised to make some of these changes on their own. The team and tools are guided by a set of material, accumulated over time, which provides context: existing code, explanation of the business domain, data structures, standards and so on. Updating this context ripples through to the code.

Now let’s imagine a pessimistic view of the same future. We drop in on a software development team and find that it is remarkably small and consists only of technical specialists. They are all that remains of the team that delivered the original system, and are begrudgingly funded through a ‘maintenance budget’. They communicate with their business sponsors through emails, phone calls and tickets, and the tone of these expresses frustration and contempt in both directions. The team either spends its time trying to make sense of millions of lines of AI generated code or, more often, uses more AI to generate more code. The code base is big and keeps getting bigger, but each set of changes just about keeps the systems working. Production monitoring was never included in the original project budget, so the team relies on a few basic monitoring tools to tell when things have gone wrong - or on complaints from users. They dread the day when one of their alerts turns out to be a ransomware demand from a successful attacker. The team has a set of contextual material which guides their AI tools, but they have never had the time to update it or curate it properly, so it is out of date, incomplete and contradictory. The quality of the work done by their AI tools suffers accordingly.

I believe that which of these scenarios becomes reality is determined by our practices today. If we follow the practices which we know we should have been following for some years - multi-disciplinary teams, long term ownership of services, a commitment to continuous improvement, business domain knowledge embedded in the team, treatment of the toolchain as part of the solution - then AI has a chance of helping us go faster and do better. If we follow the practices which too many organisations still use - siloed teams with multiple hand-offs, timebound projects which stop, systems treated as capital assets to be depreciated, a divide between ‘business’ people and ‘technical’ people, treatment of tools as an optional extra - then AI will help us build worse solutions faster.

Despite the reports of demise and disruption, the things that matter today will also matter tomorrow. Indeed, they will matter more, because AI will amplify the consequences of current practices. This is not new: since the invention of computing we have used its power reflexively, to amplify our ability to deliver new computing solutions. We will do the same again.

Previous
Previous

Do your approvals processes make it easier to do nothing than to do something?

Next
Next

How I stopped fearing the phrase, ‘I’m not technical.’