Blog post

GDCR18 at Technogise — A memorable event !!!

Technogise

-
November 27, 2018
Clean Code
Software Craftsmanship
Code Retreat
Test Driven Development

Technogise proudly hosted and facilitated the Global Day of Code Retreat (GDCR18) on 17th November, 2018.

Ours was one amongst 133 Code Retreats held across the globe on the day !!!

As an organization which practices and promotes software craftsmanship, it was only natural for Technogise to be associated with this movement.

Of course, Technogise also has prior experience of facilitating code retreats, (at Cummins College of Engg. for Women in 2017 as well as 2018) which helped immensely… :-)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A different coding problem:

Those who attended GDCR in Technogise, faced a different coding problem than most other GDCR events around the globe.

Yes, we did NOT solve Conway’s Game of Life.

Instead, we came up with a new problem — GST Calculator — which calculated the Goods & Services Tax applied on various types of commodities in a shop, and then calculate their final price.

Why? Because,

  • a) we wanted to solve a problem with real-world applicability that people relate to.
  • b) the problem provided ample scope for modelling objects & classes, evolving design patterns, implementing tests, refactoring and following TDD… and
  • c) what’s the point of practicing Agile dev practices, if we can’t even be agile about the problem we are solving? :-)

In fact, a participant joined our GDCR event primarily because it had a different problem than Conway’s GoL… a problem he was bored solving.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

No Iteration 0:

In previous code retreats, we used to start with an Iteration 0, where we asked participants to initially solve the problem as is, without defining any rules. Once Iteration 0 would be done, then we would move to Iteration 1 with some rules defined.

However, for GDCR, we started the day with Iteration 1. So, before anyone started coding, we defined a Rule 1, according to which the participants needed to code.

This helped set the tone for the participants early, as they had to start thinking in the direction of clean code from the beginning itself.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

The Rules:

For the day, we went with 5 rules, each rule progressively applied after every iteration. The rules were:

  • Rule 1 — Small methods (less than or equal to 5 lines). Helped people focus on modularity.
  • Rule 2 — No conditional statements (if-else or switch-case). Helped evolve proper class structure & design patterns.
  • Rule 3 — Only write unit tests with asserts. Helped participants take the first step towards Test Driven Development (TDD).
  • Rule 4 — Write code to pass the failing tests.
  • After completion of code post Rule 4, we added a new twist to the problem… a new condition, which meant people now had to alter their tests and refactor the code.
  • Thus, Rule 5 — Refactor the Code according to the new twist — helped participants complete the TDD cycle in Iteration 5, which was also the final iteration for the day.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Retros:

Every iteration was followed by a retrospective, in which participants shared their experiences & learnings from the previous iteration.

In these retros, the facilitators & volunteers from Technogise acted as guides, making participants realize how following the rules helped them evolve cleaner, better designed code at every step.

The inputs of some of the external participants (who were also seasoned clean code practitioners) helped navigate the retros in the right direction as well.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Pairing, with multiple languages:

One of the big perks of a code retreat is the chance to code in multiple languages on the same day.

As the participants started pairing with each other to solve the problem, they got first-hand experience of coding in a language they hadn’t coded in before.

Typescript, JavaScript, Ruby, Rails, Java, C#, Python were some of the languages used at the event.

It was great to meet some polyglots in the crowd as well.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

A successful code retreat:

GDCR18 at Technogise was a success.

Why do we say that? Because at the end of the day, participants went back with:

  • a) an appreciation of why software craftsmanship is necessary, and helpful for them.
  • b) an understanding of how they can make their code readable, scalable, maintainable, testable and robust by following simple OOAD principles & practices.
  • c) a mindset that unit tests can be the drivers of code design, and not an after-thought.

Over the course of 5 iterations, the code of the participants had evolved from procedural (main class doing most things) to properly object modelled & test driven. What more could we ask for… :-)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Kudos to the facilitators — Rajashree Malvade, Mayank Dhanawade — and the team of Technogise volunteers (Prathamesh, Sarthak, Neha, Akash, Sagar, Keshav, Anand, Datta) who kept everyone on the same page and ensured smooth sailing of the event throughout the day.

Special shout out to Nilesh Miskin, Murtaza Bagwala, Ankit Oswal whose expertise and guidance helped clarify the doubts of many.

And of course, a BIG Thank You to all the attendees whose enthusiastic participation made this event worthwhile. All of you ensured a memorable full house for us on a Saturday… :-)

On to GDCR2019 !!!

Related Blog Posts