Software development is not changing. The Actors are.
Yesterday I’ve attended a meetup by Cloud Native Latvia and interesting discussions emerged.
You see, nobody knows how exactly to do things right. Everyone’s experimenting. Everyone’s striving for attention. And therefore we live in a noisy bubble, where 80% of information is either not correct or outdated by the moment these reaches you.
Is there anything worth trying, following and letting us to succeed with agentic coding, software development? For sure! In order to not lose our minds and keep going we need to make a step back. See bigger picture, use more abstractions. I will show you how it can be done.
Learn the process, finally
Software development is not changing. The actors are. Imagine you have been assembling dog houses with a screwdriver. Now I give you a drill. Does it change the process? No. Will it speed up the process? Depends.
If the other processes were in place: you got wood on time, you got it prepared properly. What to do with a drill? Use it in the assembly process instead of a screwdriver. It is faster and causes less fatigue.
Is it a right thing to use a drill for painting, cutting, bringing the wood to a place? It may help at a certain degree, if your goal is to have fun, but it won’t be effective.
Instead of using drill to paint - use the power of AI and time you have now to learn the software development process. It’s simple and it’s called SDLC - Software Development Life Cycle.
How to structure your agents
Let’s see how we’ve been delivering software before AI. We’ve been assembling teams. Multiple roles, dependencies and rules, how team is interacting. That’s exactly what SDLC describes. Actors? People. Hopefully qualified and experienced enough. Sometimes clearly not enough, but brave enough to keep delivering and learning during the process. Business? Taking the risks of failure and being okay to pay.
What’s the problem of agents? Not enough people understand the structure and the process. Those who are - prefer to sell a solution, rather than explaining and educating the basics. We end up of having collections of 20, 40, 100 agents. Did you have 100 roles in your team? That’s not even a team, anymore.
The typical team has: product owner, architect, developer, tester. The agentic team can follow exactly same structure. Can be extended with technical writer, release manager and even customer manager. Automated and cheap.
It is worth to mention a person can manage ~7 people effectively. Team of 15? The lead/manager/boss won’t be able to do his job properly with all the members. Go for 10+ agents will get you nowhere, if you try to run these simultaneously and control each and every of it.
Once we acknowledge how things were done for decades and our own capabilities and limitations - we can now think about the systems, that can deliver within the existing limitations.
SDLC: preparations
Yesterday I’ve heard a great saying: “Compass was invented before the clock. Because direction matters more than the time it takes to get there.”
SDLC starts with setting a goals, brainstorming, analysis and plans. You can offload a lot of it to the agents. Doing investigation, research, finding opportunities. But without a deep knowledge you won’t know what is possible. Doubts may be present anyways, but in general this is what we start to call “a taste”. Gut feelings, experience, knowledge. Do you job, be a human and decide what are you going to do and solve. Having research & analysis agents - are helpful. Make sure research ends up with written, well structured information. This way it can be passed further.
Design & Architecture - sits between the idea and the implementation. It is often skipped. Those, who have paid the full cost of skipping this part prefer to have it in their process. Others - tend to ignore this part, believing everything can be fixed fast. No, it is not. Lack of architecture often comes from lack of goals and analysis. The problem is missing. The shape of the solution - not existing.
Many pretends this is flexibility. It’s not. It’s dilettantism.
SDLC: Execution
Everyone is obsessed with AI writing code. The only reason it is such a huge change happens because people, who were deep in coding now have time to think about architecture and solutions. And that’s the only win for a market.
Coding itself is precise. There are functional and non-functional requirements. Both can be tested. What you need to do is to use this property of code and test it. Agents can write tests. Make sure these makes sense and not sitting there to draw a beautiful green line and passing report. That’s your job as a supervisor. It’s always been.
How to stay on top of the changes? There is a solution for that as well! Documentation! You can have an agent that does technical writing: docs, manuals, summaries, changelog. TLDR problem? Ask to draw a schema! Visualization is the fastest possible way of delivering information to the human brain. We used to use text for describing things. Symbols can be more complex, carry more details and being specific at the same time!
SDLC: Deploy and maintain
If you haven’t adopted CI/CD - it is the right time. A bunch of scripts doing the same boring work time after time. Yes, you need the environment. Yes, you need your code, configs and apps to be structured specific way. It takes time. And you have agents that can help you.
Maintenance it depends on what you do. One of the typical tasks is debugging and confirming the defects. Agents can do that pretty easily. Assembling payloads, recreating conditions - keep setting the direction and keep an eye on the intermediate results.
Speaking to customers? That’s a grey zone. You may use the time to have a conversation and deepen you understanding of the problem. Or land a helpful hand to your existing customer. It may deepen the bond and trust, comparing to the same conversation being handled by a robot.
Summary
There is no much things we need to reinvent. Shift, polish and probably discover more effective approach. But the direction must stay the same. What is current shift about? It’s about moving most of developers where they don’t want to be. To become coordinators of execution. Once you realize that’s the real shift - it might get easy for you to decide what’s next. The old roles of software developers won’t stay the same. The new roles demands more experience and knowledge. The level of developers I’ve been working with most of my career is not enough.
Software Development isn’t becoming easier. It is becoming more leveraged. The ability to write code is not a bottleneck. Understanding problems, designing solutions coordinating execution and validating results increasingly are. AI can accelerate execution, but it can’t take responsibilities for the outcomes. The actors are changing. The responsibility is not.