From Coding to Architecture Katas
I suppose you can already see where this is going. We asked ourselves: what if we used the kata method not just to program, but to come up with useful system architectures? Our work at Turbine Kreuzberg has been moving more and more to the heart of companies’ digital landscapes. Often, we find ourselves building custom applications more or less from scratch. This makes it more important than ever to develop our skills in building system architectures from the ground up.
As with many things at Turbine, we wanted to make progress by trial and error. So, we kicked off a series of katas workshops, in which teams would practice designing a reasonable system architecture for a predefined use case. Of course, our objective was less about the resulting architecture and more about learning how to get there. Our top goals included improving the participants’ architecture design skills, giving developers previously unfamiliar with architecture design insights into a new domain, and offering a forum for knowledge exchange.
Our thinking: by preparing developers for design decisions in a safe environment, they would be better prepared for real life cases. In addition, by teaching teams how to structure systems they would also learn to distribute the development thus ownership of those systems over multiple teams.
We announced the upcoming two workshops regularly during our weekly internal “devtalks” sessions. Participation was on a voluntary basis. Each workshop began with a short intro to the kata method, as well as explaining the use case and tasks. Then, each team received an empty Miro board to work in, i.e. to structure their architecture and component overview. At the end, we gathered feedback about the method and the use case.