How long has it been since we started working with AI? I don't think it's been that long. But we can barely imagine how to work without it anymore. In this post I'll be exploring how I feel about it.
What I feel my profession is becoming?
Going from writing code to writing prompts and managing agents takes a lot of joy I had from what I do day to day. Where before I would think of how to implement a certain algorithm, now I just tell the agent to implement it. I am spending much more time on the architecture and less time on the implementation. I think I like this, I don't just write code because writing code is a fun thing to do, I like writing code because it solves a problem.
What I do not like is that I barely write code anymore. Telling the agent to approach a problem in a certain way is much less fun than doing it yourself and figuring it out along the way.
Expectations rise, the craft is changing
Now that most things that you can imagine are at the tips of your fingers, I am afraid that elegant solutions are seen as a waste of time, and solutions that barely work are seen as the way to go. I am afraid that code doesn't matter anymore.
Due to having near instant results, we expect those results too. While I think we have now more time to zoom out, I feel that we focus too much on delivering instant results.
Everyone is participating
I think it's awesome that everyone can contribute to the software that we are writing; however, I do think that is one of the biggest problems of AI: having non-developers helping write features.
The first problem is ownership; the biggest part of software is maintenance, writing code is easy. Writing maintainable code is a bit more challenging. But maintaining code written 6 months or a year ago is hard.
Non-devs writing code undoubtedly will come with the following workflow: non-dev makes feature ⇒ non-dev drops feature into the lap of dev ⇒ feature is dev's problem now
Which could work, I don't know. But the burden of maintenance will fall largely on the developers. Which comes to the second problem; you can't do traditional code reviews.
If the burden of maintenance comes to us, the developers, at least give us good code to begin with. But you can't ask a non-technical person to add an index to that table or to implement an algorithm in a certain way. If you ask these things in a review, then the person asks the AI to implement it like you asked, the AI will do it, and the review comes back to you. The non-dev just became an intermediary between you and their AI agent.
So the simplest solution, once the feature is working, is to give the code to a developer with the message "make it maintainable".
Whether I like it or not, it seems that this will be the way things will go when non-devs are involved.
So now what?
I am still figuring out how I feel about all this AI nonsense, every day I learn something. But I think one thing is clear for me: software development is changing. If you, as a developer, do not adapt to the new way of working, you don't start to think about abstractions, and just keep thinking about the implementation: you will be left behind.
But in the end, I think AI highlights what good developers have done and will be doing all the time: we design systems, we think about edge cases, we are not afraid to ask questions. And with AI we have more time to do just that.
We will be writing less code, but we will do way more engineering. And I think I like that.