Code Reviews Are Hard Work — For Both Parties.

Craft Academy
Nomads Of Code
Published in
4 min readAug 7, 2017

--

This week at Craft Academy — week 4 July 2017

The Summer Bootcamp is moving forward and our seniors are working on their MidCourse project. The domain is a marketplace for photographers and we look forward to be able to present their results next week. We also had a group of juniors start their prep course this week, and are quite excited to welcome them as campers on August 21st.

There’s only one way to learn to code — that is to actually do it! Well, of course there’s a lot more to it, but on a fundamental level that is what it takes.

Learning opportunities comes in many forms and shapes. Our model circles around 3 main components: Collaboration on “real” projects, Pair Programming and Code Reviews (Yes, the coaches do talks and demos to introduce learners to new technology and concepts but we recognize that these activities serves merely as orientation and perhaps inspiration for our students and that the learning experience during these activities are limited).

Each week we introduce our learners to a new challenge in the form of a mini project. We start out simple with some locally run software and introduce more and more complexity as we move along. From day one, students are using version control, and their GitHub accounts are slowly filled with more and more repositories and code.

We use GitHub’s various features extensively in our training. The learners submit both week labs and weekend challenges to their respective GitHub accounts, or make Pull Requests toward repositories on Craft Academy ‘s account.

Each submission is reviewed by a coach who reads through both the tests and implementation code, asks questions and leaves comments and suggestions. Students, knowing that their code will see the light of day, are more likely to think twice before committing something. The idea is to motivate students to take a second look at their code and see if it would hold up under scrutiny.

Why is this important for learning? We argue that while you are learning a new language or framework, it’s often tempting to just make it work and care less about whether the implementation is indeed the best one. If you know someone will go through your code, you are far more likely to reflect on the code you wrote.

Over the course of a year or so, we’ve conducted hundreds of code reviews. One could be led to think that we’ve found a good model by now, but the fact is quite the opposite. Sometimes it still feels like we are fumbling in the dark. What works for one cohort in a given situation, might not work just a week or so later.

The reason is the delicate situation our learner are in during the bootcamp. On one hand, since the pace of the camp is so extreme, they just want to get the PR merged in so they can move ahead with the next feature. On the other hand, we the coaches, use the PR reviews as an opportunity to give feedback, point out weaknesses in the code, suggest improvements and/or alternative solutions.

Our main objective (one that we DO share with our students even if the sometimes can’t see it under stress) is to make sure that they learn as much as possible.

Balancing these two views are really hard and we struggle with having our learners remember that the PR reviews are an integrated part of the learning experience and that they “should” view all comments as an opportunity to pick up a new skill.

We encourage our students to argue for their solutions if they feel that our suggestions are wrong. Being able to communicate about why a certain path was chosen is also an important skill for junior developers. We do, however, acknowledge that it might be intimidating and hart to stand up to a coach.

The whole matter is further complicated by the fact that the same PR is sometimes reviewed by more than one coach. And as we all know, if you show some code to two developers, you risk ending up with three different opinions on it’s quality. Joking aside, quite often we hear comments like, “WTF, <Coach name> said this was okay…” or “Why didn’t <Coach name> comment on this?” after a second review. Well, we argue that this in itself is an learning experience. Responding to this kind of situations, and being able to find a balance in what change requests to respond to and adhere to is not easy for students. It is however a good thing to practice.

Code reviews are hard work — for both learners and coaches alike. Finding the right balance of the level of granularity is not always easy and being on the receiving side of the review can be emotionally draining. Here at Craft Academy, we are in the process of consolidating all our findings about what work and what doesn’t in order to set up a best practice guide for Code Reviews in Learning. We’ll be happy to share our findings and welcome any input and feedback if you want to share your experience with us.

Over and out.

— —

Craft Academy is a Tech Education Provider that aims to bring new talent to the market and help to solve the shortage of tech workers. We are founded on the belief that modern development standards, agile methodologies and business skills are fundamental for ITC professionals. Our primary service is a 12-week coding bootcamp designed to provide individuals with a foundation of skills that allows them to enter the industry as junior developers.

With that foundation, our learners find employment in various industries or start their own businesses that bring new innovations to the market.

Would you like to know more about what we do? Follow us here on Medium, Facebook, Twitter or visit our website.

--

--

Craft Academy
Nomads Of Code

Coding as a Craft in 12 Weeks — Stockholm, Gothenburg, Pretoria, Rotterdam