AI ate Software

Published by Jorge on

AI ate software

Software has changed forever. The skill that took years of learning and practicing is now commoditized. The cost to write software as gone almost to zero and so the value of your ability to code.

There’s no turning back and 99% of software will be prompted. Just like we mostly don’t write assembly. Prompting is the new layer of abstraction. It will still improve but to be honest I don’t think it needs to improve anymore for this to be true.

From one side it’s great. We are making software more accesible and cheaper which is good. But those that enjoyed the craft are sad, since the craft as it was it’s basically gone. I’m sad too. And please, don’t make the argument of hand crafted code like if it were art since code is only read for developing and validating, not for the sake of it.

Many people are still claiming that it just does basic stuff (boilerplates, simple projects, etc). That it doesn’t understand complex projects and that software engineers are required for them. To me, it’s foolish to think this won’t be improving even more. It’s the same discourse we heard last year but shifted with new expectations. Look at the slope of improvements!

The level of deduction it has right now is enough to cover most software engineering tasks and designs. The only cap it has right now is the context size. Context size is something that will indeed continue improving either with models capable of ingesting more context or with techniques such as memory, compaction, or whatever we come up with.

I’m quite confident that as AI gains bigger context and improves it will be capable of handling issues across dozen of microservices. If we automate issue tracking with good observability and give the AI domain and operational context it will be able to solve them. Since context size will eventually be solved and will be way bigger any human can handle in their mind, there won’t be any software engineering task they won’t be able to solve.

What will be left for software engineering? No one knows but I can make some bets.

  • Vision and direction. AI lacks of vision, for now only humans are capable of imagining what we want next with a clear objective. To have a clear vision and understanding what to do next will be key.
  • Domain judgment. Even if the AI can solve a problem, usually there are multiple possible solutions that depends on a vision or specific criteria. The solution will have a tradeoffs that an expert should take into account before choosing, probably based on the vision and mission of the software. Note that I don’t think software engineering judgement will be very important in the future, just domain.
  • Dumping context. There will be humans that need to translate and articulate clearly and maintain the business context, operational context and even economic or geographical context. That data will be ingested for the AI so it can better solve whatever problem the business has. This is what traditionally have been doing domain experts, requirements analysts and similar figures for software engineers to translate that context into software.
  • Analysts. Even if AI can give insights automatically and even combine multiple insights into one, at the end there should be a human in the loop to validate and extract the insights and improve the business judgement.
  • Taste. The AI lacks of taste or vision. Implementing a particular style either visually or from the copy point of view will require a person with taste that makes the software stand out from competitors.

I think the software engineer of the future will be a mix of the roles above commanding a horde of agents.

Let’s check out in a couple of years.


If you want to read more like this, subscribe to my newsletter or follow me on Twitter

    Categories: AITechnology