AI Engineering Management

The Future of Development is in Engineering Management

We've been told of a coming apocalypse for software developers in the past - the advent of compilers meant that we didn't need programmers any more, 4GL, Visual Basic and a whole heap of no-code and low-code tools that seem to be on the scrap heap. In the meantime, C++ and C occupy the #2 and #3 spots in the TIOBE Index.

I've been reimagining the future of development in the face of AI. A lot of our day-to-day practices in software are very human-centric, and are going to change a lot, but most radically I predict in the job of writing software. Just as compilers meant that you didn't write 'proper software' you just used a tool like COBOL that abstracted it all away from you, agentic AI like opencode.ai and Claude is going to provide another layer of abstraction. My work today is in refining tickets, working on tests with the AI and the automation of the software feedback cycle, common engineering manager tasks. I don't write much code, but I still read some of it, but the job is to prevent the AI from making too many mistakes.

The AI is capable of writing good code, and it is capable of making all of the mistakes you've probably seen for yourself, but saying that AI isn't ready is denying reality. If the AI is trashing your project its because you've let it, you are still trying to use it as a tool. You have to lead it, and that means that you have to rethink what it is you need to have to get results. As an industry we've done this lots of times for human teams, inventing sprints, tickets, kanban boards.

How software requirements are defined has changed radically over my 30 years in software. Equally, how we manage teams has transformed from a group of individuals working in isolation to sprint teams. We've shifted-left, adopted DevOps, split platform engineering from product engineering and a myriad of other practices that are commonly accepted now.

The next stage is redefining all of these practices to improve how AI is writing software instead of the human. Tickets will need to be narrower in scope and more refined, but an AI will help to do that as well. Code review processes will need to be more automated, with AI code review and SAST as for every ticket. Processes we have that reduce the burden on human developers (linting, I'm looking at you) will become less important, and processes that reduce the burden on AI will be invented and adopted (I've had a few ideas).

My personal productivity has increase enormously since I made this move. I spent six months "using AI" to write code - a cycle of pain and disappointment copying-and-pasting between RustRover and ChatGPT getting increasing frustrated and jaded, but really because I was expecting AI to revolutionise coding without wanting to make the changes in myself. I wanted to have complete control over the code and I thought I was giving the AI everything it needed to magic up perfection. Actually, I was giving the AI everything a human developer would need for perfection.

Making the switch to thinking like an engineering manager has revolutionised that process. I'm rebuilding the SDLC, redefining what a sprint team looks like, going back to first principles and reimagining ways to solve problems. This will be big business soon, there will be a billion dollar company in whoever writes the best tools in the space where I (and I do mean Claude) am hacking together patches in Python.

Developers, I urge you to rethink your roles. If we don't adapt to this new mindset we will not survive in an AI-driven development world.