We saw a massive sell-off of software stocks last week, partially in response to Anthropic’s claim that 100% of their code is now written by AI and the release of a couple of new products for lawyers and office workers.
I’ve been doing this for a few years now, so let me provide you with a bit of insight into how this actually works.
Currently, there is no product that, out of the box, will replace a software developer.
Coding assistants will write any code you ask them to, it’s true. But the challenge is in the ask. You can ask for something vague, like:
make me a calculator program
…and it will absolutely do it. Of course, it may not do it with the software stack you want, it may not have the features you want, it may not even have a UI that you can use. You can also go to the other extreme, and ask for something like:
make me a typescript function that, given a string will parse the string into a set of mathematical operations. Also, another function that will execute that set of operations returning a result. Make sure the set of operations are predefined, following a consistent model type. I'll add more operations in the future. Then create a static webpage that provides a standard calculator ui that also has a text field that allows the user to type in a mathematical function that will be evaluated by the functions. I'd also like a red border around that text field when the string does not parse and green when it does
Even with this additional context, you will find the AI builds you something not quite what you were wanting. It may not follow your brand guidelines. It may not display errors the way you’d like. It may not follow your team’s coding practices. It won’t use source control. It definitely won’t be using your preferred packaging and deployment pipeline.
If you don’t know what those things are, and you want to this to actually be software that customers use, or you can build on top of over time, you need a software developer, or you need to become one.
AI, of course can do all these things if you give it enough context.
Context is king.
So, what it’s actually like working with AI to develop software is an endless process of giving it the context it needs at the time it needs it. You put your coding practices in a file and load that into context before you code. You put your brand guidelines into a document and load that before you make UX. You tell it what “done” looks like: linting, best practices enforcement, tests, documentation, deployment scripts, etc.
And when you do this enough, you automate giving it these things at the right time, so you start working in stages: design, implementation, validation, documentation. And then you start providing it processes like “after each file edit, run the linter and fix any problems you find”, or “after each code change make sure the tests pass”.
And when you get these things done, you start going meta. You automate AI interactions like “hey, we just had a long conversation where you kept saying the implementation was working, and the tests pass, but when I tried it, it didn’t work. Evaluate our conversation, identify what you were doing wrong, and then add instructions to your context to avoid that problem again in the future”.
In other words, software developers with AI are now spending their times managing context for the AI. It’s an entirely new skill-set. Don’t lay off any of your process experts (software development, testing, domain modeling, product design or management) because I’m telling you, they have the context you need.