Async Code Reviews Are Killing Your Company’s Throughput

preview_player
Показать описание
Speaker: Dragan Stepanović
Recorded: 2021-12-14

00:00 Intro
05:22 The Talk
59:14 Questions & Answers

"Never had a PR over 300 LoC that didn't look good to me". We've all been there. The PR is so big you don't even bother commenting. It's already too late to build the quality in. You make a sad face, comment "LGTM", and click approve.

That's still the case in lots of teams but feels like after a long time the industry, on average, learned the value of the Small Batches idea from Lean applied to PRs. And that's a good thing; it's a step in the right direction.We do a bit of coding, raise a PR and then ask for feedback. People are more likely to engage on smaller PRs. It takes them less time to review it, and they have a feeling that they can still course-correct if something goes astray. PRs go sooner out of the door, and we feel productive as a team.

But, here's the surprise. What if I told you that teams doing small PRs (with async code reviews) actually have way lower throughput than teams doing big PRs.

"Wait, what?!" Yes.

I got this surprising systemic insight from analyzing PRs across a bunch of very active repositories and I'll present you with the results of the study.On the bigger PRs side of the spectrum, we tend to lose quality, while on the smaller PRs end of the spectrum we lose throughput. We're forced to make a trade-off between speed and quality.

But! There's a parallel universe of ways of working where you get to have your cake and eat it too. Where you can have both throughput and quality. That universe is called co-creation patterns (Pair and Mob programming).

Join me on a journey where I'll show you data invalidating the assumption that two or more people sitting at the same computer will hurt our throughput and why the opposite is actually the case.

Dragan is currently a principal engineer at HelloFresh, one of the unicorns of Berlin's thriving start-up scene. Before HelloFresh he helped Careem/Uber build the largest loyalty program in the MENA region, drive architecture, technical strategy, and shape engineering culture.

Typically on the search for better ways of working, exploring ends of the spectrums, and helping teams and organizations try out counter-intuitive ideas that initially don't make a lot of sense, but end up as completely opposite of that.

It's been a long time since he fell in love with eXtreme Programming, Domain-Driven Design, and software as a craft (founder of Software Crafting Serbia community).

In last couple of years he enjoys endless discussions connecting the Theory of Constraints, Systems Thinking, Lean and socio-technical topics.

Twitter: @d_stepanovic

Organized by: Java User Group Switzerland and Software Crafts Romandie
Рекомендации по теме
Комментарии
Автор

Interesting and insightful conversation on PR sizes.

anitsh
Автор

@d_stepanovic - thanks a lot! Great work to support pair and mob programming practices to speed up product development time. Awesome!

There is one caveat though I try to bend my head around: There's not only writing code - there is analysis work, understanding the business background, developing domain models, planning release and Sprints, onboarding of new team members, running retrospectives, doing line management activities, attending top down company communications, etc. How to weave this into the overall picture?

Don't get me wrong, I'm a big fan of lean, flow, WIP limitation, etc. - that all makes total sense. I just need solid content to explain to my product managers that humans are bad at multi-threading and that it's bad for the overall productivity.

BerndGoetz
visit shbcf.ru