Coderetreat

Are you an HR and looking forward to recruiting a resource who is good at technical practices and a good team player? This blog post is for you.

Are you from the marketing department and are wondering how could you publicize your organization? This blog post is for you.

Are you a project manager and are looking for a way to upskill the team? Well, this blog post is for you.

Wait, you are just a developer and want to improve your skills? This blog post is definitely for you.

Do you want to do something for the software community? Well, this blog post is for you.

If you are a scientist and wondering what are the boundaries of the universe? Sorry boss, this blog post is not for you.

What is a Coderetreat?

I am sure that you did not understand a lot. Let me explain with an example.

There are 3 roles involved. The host who provides the infrastructure for the Coderetreat, facilitator who guides the group through the Coderetreat and attendees.

Imagine you have 4 developers, Jon Snow, Mr Beans, Voldemort, John Rambo who are attending a Coderetreat hosted at (some_company_name)

Four developers attending the Coderetreat.

The reason these 4 are chosen for the example is that they come from different domains, representing the diversity of the attendees.

They would be presented with a problem statement by a facilitator (usually Game of Life) with a time limit of 45 minutes. What they have to do is pair with someone. That someone should be not from your team with whom you work regularly. Find someone new. In our example, let us assume that Jon Snow pairs with Mr Beans and Voldemort with John Rambo.

Pairing for the first session

During the next 45 minutes, the pair should

  • Respect each other (This practice can be followed later as well, with everyone)
  • Mutually agree on a language.
  • Use TDD and have passing tests.
  • Write clean and readable code.
  • Avoid duplication.
  • Have small methods and classes.

The facilitator keeps on monitoring if the pairs are following the above points. After the next 45 minutes, stop coding. And then, you have to do the toughest part of the whole day, i.e. delete the code.

Nope, not kidding. Everything that you do during Coderetreat does make sense. We will see that later. For now, delete it. Gather together and have a retrospective along with facilitator and other team members for 10 minutes. You could discuss on points like

  • What did you learn from your session?
  • What went well in your session, what didn’t?
  • What will do differently in your next session?

Next 5 minutes, the attendees can take a break to attend phone calls or nature calls, whatever they prefer.

For the next session, they have to work on the same problem, but with a different pair and with a constraint provided by the facilitator. The constraint can be like

  • No conditionals
  • Immutables only
  • No loops
  • Code swap

So in our case, Voldemort would be pairing with Mr Bean and Rambo with Jon Snow.

Switched pairs for the second session.

The facilitator will then time box the next session for 45 minutes. After the time limit, the facilitator will ask them to

  • Delete the code
  • Retrospect
  • Take a break
  • Switch pairs
  • Add another constraint

The same cycle continues for the remaining day. At the last session, the retrospective is usually a bit longer where the developers share their experiences for the entire day. The questions asked during the final retrospective are

  • What have you learnt today?
  • What will you do differently in your job from Monday on?

Why we do what we do during the Coderetreat?

Secondly, pairing improves the communication skills of the developer. And switching the pairs gives them a chance to learn new languages, approaches and practices throughout the day from other developers. Networking is an additional benefit for the developers.

Then comes the part of deleting the code. Normally developers are too obsessed with their code. This teaches them to let go what they have written to build something better.

Retrospectives teach them to look back and learn from their experiences.

Constraints are added to help them write better code. In usual workdays, replacing a for loop might be not of that importance. But Coderetreat is focussed exactly on those things which one would not do normally. What they learn can be useful for their daily work.

You can find the detailed list of constraints at https://www.coderetreat.org/pages/facilitating/activity-catalog/

But why Coderetreats?

In case if you are looking to publicize your organization, then hosting a Coderetreat would be an opportunity for a lot of developers to visit and know the organization.

In case if you are looking to upskill the team, letting some of them facilitate the Coderetreat is an excellent opportunity. Facilitation involves being aware of good programming tools and practices. Which means that the developers who want to facilitate end up learning a lot about the same. The knowledge that they gain then spreads through the organization. Even letting them attend the Coderetreat provides the team with valuable insights.

In case if you are a developer, it is a day meant for learning, experimenting, networking and coding.

In case if you want to do anything for the software community, what could better than hosting and / or facilitating a Coderetreat?

By the way, every year, one day is celebrated as Global Day of Coderetreat. Developers from all over the world participate in the Coderetreat on that day. For more updates, you can visit https://www.coderetreat.org/

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store