What is Architectural Kata and why should every dev try it?
Architects rarely have the opportunity to design truly large and complex architecture from scratch. It's a bit like being a pilot who spends most of their time on a simulator. So how can you gain real experience and practice making decisions that will determine the fate of a project? The answer is Architectural Kata.
What exactly is kata in architecture?
The word “kata” comes straight from Japanese martial arts. It means a series of movements and techniques that a warrior repeats ad nauseam until they become second nature. In IT, Architectural Kata is exactly the same – a formalized practice that allows architects and entire teams to practice design in a safe, controlled environment. It is an opportunity to experiment, make mistakes, and learn from them without the risk of something going wrong in a real project. It is a gym for the architect's mind.
Six perspectives that change everything
Good architecture is more than just pretty diagrams. It is a set of difficult, often irreversible decisions made at the very beginning. The winners of the Architectural Kata competitions, including Piotr Filipowicz, whom I had the opportunity to host on my podcast, have developed a method based on six key perspectives. It is a comprehensive approach that allows you to look at the problem from every angle.
The first perspective is functional requirements. This is obvious but fundamental – what is the system supposed to do? To understand them well, it is worth using techniques such as Event Storming, even in a simplified form, to discover and confirm with the client what the project is really about.
Next, we have non-functional requirements, or so-called architectural characteristics. We are talking about scalability, security, performance, and reliability. These often determine whether a project will be successful in the long term. You can have great features, but if the system crashes under load, no one will be happy with it.
Every project also has its limitations and risks. Budget, time, and available technology – all of these must be taken into account. Early identification of these factors and potential risks allows you to make informed decisions and avoid problems in the future.
Another element is visualization. Diagrams, for example in C4 notation, are essential for effective communication. They allow you to present the architecture in a way that is understandable to developers, managers, and the client. A good picture is worth a thousand words, especially in IT.
Next, we have fitness functions. This is a brilliant concept from evolutionary architecture. The idea is to define automated tests that check whether the architecture meets key non-functional requirements. This allows us to monitor on an ongoing basis whether our system is developing in the right direction.
Finally, Team Topology. Team architecture and structure are inextricably linked. You need to understand how to organize work so that the team supports the architecture and the architecture supports the team. The goal is to minimize friction and allow people to work effectively.
Architecture is not just code, it is communication
The Architectural Kata process makes us realize that technology is only part of the puzzle. People and the way they communicate with each other are equally important. A good architect must be like a translator who can adapt their language to three groups of recipients.
For sponsors, what matters is business, budget, and return on investment. You need to be able to show them how technological decisions translate into specific financial benefits.
End users are primarily interested in functionality and ease of use. They want the system to simply work and be intuitive.
Developers, on the other hand, need specifics – detailed diagrams and clear guidelines on architectural characteristics so that they can implement the system efficiently.
Thanks to regular exercises as part of "Architectural Kata", architects can improve not only their technical skills, but also their communication skills. This is an invaluable practice that allows them to gain experience that would otherwise take years to acquire in normal working conditions.
Happy kata-ing!