Pragmatic programmer Dave Thomas talks about what he calls Code Kata in his blog. He argues that a programmer needs to practice on a regular basis to be a good programmer the same way as musicians or athletes do. (That is, to become good musicians and athletes, not good programmers. Duh. ;-)) Furthermore, Code Kata is a good training tool to learn Test-driven Development. Recently, I have found yet another application for Code Katas. I am currently learning C# (and the .NET platform in general), and have used Dave’s Code Katas to do that. I have found that they are excellent exercises to get to know the language, libraries, and the development environment in general. For some time now, I have spent half an hour every day on the Katas, which have shown to very fruitful.
A project that I worked on some time ago got into some trouble. As the project progressed, some parts of the code “owned” by some of the developers. The other developers grew a habit of not wanting to touch that specific code. This because of a number of reasons, but what striked me was the lack of collective code
ownership in the team. Parts of the system belonged to one single developer, which maked it very difficult for others to touch. And, of course, at some point, matters went from bad to worse when this developer left the project.
This made me realise how important collective code ownership is. It is fundamental to making agile methodologies work (originally introduced by XP, I believe).