From two problems to four: the not-so-hidden complexity GenAI-based development
genAI development generative AI developer experience microservices platformsContact me for information about consulting and training at your company.
The MEAP for Microservices Patterns 2nd edition is now available
GenAI-based development tools help address some long-standing pain points in software development. At the same time, they introduce new sources of complexity that were not previously part of the job. The net effect is not fewer problems, but a different - and often larger - set of problems to manage.
Let’s look at both the existing problems and the new ones this shift introduces, and what this means for individual developers and organizations.
To start, it helps to revisit the problems developers were already solving before GenAI-based tools entered the picture.

The original two problems: business and solution domains
Let’s imagine that you need to implement a feature. Not that long ago, you would simply use your favorite IDE or text editor to change the code. While doing so, you need to understand both the problem domain (the business requirements) and the solution domain (the existing code, libraries, and frameworks).
In other words, you had two problems to solve: the business domain (problem #1) and the solution domain (problem #2).
Enter GenAI: adding a third problem
Today, however, you might choose - or be forced - to use a GenAI-based development tool, such as Claude Code. That introduces a third problem.
You now need to understand how to use the GenAI tool effectively (problem #3): crafting prompts, steering behavior, and critically evaluating the output.
Why the old problems don’t disappear
And despite claims to the contrary, problems #1 and #2 have not gone away. You still need to understand the business domain, and you still need enough understanding of the solution domain to review, debug, and fix generated code.
So instead of two problems, you now have three.
Tooling the tool: the fourth problem
But there’s more.
As the GenAI-based tool inevitably makes the same mistakes again and again, frustration sets in. To cope, you start maintaining a collection of prompts or writing plugins - for example, Claude Code plugins that define commands, skills, and constraints.
At that point, a fourth problem appears. You now need to design, develop, and maintain the mechanisms that guide the GenAI tool itself (problem #4).
What started as “just using an assistant” quietly turns into building and maintaining a system that “teaches” the assistant.
What this means for individuals
At an individual level, this can cause developers to feel more busy and productive than they actually are. They may spend a significant amount of time interacting with the GenAI tool - crafting prompts, retrying runs, and managing prompt libraries or plugins - rather than developing value.
What this means for organizations
For organizations, this shift introduces additional complexity into the development process. Problems #3 and #4 do not disappear at scale - they accumulate.
As a result, it often makes sense to treat GenAI-based development tooling as a platform concern - see Microservices platforms. A dedicated GenAI development tools platform group can build and maintain shared capabilities that reduce the cognitive load of problems #3 and #4 for stream-aligned teams, allowing those teams to stay focused on problems #1 and #2.
Need help with modernizing your architecture?
I help organizations modernize safely and avoid creating a modern legacy system — a new architecture with the same old problems. If you’re planning or struggling with a modernization effort, I can help.
Learn more about my modernization and architecture advisory work →
Premium content now available for paid subscribers at
