
Software architecture and its importance in every coding project ever.
Posted on May 15, 2025
by Yµn ^…^ ƒ(x) aka. Yunus Emre Vurgun
Last updated: May 15, 2025
Last updated: May 15, 2025
In this short blog post, I will be talking about software architecture, specifically in relation with my own experiences and the troubles I face, or I should say the troubles I always face when building an application by myself. Because of the current state of AI, I'm happy to say that we can get agents to do a lot of the repetitive and boring tasks that we teach them, but I have not seen any AI system that can understand and perfectly manage a structure of codebase without constant intervention from an expert human.
What I have done so far is that I've done my best to teach AI agents how to understand a codebase structure, specifically modules and classes, but whatever I do, I always know that one error that can create chaos that cannot be resolved by a machine or a human, is out there. Therefore, I have decided to gain more expertise in the architecture of the systems I'm making. Instead of just trying to make things work, I now focus on why and how I implemented something and whether my architecture is robust or is it just a demo aka. script kiddie approach.
And I want to tell that software architecture is most probably the most important thing of our time in software development. Whenever I look into a codebase that has been managed by hundreds of people, I always see that the codebase structure, the architecture of the whole application is robust and handled well. And this actually allows the whole team to collaborate efficiently because they all first of all understand the architecture, the project they're working on. Whether it is a solo project or a huge team, the architecture always comes to haunt you if it hasn't been properly set up.
And I am pretty sure that in the upcoming years or maybe decades, the code itself will not be the important part. The syntax is already almost non-existent thanks to gen-AI, but the architecture will always come to haunt you if you didn't put the effort into it. No machine can help you turn your idea of a software into an architecture that fits the purpose because human thoughts and human ideas are not structured well unless you spend time on them.
Gain expertise, read, write, focus, try and fail for years ideally. If you do not do this, there is no chance, even with a super intelligent AI, to help you as it is ambiguous what you want. And therefore, I would urge everyone in this field to focus on architecture as if your life depends on it. The architecture of software is almost everything we have to focus on in terms of deciding how to manage or start a codebase from scratch for a project. Any failure in the architecture will result in a chaotic surprise in an unknown time. For example, months after the software finishes and you try to make an update, the whole codebase crashes. No AI or human can help you then, because the context needed to resolve all those chaos is infinite. And no human or machine has that kind of a context window and probably will never have.
When I say software architecture, I don't just mean the folders and files and modules of the classes, but I also mean the other details that are encapsulated within these fundamental structures that when combined together, they're all in a relationship to each other and protocols and security, you will realize that you need a lot of knowledge on different areas of the process to be able to manage the code base properly in a big project and to manage AI agents as well.
Imagine you're building WordPress from scratch or a Drupal from scratch. You may think that oh how hard can it be but thinking all those modules and systems creating them from scratch for example let's say you're a competitor to these products mentions and you should know that your structural mistakes are going to haunt you forever if you make even one single architectural mistake (Assuming this is a critical part of the fundamentals.) and you forgot about it that will haunt you forever and the best thing most probably is to have a robust structure especially the main structure from the beginning and then add on to it brick by brick in the upcoming years, let's say to create the whole ecosystem you desire.
You may abandon the project later on or maybe give it to some other developers and if you want it to succeed you first got to have that perfect structure from the beginning or it's not going to work at all unless someone fixes the structure if it is not too late so nothing is impossible if you have the perfect structure and roadmap but everything is impossible if you have the terrible roadmap and the terrible starting architecture.
You might say that there were many projects that started awfully bad and that the whole code base was restructured and everything was rewritten and then it became modular and it became the perfect robust architecture. And for that, of course, I can assure you that everything is possible again, but is it necessary? Think about the time and effort that's going to be spent just to fix the broken beginning. Most of my projects started terribly and some of them are still terrible and the ones that I have fixed took a lot of time. At first I didn't understand the importance of the architecture. I was thinking, well, how important can it be? It's not a building. People's lives don't depend on it. Well actually it is a building and people's lives depend on it if you think about it. You can destroy everything with a software error.
I'm not going to get into the disasters happened back in time when terrible software were written, but you can look it up yourself and understand how important the structure and security is, but of course security relies on the architecture first of all, so the architecture has to be robust no matter what.