quinta-feira, 13 de janeiro de 2011

Coding what? Coding Dojo!!!

Since I started to participate in py dojo people I invited have been asking me what is a coding dojo? In the beginning I didn't have the right awnser  to this question but as I went trough the dojos this awnser became more clear in my mind.

The awnser to the question: What is a Coding Dojo?

Basically a coding dojo is a meeting of developers group where they solve problems together in an specific language. Is good to remember that the type of dojo I'm describing here is non-competitive and fun where any level of skill is permitted, as far as I know there are other type of dojos with different focus.

The objectives are: of course have fun; improve your skills in the language used, your team work and your brainskills to solve problems (normally they are quite challenging).

Ok then, but what is needed for a coding dojo? The minimum requirements are an PC or Laptop, a local for the meeting, a projector and a minimum of one developer with great knowledge for being the guru.

The master is the guy that guides the dojo and guides the group in moments of doubt about the language.

How the dojo is organized

Now we already know what it is and what is needed. The next step is the execution, it happens more or less like this:
  • 20 min for choosing the problem and the initial approach.
  • a quick lunch, like 10 min or less (is easier to think after you eat).
  • First part with a real action, 1st hour coding.
  • another quick lunch, more 10 min or less (just to take a breath, sometimes the group solved the first challenge at this point).
  • Second part with more real action, 40 min or so coding.
  • After finishing we do a quick retrospective about the session with the good and bad things. The tip here is to use a board and put post-its with + and - signs, people tend to feel more confortable writting than talking.

How to the code the code

The meeting is organized but how we're supposed to code is not. If my memories are ok at the dojo I'm participating we use Randori Kata which is a way of saying how things happen.
  • The problem is solved in pairs, like extreme programming, a driver and a copilot.
  • Everyone is invited to help on the right time (I'm going to get the list of rules and update here).
  • Each pair has a timebox to advance, 7 min works for us.
  • Use TDD and BabySteps, is hard I know but you'll have to give your best.
  • Every time a timebox ends the driver gives his place to the copilot and another person takes place as the new copilot.
Things that worked for us

Add a white board and post-its as requirements. The white board is used to solve the problem, remember the problem, to place the rules of the dojo and for the retrospective time when we place the posts-its with good and bad things.

Try to change where the meeting occurs, like three weeks in one company, other three in an university and so on. This is good for seeing new places and new people.

Also try to change the days of the week it occurs, one week on monday the other on wednesday and so on. This helps newcomers and members being more constant.

My vision

All this explanation and I didn't mention a single word about what I think. For me the dojo exercise/teach us some important points:
  • Problems are not always only a matter of language.
  • Playing as a team is important, but think as one is a learning process.
  • TDD, boy this skills is fun and good but hell is dificult to get used to.
  • You're not alone in the world, the exchange of knowledge is a must have, exercise it! (is good to meet new people)
  • Attention, if you don't pay attention you'll loose yourself in the process.
  • Oh and I can't forget the fact that we are increasing our skills in the choosen language.
  • Having fun!!!
These are just a few reasons for participating of a coding dojo, pick one and happy coding.
To end I must thanks Rodolpho and Chester for leading such a great group of python coding dojo at São Paulo, Brazil.

Um comentário:

Aline disse...

More... Mtoooo bom o post...

É bom, pq a maioria das pessoas não sabem o que é um coding dojo... agora sempre q me perguntarem eu mando para cá...

Uma dica bem legal, seria fazer este post em portugues, conheço pessoas que tem preguiça de ler ingles, e tals.

Bjos... Te amo

Obs.: Olha eu na foto... ^^