
Architecture Tests: How to Enforce Architectural Rules Directly in Code
Architectural rules that exist only in documentation will sooner or later be broken. It's not a question of if, but when.
Go to content|Go to the main menu|Go to search
I enjoy comparing things that may not seem related, but help the listener better understand a given issue or bring them closer to my perspective. Illustrative examples are more comprehensible for the general public and allow us to move away from complex technical details.
For example, did you know that an electron microscope can achieve magnification comparable to observing Christmas tree needles from the moon's surface?
Can we compare software development to football? Why not!
Whether we want it or not, money drives everything. Whether we're talking about football or software development at a professional level, we can find a common denominator – profit. For a football team, this might be a better position in the league table, for a software company, this would be reputation and interesting contracts. But both ultimately lead to money.
If you ask a football player what his job is, he'll probably say he "plays football". Although this is basically correct, reality is that he goes to training, studies tactics, does sports in his free time. He actually plays football (as we understand it) only once a week.
He doesn't specify whether he's in offense or defense. He simply "plays football". And a football team is not just about eleven players on the field, we also have substitutes, coaches, and many more people behind the scenes without whom the team couldn't function.
In software development, the situation is the same. Behind the term "developer" we can find a variety of roles. Someone is more focused on analytics, someone on writing code, and someone “just” manages it all.
In the end, the goal is to work as best as possible for the entire team. And deliver the best results. Although everyone has a specific role, they all care about the same thing – having a great team with great results.
The team itself won't attract spectators to the stadiums. You need some organization and planning in addition to the teams themselves for a league to function correctly and be attractive to viewers. Here, a comparison to a software company comes to mind. Individual teams "play football" and management – the "league" – takes care of everything they need – organizing matches, tournaments. And other activities happen in the background.
It needs quality teams, and everything must run smoothly for a league or company to function correctly
In the end, it doesn't matter much. Football players naturally kick for their team because they can really influence its results. Similarly, software developers direct their energy to their project and team collaboration. However, if you want to play at a higher level, you can't ignore the significance of the "league". It creates an environment in which teams can grow and push boundaries. The success of each player and team lead to the overall success of the league.
The team and the league thus share one goal – victory at all levels.

Architectural rules that exist only in documentation will sooner or later be broken. It's not a question of if, but when.

Software development is a dynamic field in which new tools and trends are constantly emerging. However, if we want to develop high-quality software, it is not enough to simply apply these tools and trends; we must truly understand how they work and what risks they may entail.
Thank you for your interest in subscribing to our newsletter! To complete your registration you need to confirm your subscription. We have just sent you a confirmation link to the email address you provided. Please click on this link to complete your registration. If you do not find the email, please check your spam or "Promotions" folder.
