In this article, we delve into the reasons behind adopting the Kata technique to improve the skills in designing software architecture. We will bring you closer to the topic based on the experience of Krzysztof (our Senior Software Engineer) who has stepped into the shoes of the Architectural Kata workshop moderator.

In our fast-paced and ever-evolving IT company, staying at the forefront of technological advancements and fostering continuous learning is vital. One of the ways we promote knowledge sharing and innovation is through internal workshops.

Kata Method – A Recipe for Successful Architecture Workshops

“How are we supposed to get great architects, if they only get the chance to architect fewer than a half-dozen times in their career?”

Ted Neward (the creator of the original Katas site)

First, let’s explain the background behind Kata method. Kata, derived from Japanese martial arts, refers to the regular practice or the execution of prescribed forms or patterns. In the context of software architecture, the concept of kata involves carrying out different exercises or problem-solving scenarios. Websites offer ready-made kata exercises for those who need guidance, while some individuals choose their own kata and apply new technologies to solve the same problem, observing the differences.

Kata methodology helps developers prepare for coding by sharpening their problem-solving abilities. It facilitates:

  • understanding a problem’s essence,
  • noticing crucial conditions,
  • setting limits,
  • determining what can and cannot be achieved.

Recently we have organized in-company training on Architectural Kata. We wrote about it our latest article, where you can read about the effects of our team’s work. The training session was organized from the initiative of Krzysztof, who run the workshops for the teams of our developers. Let’s find out his point of view on adopting the kata technique and the value of organizing such workshops for the company’s growth.

The Architectural Kata method encourages critical thinking, fosters creativity, and enhances team’s ability to design scalable solutions.

Krzysztof – a Senior Software Engineer at fireup.pro

Why did you choose the Kata method for architecture workshops?

The Architectural Kata method provides a structured and practical approach to learning and problem-solving in the realm of software architecture. I chose this method because it enables participants to develop their architectural skills through hands-on exercises and collaborative discussions. By practicing different architectural patterns and principles, we empower our developers to make informed decisions and improve the overall quality of our software systems. To ensure practicality, workshops based on the kata methodology adopt a real problem or brief instead of relying on pre-made exercises. Each team typically consists of a leader, an experienced individual who guides other members without imposing their own solutions, along with front-end and back-end developers and testers.

Could you describe the role of a moderator?

The role of the moderator is to create a supportive environment where ideas flow freely and participants are encouraged to challenge their assumptions and explore new possibilities. It’s a collaborative process where everyone’s contributions are valued, and we collectively learn from each other’s experiences.

Is it worth for IT companies to invest in these kinds of workshops?

Investing in Architectural Kata workshops brings numerous benefits to our IT company. Firstly, it strengthens our team’s architectural capabilities, enabling us to design scalable, maintainable, and future-proof software solutions. By improving our architectural skills, we can align our technical decisions with business goals, ensuring the success of the projects. Additionally, such workshops foster a culture of continuous learning and innovation, promoting cross-team collaboration and knowledge sharing. They provide a space for our developers to explore new ideas, experiment with emerging technologies. It ultimately elevates our company’s expertise and competitiveness in the market.

What are your plans for the workshops in the future?

To expand our knowledge and techniques for working with requirements, we would like to more deeply explore other methodologies, such as Event Storming. Many IT companies commonly use this technique to create practical programming solutions. 

Discover the difference between the serverless and microservices architecture:

Serverless vs Microservices – How to Choose the Right Architecture Solution for your IT Project?

Read more

The Architectural Kata workshops at fireup.pro 

The workshop aimed to address the challenges related to designing software architecture. It aimed at preparing the correct identification of requirements, which is crucial for the success of any project. Essential skills such as effective communication, asking the right questions, thorough analysis, uncovering hidden aspects, reconciling contradictions, and proper documentation were crucial for the software’s architecture design process. Our workshops helped us practice all these skills and prepared us for developing IT projects even better. 

The general architecture of the booking system.

The first step was selecting a fictional architectural problem. The concept we chose as the basis for the workshop was developing an IT booking system. Participants were divided into groups, and each group was tasked with developing their own architectural solution for the presented issue. Subsequently, each group demonstrated their solution to the other participants.

Agenda:

8:30 – Moderator introduces the design task (kata) – the same for all teams.

8:45 – 13:00 – Teams working in separate rooms prepare their own solutions to the presented architecture problem. The moderator monitors the groups’ work and responds to questions. 

13:00 – 14:00 – Lunch break.

14:00 – 17:00 – Teams present their solutions illustrated on the diagrams and discuss the effects with others.

Throughout the workshop, teams worked in different ways, with leaders supporting and guiding their team members. The objective was to present a concept that identifies requirements, points of contact with implementation and selects solutions that meet the requirements while remaining within cost constraints. The role of the moderator is to answer questions that arise during the workshop and act as the customer, requiring a deep understanding of the project’s requirements. The facilitator prepares questions for the customer and technical experts responsible for server maintenance, budget considerations, and the feasibility of the proposed architecture.

The diagram illustrates how the booking system’s administration panel works. 

Presentations during the workshop are often structured using the C4 model (which is a de facto standard for architecture documentation), with the potential for additional assumptions to stimulate creativity and encourage the development of alternative solutions. The diverse composition of teams, including individuals with varying levels of experience and areas of expertise such as front-end and back-end development, contributed to a rich learning environment and encouraged broader perspectives.

Summing up

By embracing the Architectural Kata approach, we empower our team to think critically, collaborate effectively, and design cutting-edge software solutions that meet the evolving needs of our clients. It’s a testament to our commitment to continuous improvement and staying ahead in the dynamic world of technology.

If you need any advice on developing software architecture, get in touch with us. If you want to discover more technology-related topics, visit our blog.