Sportsmen, artists, musicians... all follow a system of practice and tournament|product|concert. In the tournament they have to be perfect, but that perfection comes from hours of practice, mistakes, and explorations that happen during training. Software developers on the other hand are always working in tournament mode... cranking code for clients. This is not good, because they do not get a chance to practice, explore, make mistakes, and polish their skills. Some might argue, that their practice happens at work. But such practice is very limited, because at work, developers are always working under time pressure. For practice to be effective, it must happen in a pressure free environment where the trainee can explore, repeat, and perfect her skills. A Kata is an exercise in karate where you repeat a form many, many times, making little improvements in each. Dave Thomas, has combined the principles of Kata and coding practice to create a unique form of coding exercices called code ka...
Write Awesome User Manuals and Tutorials for Software Products