About

Architectural Katas are intended as a small-group (3-5 people) exercise, usually as part of a larger group (4-10 groups are ideal), each of whom is doing a different kata. A Moderator keeps track of time, assigns Katas (or allows this website to choose one randomly), and acts as the facilitator for the exercise.

Each group is given a project (in many ways, an RFP--Request For Proposal) that needs development. The project team meets for a while, discovers requirements that aren't in the orignal proposal by asking questions of the "customer" (the Moderator), discusses technology options that could work, and sketches out a rough vision of what the solution could look like. Then, after they've discussed for a while, the project team must present their solution to the other project teams in the room, and answer challenges (in the form of hard-but-fair questions) from the other project teams. Once that challenge phase is done, the room votes on their results, and the next project team takes the floor.

History

The Architectural Katas were born out of a simple desire: software architects need a chance to practice being software architects, just as programmers need a chance to practice being programmers. Dave Thomas created the concept of the "Code Kata" while watching his son at karate practice, and that turned out to be a popular concept: a series of exercises that programmers can attempt in a variety of different languages, as a way to help master the language.

A few years later, while contemplating what kind of workshop I could run at a Java/Open Source/Agile conference, I thought about combining Code Katas but at a higher level. Some Google searches made it pretty apparent that nobody had tried this before, so... what the hell? Let's give it a shot.

The Architectural Katas ran for 18 months straight, and each time they ran, they were a huge success--most participants found them useful, regardless of skill level. Experienced architects thought they were a great way to try something different; novice architects loved the chance to try something without the pain of failing; and senior developers who'd never really known what architecting was like found it an easy way to get a glimpse of the architecture exercise.

Since that time, I've received a number of requests for the katas, as well as notes that tell me that Architectural Kata user groups have sprung up across the country. Clearly, the "keep all the Katas in a PowerPoint" had reached its limits. So.... Armed with a little jQuery and the BitBucket REST API and a Mercurial repository there into which to store the katas, this site was born.

When it became glaringly obvious that GitHub was becoming the preferred place of choice for online source storage, and their API was what I needed it to be, I moved the repo containing all the katas to my GitHub account here.

My hope is that you find the exercise useful, and that it helps architects practice the process of architecting. The katas prescribe no process or methodology--use them as a way to try different architecting processes, for example, or as an interview exercise for your would-be software architect candidate.

Note that all the Katas are considered public domain, and so you are free to do with them whatever floats your boat. An attribution back to this site would be appreciated, but in the end, if that's not possible, somehow life will go on.

Enjoy!

Ted Neward