Code Kata Sessions For Developers

Code Kata Sessions For Developers

"Kata is originally a method of teaching and training by which successful techniques were preserved and passed on. By practicing in a repetitive manner the learner develops the ability to execute those techniques and movements in a natural, reflex-like manner."

Wikipedia

We all remember some scenes from karate movies that a karate practitioner performs a series of punches and kicks in the air. Some other guys also remember Ip Man practicing with wooden dummy.

Generally, we know kata from martial arts but in Japanese culture Kata are used in many traditional Japanese arts such as theater and schools of tea ceremony.

Kata is basically about repeating the techniques of an art or study in a disciplined way. Programming is an art and we humble developers are also artists. We can definitely follow the Kata methods in our art. In this post, I want to share my personal experience and thoughts about practicing with Kata method in developers life.

Why do we need practicing?

Generally, we think that we as developers always write hundreds of lines of code everyday so we practice everyday. Is it really the truth?. Yes we write hundreds of lines of code everyday but they generally do not require creativity or intelligence. We usually fix some bugs in an old code, add some new feature to an old module or add a new module to an old application. Most of our work do not require to use new technologies or algorithms. We have to use existing libraries and classes. We can not try new technologies because we have to be obey deadlines. Adding a new technology always needs much more time than implementing with the existing one. Most of the time, we are not allowed to rewrite the code with new algorithms or solutions either.

After all, we become copy cat developers. Think about a karate kid always fighting with same opponent using same offences and defenses. We all know that he will be hardly beaten by a new kid using different punches.

After a while, all of our life at work turns to a life of parrot repeating same words. This makes us very unhappy and most of the people are willing to move to the new companies because of this. This is a deadly cycle in our industry. What can we do if the work is not pushing us to improve? The answer is very simple. We have to do it ourselves.

How?

Personally or with our team, we have to arrange scheduled times to practice and improve our programming skills which can be called as Code Kata sessions. It is better if we can do with our teams and officially at work. The sessions should be a part of our professional life. The companies should be also aware of this need and should support the employees.

There are many different Code Kata styles documented and many sessions are organized worldwide with different styles. We can choose one of them or combine them.

Here is the list of characteristics of Code Kata sessions that I gather from articles and different Code Kate styles;

  1. Should be scheduled and regular (weekly is better :-) )
  2. No interruption from business problems or bosses.
  3. At least 30 minutes at most 90 minutes. (There is no evidence for this)
  4. Find different simple problems out of the scope of the work that may have many different solutions.
  5. Try new algorithms each time if the same problem used in different sessions.
  6. Try to solve the same problems with different restrictions (e.q with no loop, immutable state).
  7. No need to solve the problem. Feel free to make mistakes.
  8. Feel free to delete code between each steps or mistakes during sessions.
  9. No libraries or frameworks.
  10. Force using mathematics.
  11. If possible use pair programming.

If It is not possible to have Code Kata sessions with our team at work, we should place the Kata into our programming life for our technical improvement.

We are what we repeatedly do. Excellence, then, is not an act, but a habit.

Aristo

If we repeat doing same things what the business domain at work allows us, we loose our excellence in programming. We need to have code kata in our life to repeat the wise techniques and improve our skills.

Aslinda sadece developerlar icin degil, tum yasantimiz icin gecerli bir duruma ve cozume deginmissin Umut. Hep ayni seyi yaparak basariyi ve mutlulugu beklemek yanlis olur. Eline saglik.

Code-Kumite de organize ediyor musunuz? :)

Like
Reply

To view or add a comment, sign in

More articles by Umut IŞIK

  • Escape From Local Maxima

    One of the delusions we have in our career nowadays is the thought of being expert in what we do is enough. So this…

  • Adapting New Joiners To The Team

    It is very often that we have new joiners to our teams with different profiles. The new joiner may be either an…

  • A Talk About Mentorship

    This a very subjective talk about mentorship which is generally considered as a part of in-company training. The word…

  • Setting Up a CI For Your Project

    CI (Continuous Integration) is a software development practice in which you build and test software every time a…

  • Infinite Loop Of Learning

    "There are two kinds of people: one, the one who teaches; other, the one who learns. Choose whichever you want to be.

    2 Comments
  • Peaceful Workplace

    Companies make plans of creating productive teams to produce good quality at work. They generally tend to use corporate…

    1 Comment
  • Thinking Serverless

    The cloud technologies and cloud related terminology became favorite topics in our life. Lots of companies and…

  • Working At Westeros

    I tried to imagine how the noble houses would be if we work at Westeros. House Developer House Developer was one of the…

    3 Comments
  • Self Learning Teams

    As developers, we are working in a rapidly evolving industry that we have to follow improvements on the old…

Others also viewed

Explore content categories