Systems thinking

Systems thinking, the skill everyone needs in the AI era

Now days, things are going extremely fast due to all developments in LLM models and AI harnesses, end of 2025 a bunch of models and tools were release and the capabilities of every tool when up, nevertheless half a year later, I see organizations or individuals heavily struguling to make effcient work with them, but something is certain, the instructry is changeing, new patterns are emerging, and I don’t know how it will be down the line, but I know I have two options, I accept and embrace it, I find my own way o of working as I did for 15 years with traditional software development or and avoid it and pretend doesnt’ exist, hopping it’s a bubble (which it is and some degree) and everything will be as it used to be. I choose to change, to learn and adapt.

Those new patterns that emerge, can provide the hability to move faster, but faster doesn’t mean better, because we are constantly in a chaotic and complex systems. But it’s how Systems thinking could help everybody to manage and understand their new solutions in an efficient way. Systems thinking is a way to understand and deal with complexity by looking at a problem form a holistic point considering that there are not isolated parts and that everything is interconnect, every action have an effect back, it could be with a delay and therefore it will not perceive it as a side effect, but down the line if you analyse it, you figure out how it works as ripple effect.

Software development it’s an area that is highly exposed to systems thinking, software at scale is an never ending activity of dealing of systems, adding new features, fixing bugs, scaling, mantaining, etc, and softwanre engineerings are whiting the ones I consider system thinkings by default (some of them), because the profeccion force you to automatically having to look at the work from systematic view.

AI and Complexity

The problem with going faster and producing more lines of code in a short period of time is that those lines have to be mantain, because more lines is equals to more point of failure. open-source was for me a way to deal with this, I would use an external library when there is an special problem that I need to solve, but I don’t want to do that myself in the project, I prefer put my time and effort in other ares that are more important, but something really common with AI is that it reinvent the wheel, it tends to write more software for things that either existing lilbraries in the project already solve, or just are too common to use a library for.

Introduction

What is systems thinking

How does applies to software

Why it deals well with complex systems

How does AI change the game

What remains the same?

How Systems thinking help us with AI?

Conclusions

Systems Thinking for Managing AI Complexity

Is systems thinking the way forward to deal with the high complexity of new AI systems? On one side, we have new things being created rapidly, then fast changes to existing systems, adding complexity and making them hard to maintain. Systems thinking could help us to go over those things with better ideas of how to deal with the problem


Importance of Problem Solving in Software Engineering

There is the fact that you will never get proper requirements, and that’s the reason why AI is not going to magically erase all the software engineers in the world, because the systematic thinking, the system thinking, the way you look at the problem that makes you special, not the fact that you can type code or type fast or whatever. It’s the thinking, the finding ways to solve the problem maybe without even having to code, and you will never get proper requirements. So what can you do to get done everything that you have to do?


Using AI for Problem Solving and Planning

When I’m not sure how and when to implement something, what I like is to use the AI for thinking. The same happen if I don’t have an AI, I will think about the problem, why I’m trying to solve the problem in the first place, giving some ideas and brainstorming, and come up with two or three options on how something can be done. I don’t have a clear understanding how it’s going to be done, how it’s going to look like. You have brief, general ideas of possible solutions. With AI, I can give more context to these ideas, at the same time, I can do it on my own. This is how I’m using it nowadays. You iterate over an idea here and there, ask the AI to ask me questions, iterate over the problem until I say, yeah, that makes sense. This is how we are going to implement it. Then in five minutes, probably less, there is a document that AI can implement. I also find that the results are much better, and they are more stable when you have a quick plan in front, but they are not specifications, it’s just a plan. The context is there, you know how the project works, you know how you want the feature to be, you just don’t know how to reach there, and it’s where LLMs are going to help you a lot.


Engineers and the Importance of Decision-Making

There is a pattern that I see constantly in engineers, which is some sort of lack of commitment to take decisions on things. And that’s something that characterize outstanding engineers against those who doesn’t progress very well. An outstanding engineer is not afraid to take responsibility in formulas, proposing ways to calculate certain values. They don’t realize that the product is always going to give the right answers, the right spreadsheet with the numbers as they need to be. They are more proactive and try to go over the topic, investigate deeply, collaborate with product. And I don’t know what is the reason, but those engineers who are afraid of taking the decision, the responsibility of something, it could be that they are afraid because they have bad experiences in the past, but that should not be the case. We as an engineer are here to solve problems, not to code. So to solve the problem, you need to have full ownership of that decision on the topic. You need to be accountable and responsible.


Enhancing Spect Driven Development with AI Tools

For Spect driven development, maybe the best thing to take it is like an explanatory tool. When someone who is not really related to the project tries to give the first interaction to a new functionality, the person doesn’t speak the same Google Plus language as the project speaks, the output of the spect driven development could be useful, and if you give it to another LLM to summarise and create a simple plan, then you can give it to an engineer and the engineer can already think about how to implement it, because at the end, even today, in an agile environment, you need to think about what you’re going to implement. You don’t go into a big design in front, but you need to think. Software development is about thinking. It’s about putting your brain to work before writing a line of code, a little bit, just a little bit, and also thinking a lot while you are progressing in the project. And there is a lot of misconceptions here. AI, it’s not a tool that is going to stop you to think. It’s actually the other way around. Now you have more time to think, because the complex, not the complex, but the part that took more of the time, which was coding, now it’s being solved ten times faster, but we have more time to think. We have more time to iterate over ideas and validate they are correct or validate they are incorrect. We can apply the scientific method more effectively into everything that we build.


Effective Decision-Making in Software Engineering

One problem I found in software engineering is the constant running in loops in order to solve a problem but not having any progress at all. They keep running into the same problem, discussing and discussing for months and not taking a final decision, not going into owning the topic, creating a decision page and say this is the way we’re going to do it. They just talk and words evaporate over time. One way that I find really interesting is write that down, ask for comments, take the decision right away. Short the time to take a final decision and if someone wants to challenge it in the future they need to challenge in the page. They need to be a formal challenge not about words.


Adapting to Changes in AI and Engineering

In this new world of AI and the sub-engineers, we need to start adapting to where it’s coming. At the end, we have two options: we could negate what we are seeing, or we could embrace it and accept it. The point is, things are going to change. I don’t know when, I don’t know how, I don’t know what is going to happen to all sub-engineers and the high salaries they have, but definitely something is going to change, and better you start adapting to the new ways of working, otherwise you will be left behind.


Business Need for Agentic Systems

For building agentic systems, something that is important to determine is the validity of the market where it’s going against the solution that is going to be built. We need to understand, first of all, really clearly the requirements of the business, what business is in, and how AI can help on that come up, going to be automatically. But the business is the driver; it’s at the end, like software, you don’t introduce software where software is not needed, and it’s the same for AI or agentic systems.

you


Human Leads AI Coding Workflow

When building with AI coding agents, one of the things you need to look for and take care of is that you, as a human, as a programmer, keep the wheel. You drive; you are the owner. So try to build your workflow and ecosystem around you being the main character in the workflow, and try to set it up in a way that the AI assists you. That doesn’t mean you need to code everything or that you need to type everything. The AI can do everything, but the conscious decision and the overall architecture and design come from you, not from the tool.