CodeNewbie Community

Cover image for [On-Demand Talk] Teaching through Code Review
Derek Binkley for CodeLand 2022

Posted on

[On-Demand Talk] Teaching through Code Review

About this talk

Code reviews are often focused solely on quality control. The reviewer protecting their main git branch from badly formatted, not properly tested code that can introduce bugs. Code reviews become adversarial processes where the requester must meet all the demands of the reviewer. This type of process does not promote teamwork nor does it allow less experienced engineers the opportunity to truly learn.

In this talk we will learn a new approach to code review. We will learn how to make code review a learning experience by transforming the role of reviewer into a teacher. This approach can lead to high quality code, developer satisfaction and team building. We will also explore ways that junior developers can make changes in the process and encourage adoption of better review practiced by senior and lead developers. By the end of this talk you will learn how to make code review a great learning experience for all those involved.

Talk Recording

Slides

Resources

🌈 Comment below and ask me questions — I might just answer them during my live speaker discussion!


About me

Hi! I'm Derek Binkley — a Full Stack Engineer with Localize. While getting my start fixing the Y2K date problem in Cobol, I quickly moved on to spend over twenty years using JavaScript, PHP, JVM Languages, and SQL and NoSQL databases. I enjoy teaching others through speaking, mentoring, and writing articles. I also like to encourage developers to write clean, testable code. When not in front of a computer, I spend time hanging with family, traveling, and making sourdough pizza.


This on-demand talk is part of CodeLand 2022 — a virtual conference brought to you by CodeNewbie & DEV on June 16 & 17, 2022.

Discussion (17)

Collapse
michaeltharrington profile image
Michael Tharrington

Thanks for sharing your knowledge with us, Derek!

Question: Do you remember the first code review you were a part of or even just one of the earliest ones you can remember? Given what you know now, how did that code review go?

Collapse
fizzybuzzybeezy profile image
fizzybuzzybeezy

Thank you Derek! I look forward to reviewing your resources. This is such a great topic. The point about reviews being fraught with landmines of gate keeping is well taken. I haven't been in as many formal code reviews. Most were just informal and found I learned new ways of doing things and a flexibility of how to see logic laid out when going the informal route. It does allow for breaking any company set style standards and is best for very small teams. I guess the best way to define an informal review is to look at the work with the developer afterwards, but not during like pair programming. What's your thoughts or experience with this idea of informal reviews? Thank you for your valuable insights!

Collapse
nadreamer profile image
Nad

I could have really used this talk a month ago :D
I've had to start doing code review on a big project I just joined and it's been intimidating. Luckily there's a lot of new people on the project and those who've been on it for a while suggested we do a quick call with whoever opened the pull request. That way there's not a lot of back and forth in the comments trying to ask for clarification and explain.

I'm wondering how would you approach a code review on parts of the codebase you're not familiar with yet? Or how would you suggest a junior dev approaches this?

Collapse
brianhhough profile image
Brian H. Hough | brianhuff.eth

As someone who is interested in gaining more proficiency in code reviews, are there ways that you can do a mock-code-review with a colleague or do a code review with yourself? What would that process look like to get more experience in this area?

Collapse
necolanch profile image
Nicholas Cruz

This is one I was looking forward to. Good communication is a key to this. The points you mentioned of taking out the friction of the extremely nitpicky stuff like spaces/tabs and making the time for code reviews in the project scope are critical to make it as positive of an experience as it should be. So far, the connections I have that I share code with have all made it a great and uplifting experience when I have them review my code or help me find an error.

Question: How have you handled a colleague reviewing your code that was using more negative/condescending language?

Collapse
srivera12 profile image
Sarah Rivera

This was great - I'm starting as a junior developer next week, so I never thought about giving code reviews, and I have some anxiety over the code review process. This talk was great for giving advice and an interesting perspective about code reviews in general.

Collapse
anyanka profile image
Anja

Thanks Derek, that was very helpful! Until now I didn't have to deal with code review in a professional way but some day I'll need it and it's great to know how you handle it. Hopefully I find an environment where helping and learning from each other are appreciated. :)

Collapse
rzuick profile image
Rebecca Z

This is more of a curious question, but have you read Refactoring by Martin Fowler, and if so, what is your opinion on it? I'm reading it in a jr dev book club with more senior members of my team and some of the general philosophy he talks about seems obvious when he says it, but is also things I never thought about as a brand new dev.

Collapse
tsbrun profile image
Anya Brun

Thank you for this talk! I struggle with reaching out for feedback because I tend to take it too personally and view a judgement on my work as a judgement of my worth. Definitely not a helpful attitude lol. What would you recommend to someone who’s not necessarily working with a team, but wants feedback on their code? How do you think people who deal with social anxiety or imposter syndrome should approach the code review process?

Collapse
aigarspl profile image
Aigars Pluģis • Edited on

Thanks for experience what you share with us, Derek!
This topic is important for me, too, as I'm currently rewriting few pages of my internal projects.
Q: How you can do code review for one and same project if it involves different technologies later?

Collapse
shez_anne profile image
sheree morphett

When you do a code review yourself, how do you provide the feedback to ensure it is constructive and needs to be said as opposed to hyper-critical OR potentially rushed and lazy?

Collapse
faruqjada profile image
FaruqJada

Teaching through review and sharing of knowledge is the interesting part of this one

Collapse
dennistobar profile image
Dennis Tobar

Thanks for your presentation.

My question is how to aplogize when you lost the focus or target of code review?. We are human, and we made some mistakes in the relationship

Collapse
emdebarros profile image
Em

What would you suggest to a junior software engineer trying to participate in PRs made by senior engineers? Do you have some tips & tricks on how to break the ice? Thank you!

Collapse
hussain_codes profile image
Hussain Codes

Thanks for the great talk Derek! I haven't really experienced code reviews yet. Do you have any advice for that first code review at a new role?

Collapse
jromero profile image
José Romero

Thank you Derek! you gave many great tips!

Collapse
hellotjphan profile image
TJ Phan

Thank you for your talk Derek. My question is, what resources can we use for shared code reviewing when we don't yet have a job where we can ask people to be involved in our review?