<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Awesome Code Reviews]]></title><description><![CDATA[Best practices and research behind making code reviews your superpower.]]></description><link>https://codereviews.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!TDrk!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae2e59f-c794-472e-a490-e45e5df0be98_873x873.png</url><title>Awesome Code Reviews</title><link>https://codereviews.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 05 Nov 2026 02:48:58 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dr. Michaela Greiler]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[codereviews@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[codereviews@substack.com]]></itunes:email><itunes:name><![CDATA[Dr. Michaela Greiler]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dr. Michaela Greiler]]></itunes:author><googleplay:owner><![CDATA[codereviews@substack.com]]></googleplay:owner><googleplay:email><![CDATA[codereviews@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dr. Michaela Greiler]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Review Starts Before Code Exists]]></title><description><![CDATA[What I learned from evaluating SCOPE with software teams]]></description><link>https://codereviews.substack.com/p/review-starts-before-code-exists</link><guid isPermaLink="false">https://codereviews.substack.com/p/review-starts-before-code-exists</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Wed, 07 Oct 2026 09:59:31 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KHhe%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the last two months, I have started to evaluate <a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fscope%2F">SCOPE, the Staged Change Review Model</a>, with several software teams.</p><p>Today, I want to share some of the findings, and in particular which changes I introduced to SCOPE because of the insights from the study.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KHhe%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KHhe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 424w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 848w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 1272w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KHhe%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png" width="1448" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1241348,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://codereviews.substack.com/i/219068661?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KHhe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 424w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 848w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 1272w, https://substackcdn.com/image/fetch/$s_!KHhe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8adea743-14da-4f83-8a5a-e524316e702a_1448x897.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>SCOPE: A new Review Model for the AI era</h2><p>SCOPE shifts review away from one code review phase after implementation and towards distributed change oversight that happens at several stages and by several people. In SCOPE, not every change gets the same amount of oversight, and it also makes those oversight decisions on how much oversight a change gets explicit and team-informed through Proportionate Escalation.</p><p>Those two concepts behind SCOPE - Staged Change Oversight and Proportionate Escalation - proved stable and applicable in many different business and engineering contexts within the study. At the same time, the study also showed where the model needed to evolve.</p><h2>Review Starts before Code Exists </h2><p>SCOPE already recognized in its first version that <strong>review starts before implementation</strong>, but I did not capture this as a dedicated review stage. This is probably the biggest shift within the model introduced by the empirical findings.</p><p>Reviewing artifacts like architectural documents and design documents, or refining the ticket, was important even before AI, but it was not an official part of code review. Yet, many problems experienced during code reviews had to do with shortcomings during planning and could be fixed or improved by rethinking and reorganizing the coordination of the work that happened before implementation.</p><p>AI makes this even more crucial, as the distinction between planning and implementation blurs. When machines take over more of the writing of the code, and developers increasingly instruct machines in plain English, we have to ask ourselves: what is the work we review and assess, and when should we do so?</p><p><strong>SCOPE&#8217;s answer is that review is a staged activity that starts before implementation, to reduce rework costs and build team consensus early on, and carries on after implementation. </strong>SCOPE therefore has four stages that a change can run through: Initial SCOPE Review, Agent Review, Developer Review, and Independent Review.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/review-starts-before-code-exists?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2Freview-starts-before-code-exists%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><h2>Some Changes Need Significantly Less Oversight</h2><p>Based on the insights from the study, SCOPE is now more radical in allowing and anticipating stages to be skipped. This is a natural next step to account for the many different settings and stages of AI adoption, but also the different business contexts and goals. The stages in SCOPE are now building blocks that can be used to ensure the right oversight per change. In some contexts, and for some well-understood and low-risk changes, an Initial SCOPE Review followed by an Agent Review can be enough. In other cases, a change might need to go through all four stages. In addition, proportionate oversight does not only refer to how many review stages are present, but also influences their intensity.</p><h2>SCOPE: A Concise Introduction</h2><p>Finally, I also got feedback that the original post detailing SCOPE was too long. So I wrote up the <strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fscope%2F">SCOPE model in a concise way</a></strong> to allow you to absorb the underlying ideas and concepts more quickly.</p><p>Have a look at the new to-the-point write-up here. If you are looking for the <strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fscope-deep-dive%2F">deep-dive version of the SCOPE model</a></strong>, then this post is for you.</p><p>Let me know what you think! I appreciate your feedback. I have so many more interesting study findings, and I will share more about them with you soon.</p><h2>Interesting Reads</h2><p><strong><a href="iframe.php?url=https%3A%2F%2Fwww.adaptivecapacitylabs.com%2F2026%2F08%2F24%2Fthere-is-more-to-code-review-than-automatable-detection%2F">There is more to code review than automated detection</a></strong> by John Allspaw: In this post, John looks at an unpublished paper that argues that code review can be completely replaced by LLMs, and shows several functions of code review that cannot be replaced by a machine. He argues that code review is also a <strong>coordination</strong>, a <strong>sensemaking</strong>, and a <strong>governance</strong> process, and I could not agree more.</p><p><strong><a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DChPn3ftULWE">Whiteboard - An Open Source IDE</a>:</strong> I came across this open-source tool that focuses on building a place where humans and agents can architect software together. What is cool is that you can read explanations of the code while also being able to look at the code at the same time. In my opinion, it is an excellent way to review, understand, and think about your software together with developer peers, while having the code at your fingertips, but not at the forefront.<br></p><p>Well, that is it for now. If you read the SCOPE article, <strong>please send me your thoughts! I really appreciate them. </strong><br><br>Michaela</p><p><em>Written by me, not by AI.</em></p><blockquote><p>Want to go deeper on code reviews?<br>Find practical guides, workshops, and resources at <strong>awesomecodereviews.com</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Awesome Code Reviews! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div></blockquote>]]></content:encoded></item><item><title><![CDATA[Rethinking Code Review for Agentic Development]]></title><description><![CDATA[Introducing SCOPE: A new Code Review Model]]></description><link>https://codereviews.substack.com/p/rethinking-code-review-for-agentic</link><guid isPermaLink="false">https://codereviews.substack.com/p/rethinking-code-review-for-agentic</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Fri, 14 Aug 2026 10:31:45 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DRQa%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been thinking a lot about what code review should look like when coding agents take over a substantial part of implementation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DRQa%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DRQa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 424w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 848w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 1272w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DRQa%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png" width="1456" height="1107" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1107,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:753939,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://codereviews.substack.com/i/211148996?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DRQa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 424w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 848w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 1272w, https://substackcdn.com/image/fetch/$s_!DRQa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72203f5-477a-4cce-8e05-e01b43e23a8e_2400x1824.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcode-review-is-under-strain%2F">AI-generated code comes with many challenges</a>. Giving up on code review could be one option, but only if agents really become that good that we would never ever have to look at code anymore. Right now, although GenAI is bafflingly good at times, we are far from this. Architectural drift, wrong intent, introduced technical debt, plainly wrong code, and major incidents are all likely if you let your agents loose without strong oversight.</p><p>Yet, the role of code has definitely already shifted. I see it in my own work, but also when working with engineering teams or conducting research interviews. Engineers work at a higher level of abstraction for more of their time. But not always.</p><p>Because of all those shifts, I do believe we have to redesign code reviews to adapt to those changes, and so I started working on a new code review model. I call it <strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fscope%2F">SCOPE: Staged Code Oversight with Proportional Escalation</a>.</strong></p><h2>The basic idea behind SCOPE</h2><p>SCOPE goes from code review to code oversight. It shifts from a pure peer practice to a multi-stage practice, where everyone involved has a clear role and accountability. And the amount of code review and oversight increases or decreases depending on understanding needs, risk, and the assurance already established.</p><p>Sounds complicated? Only until you get the hang of it.</p><p>In a nutshell, SCOPE has three stages, each with a different focus:</p><p><strong>Agent Review &#8594; Developer Review &#8594; Peer Review</strong></p><h3>1. Agent Review</h3><p>Before asking another developer to inspect generated code, we should use automation as much as reasonably possible.</p><p>That includes traditional checks such as tests, static analysis, linters, and security tooling, but increasingly also <strong>AI-based reviewers</strong> that can inspect changes, identify suspicious areas, compare an implementation against its intent, or challenge the producing agent.</p><p>But successful automation is not proof that a change is correct.</p><p>The important question is what evidence these systems have produced, how trustworthy that evidence is, and how much confidence it should give us for this particular change.</p><h3>2. Developer Review</h3><p>The <strong>first human reviewer</strong> in SCOPE is usually the developer who has been steering the agent or has adopted the agent's work.</p><p>The steering developer must inspect the work deeply enough to take it over as their own.</p><p>This does not necessarily mean reading every generated line with the same level of attention. How deeply the developer needs to inspect the implementation depends on what we are changing, how difficult it is to understand, what could happen if we are wrong, and how much confidence we can reasonably place in the evidence already available.</p><h3>3. Peer Review</h3><p>Peers then provide something the steering developer and their agents cannot provide by themselves: an independent perspective.</p><p>They can challenge assumptions, notice implications the developer missed, bring knowledge from other parts of the system, and build enough understanding of important changes to maintain shared knowledge within the team.</p><p>Peers don&#8217;t redo the code review from stages 1 and 2. Their involvement again depends heavily on risk, understanding needs, and established assurance.</p><p>This could mean that for some changes, the peers only look at the rationale, the available evidence, and important decisions. For other changes, they might perform a detailed code review for selected parts of the change.</p><h3>Proportional Escalation</h3><p>This change in focus and depth is reflected in the <strong>proportional escalation part</strong> of SCOPE and is also the heart of SCOPE.</p><p><strong>Proportional escalation means concentrating human attention where risk, understanding needs, or insufficient assurance</strong> make independent scrutiny most valuable, rather than reviewing every change and every line of code equally deeply.</p><p>Escalation in SCOPE is not limited to reviewing more code. It can also mean involving additional or more specialized reviewers, breaking work into smaller reviewable steps, or adding earlier review points before implementation proceeds.</p><p>You can read the <a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fscope-code-review-operating-model%2F">more detailed version of SCOPE here</a>.</p><h2>Feedback on SCOPE</h2><p>SCOPE is a candidate model. This means I am actively asking for feedback, and I&#8217;m also conducting a study to better understand its strengths and weaknesses, its limitations, and where it fits, or does not fit, different industry settings.</p><p>And I would really appreciate your feedback. I&#8217;d love to hear which parts resonate with you, how it would or would not fit your team&#8217;s software development life cycle, whether parts seem difficult to apply in practice, or which limitations you see. You can send me an email or use the <a href="iframe.php?url=https%3A%2F%2Fforms.gle%2FkZfGSwHGieV2nziz8">short survey linked</a> in the article.</p><h2>Interesting Reads</h2><ul><li><p><strong>Model-Based Agentic Software Engineering (MAGE), by James C. Davis: </strong>James reached out to me because of SCOPE and shared with me his <a href="iframe.php?url=https%3A%2F%2Fdavisjam.medium.com%2Fmodel-based-agentic-software-engineering-mage-856c2bf22e45">introduction to MAGE</a> and an extensive <a href="iframe.php?url=https%3A%2F%2Fdavisjam.github.io%2Fmodel-based-agentic-software-engineering%2Fbook%2Findex.html">online book</a> about model-based agentic SE. One of his central arguments is that as implementation becomes cheaper, engineering judgment becomes comparatively scarcer. MAGE puts a strong focus on making engineering knowledge and intent explicit through models, and on turning recurring obligations into constraints, validators, gates, and other mechanisms that can be evaluated independently of the agent producing the code. This distinction between producing work and establishing sufficient confidence in the work is also important in SCOPE. I see the developments around safeguards and harnesses for agents going in a similar direction to MAGE. </p></li><li><p><strong>From Code Review to Code Critique by Chandra Maddila et al.:</strong> In this <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2607.29516">recent preprint</a>, they show an interesting mismatch between what human reviewers focus on and what current AI reviewers tend to comment on. Their automated solution tries to infer the intent behind a change, detect whether the implementation has drifted from that intent, and identify a small number of regions in the diff that most deserve human attention. This is important for code review, because, as human attention becomes a scarce resource, it&#8217;s less about whether we review all code and more about deciding where human attention has the highest value. </p></li><li><p><strong>Code Review Tool "Ref Plans&#8221;:</strong> New tools for code review are appearing everywhere. Many of them are still experimental, so I normally don&#8217;t write much about individual tools. But <a href="iframe.php?url=https%3A%2F%2Fref.tools%2F">Ref Plans</a> caught my attention because it moves part of the review process earlier. The idea is simple: review the plan before the diff. Of course, reviewing specifications, designs, and implementation plans is not a new concept. Many organizations already do this for larger changes. What I find interesting here is that the tool applies this idea directly to the new developer-agent workflow.</p></li></ul><p></p><p>Well, that is it for now. If you read the SCOPE article, <strong>please send me your thoughts! I really appreciate them.</strong><br><br><span>Michaela</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><blockquote><p>Want to go deeper on code reviews?<br>Find practical guides, workshops, and resources at <strong>awesomecodereviews.com</strong>.</p></blockquote>]]></content:encoded></item><item><title><![CDATA[A new course: Code Reviews in the AI Era]]></title><description><![CDATA[Research, an AI Code Review Course Offer, improved Website and Interesting Reads]]></description><link>https://codereviews.substack.com/p/a-new-course-code-reviews-in-the</link><guid isPermaLink="false">https://codereviews.substack.com/p/a-new-course-code-reviews-in-the</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Wed, 29 Jul 2026 11:43:45 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WJ9x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone,</p><p>Over the last half-year, I have become deeply involved in code review research again. I have studied code review for many years, but agentic programming is changing some of its underlying assumptions. Code can now be produced at a speed and volume that was previously impossible, while the human capacity to understand, verify, and take responsibility for it has not increased at the same rate.</p><p>This raises questions that I find genuinely fascinating: Which parts of traditional code review still serve us well? Where is the process beginning to break down? And how can teams preserve quality and shared understanding without turning human review into the bottleneck for every AI-generated change?</p><p>These questions led me to work on a new code review operating model, and I'm currently engaging with several companies to evaluate, refine and improve it. </p><p>I will share what I learn along the way. There may also be opportunities for teams and individual developers to participate in the research, and I will provide more information about that soon.</p><h2>A new course: Code Reviews in the AI Era</h2><p>This research is also shaping a new course I am developing on code reviews in the AI era. The goal is to translate this emerging model into practical and actionable guidance for teams.</p><p>The course will explore how teams can benefit from AI-assisted and agentic development without giving up the quality, shared understanding, and responsible engineering decisions that code review is meant to support.</p><p><strong>You can <a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2F%23course-sign-up">sign up on Awesome Code Reviews</a> to be notified</strong> when the first materials become available. Many of the resources will be free, with optional paid material for individuals and teams who want to go deeper.</p><h2>An Awesome Code Reviews Makeover</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WJ9x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WJ9x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 424w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 848w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 1272w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WJ9x%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png" width="1456" height="992" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:992,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2991881,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://codereviews.substack.com/i/208953663?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WJ9x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 424w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 848w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 1272w, https://substackcdn.com/image/fetch/$s_!WJ9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72c075b1-cd3b-4c53-b0c2-6a774312daab_2506x1708.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I also took on a big endeavour: I redesigned and reorganised <strong><a href="iframe.php?url=https%3A%2F%2Fawesomecodereviews.com">awesomecodereviews.com</a>.</strong></p><p>I refreshed many of the existing articles (and I am still working through others), improved the navigation, and started transforming the site into a <strong>proper knowledge hub that has a large collection of free resources to improve code reviews.</strong></p><p>The previous version contained a lot of valuable material, but it had become difficult to explore, and some of the material was rather outdated.</p><p>The new structure should make it easier to find practical guidance, research, and learning resources depending on what you want to understand or improve.</p><p>It will also become the main place where I share my current work on how agentic programming is changing code review. I already have several new articles in the pipeline, including the deeper pieces on <strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcodereview-surrender-exploitation%2F">code review surrender</a></strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcodereview-surrender-exploitation%2F"> and </a><strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcodereview-surrender-exploitation%2F">code review exploitation</a></strong>, the concepts I outlined <a href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2Fwhen-agentic-coding-breaks-code-review">in the last issue</a>. Since I started talking about these ideas, several developers and engineering leaders have told me they recognise these patterns from their own work. </p><p>I would be very happy if you <a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2F">had a look at the knowledge hub</a> and let me know what you think!</p><h2><strong>Interesting resources</strong></h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.blog%2Fai-and-ml%2Fgithub-copilot%2Fbetter-tools-made-copilot-code-review-worse-heres-how-we-actually-improved-it%2F">Better tools made Copilot code review worse</a> by GitHub: This article talks about migrating Copilot code review to new repository-exploration tools. Surprisingly, the supposedly better tools initially increased costs while causing the reviewer to detect fewer useful issues. The agent explored the repository too broadly instead of investigating the change itself. GitHub improved the results by redesigning the instructions around a review-specific workflow: start with the diff, formulate concrete review questions, and retrieve only the evidence needed to answer them.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fannievella.com%2Fposts%2Fthe-productivity-experience-paradox%2F">The Productivity-Experience Paradox</a> by Annie Vella: Annie describes an interesting tension arising with GenAI: developers may feel more productive while parts of their developer experience, especially flow, gradually deteriorate. She also raises a deeper concern that AI could erode some of the joy, craft, and lived experience of being a software engineer. I personally experience this differently. For me, there has probably never been a more exciting time to be a software engineer. I enjoy the new possibilities enormously. At the same time, I see many of the problems Annie identifies. Increased output does not automatically mean better work, better systems, or a better experience for the humans responsible for them. Her article offers a thoughtful perspective on that tension.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ftechleadjournal.dev%2Fepisodes%2F264%2F">From Technical Debt to Triple Debt</a> by Tech Lead Journal with Margaret-Anne Storey: This podcast explores what happens when teams produce software faster while gradually losing their understanding of the system and the reasoning behind important decisions. The episode also covers cognitive surrender, developer fatigue when supervising agents, and the idea of introducing deliberate &#8220;strategic friction&#8221; to preserve understanding. These questions are closely connected to the challenges I am currently exploring around code review: who understands a change, who verifies it, and where responsibility sits when much of the implementation was produced by an agent.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.ministryoftesting.com%2Fevents%2Fmotacon-2026">MoTaCon 2026</a> is around the corner: Finally, I just saw what my friend Rosie Sherry and the Ministry of Testing community are putting together for <strong>MoTaCon 2026</strong>. MoTaCon takes place on <strong>1 October 2026 at the Brighton Dome</strong> and covers quality engineering, AI, leadership, product, accessibility, and security. One particularly interesting aspect is that attendance is included with an active Professional, Team, or Unlimited Ministry of Testing membership. Instead of purchasing a separate conference ticket, members can register for the event while also receiving the other membership benefits.</p></li></ul><p><span>As always, </span><strong>please feel free to reach out to me!</strong><span> I love to engage with people over my content and to hear your perspectives and ideas!</span></p><p>Best,<br>Michaela</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><blockquote><p>Want to go deeper on code reviews?<br>Find practical guides, workshops, and resources at <strong>awesomecodereviews.com</strong>.</p></blockquote>]]></content:encoded></item><item><title><![CDATA[When Agentic Coding Breaks Code Review]]></title><description><![CDATA[Understanding two code review failure modes: code review surrender and exploitation]]></description><link>https://codereviews.substack.com/p/when-agentic-coding-breaks-code-review</link><guid isPermaLink="false">https://codereviews.substack.com/p/when-agentic-coding-breaks-code-review</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Tue, 07 Jul 2026 08:59:00 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%210t06%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been working with developers and organizations to improve their code review practices for over 10 years now. <a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcodereview-surrender-exploitation%2F">In a new post, I share two phenomena</a> I see emerging with the increased use of agentic programming: <strong>code review surrender</strong> and <strong>code review exploitation.</strong></p><p><strong>Code review surrender is a capacity failure.</strong> Reviewers still believe review matters, but cannot keep up with the growing volume, pace, and cognitive demands of agentic code changes. Reviews become delayed, superficial, skipped, or quietly abandoned.</p><p><strong>Code review exploitation is a responsibility failure.</strong> Reviewers become, or feel like, the first serious validators of a change because author-side verification is absent, invisible, or difficult to trust.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%210t06%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0t06!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!0t06!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!0t06!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!0t06!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%210t06%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1392027,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://codereviews.substack.com/i/205732120?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0t06!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!0t06!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!0t06!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!0t06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bac14b0-a1ff-44d9-bc7b-0366e457ca0c_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Both phenomena are related, but they are not the same problem.</p><p>Surrender is not a moral failure by authors or reviewers. It can happen even in strong teams with responsible engineers. But simply removing review because the queue is unmanageable is not transformation.</p><p>Exploitation is not necessarily a malicious activity. Sometimes it is caused by an inexperienced or non-technical author who creates a heavy review burden by using GenAI. The feeling of exploitation can also be aggravated by a team or company culture that values code production more than quality assurance.</p><p>You can deep dive into both <a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fcodereview-surrender-exploitation%2F">failure modes in this new post</a>. </p><h2><strong>Cognitive Debt in GenAI Driven Development</strong></h2><p>Another topic I'm actively working on is Cognitive Debt. Cognitive Debt was described by Margaret-Anne Storey as: &#8220;the accumulated gap between a system&#8217;s evolving structure and a team&#8217;s shared understanding of how and why that system works and can be changed over time.&#8221;</p><p>Over the last 4 months, I have been doing an experiment where I&#8217;m developing a software system with the help of GenAI while not looking at the code. Agents do all the work, and I try to explain and design the system with natural language via prompts and specifications. I built harnesses, made sure the agents have good instructions, skills, and feedback loops that give them insights into the system&#8217;s quality, such as tech debt.</p><p>And I&#8217;m feeling how cognitive debt builds up. The way I specify and the way the system and implementation turn out are not completely aligned. I can&#8217;t tell for sure how they diverge because I&#8217;m not looking at the code. But I know. I see it in failures, in behaviors that are not intended, even in files that are touched during a change.</p><p>Yes, maybe the problem is that I&#8217;m a bad specifier, but I ask: who is not? Haven&#8217;t engineers struggled with specifying for as long as I can think? Haven&#8217;t we started to work iteratively because thinking through everything upfront is just super hard, or at least for me, it is almost mission impossible?</p><p>I&#8217;m currently in the process of writing up my experience with this experiment. And I&#8217;m also looking more closely at how teams and engineers experience cognitive debt especially in the absence of code reviews.</p><p>If you want to share your experience with me, please get in touch or just write to me at <a href="iframe.php?url=mailto%3Amichaela%40michaelagreiler.com">michaela@michaelagreiler.com</a>.</p><h2>Interesting resources  </h2><ul><li><p><strong><a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DaLH3Pa_yzWs">The high cost of AI immaturity</a> </strong>by LeadDev: Recently, I was on a panel to talk about AI adoption and especially the dos and don'ts when it comes to adopting AI. It was an interesting discussion, and we touched on the topic of code reviews (starting at 17:15), where I briefly share my current thinking around code reviews. I talk about the agent-dev review cycle, AI reviews, and why slowing down is not always a bad thing.</p></li><li><p><strong><a href="iframe.php?url=https%3A%2F%2Faddyo.substack.com%2Fp%2Fagentic-code-review">Agentic Code Review</a></strong> by Addy Osmani: Addy writes about the problem we all face: human capacity is limited, and code review is now the bottleneck because the hard part of engineering has moved to verification. He gives some practical tips, such as using risk to know where to spend human attention, keeping code changes small, reviewing tests more carefully than code, and ensuring that humans are still held responsible for the changes.</p></li><li><p><strong>Just One More Prompt</strong> by Leif Singer: Leif talks about how working with LLMs can make you "addicted" to one more prompt. But he also touches on cognitive debt. He makes the link that, as building is now so easy and so fun, he builds more, faster. But really engaging with the problem, taking the time to build a mental model, that is still hard. And as building is easier and gives you more dopamine, we might just build new stuff, create more code, instead of really understanding or polishing what we already have. Relatable?</p></li></ul><p></p><p>Well, that is it for now. I&#8217;m currently also writing a large piece about my view on code reviews, and I hope I can share it with you soon.</p><p>As always, <strong>please feel free to reach out to me!</strong> I love to engage with people over my content and to hear your perspectives and ideas!<br><br><span>Michaela</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p></p><blockquote><p>Want to go deeper on code reviews?<br>Find practical guides, workshops, and resources at <strong>awesomecodereviews.com</strong>.</p></blockquote><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[What 40 SE Researchers Talk About When They Talk About AI]]></title><description><![CDATA[Symposium on Human-Centered AI Adoption]]></description><link>https://codereviews.substack.com/p/what-40-se-researchers-talk-about</link><guid isPermaLink="false">https://codereviews.substack.com/p/what-40-se-researchers-talk-about</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Tue, 19 May 2026 08:40:02 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29475d2d-9658-4db3-90a3-b06fd9d68712_2048x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In May, I was invited to join about 40 leading software engineering researchers from academia and industry at Aalborg University in Copenhagen for the 3rd Copenhagen Symposium on Human-Centered AI Adoption in Software Engineering, organized by Prof. Daniel Russo.</p><p>For three days, we talked about how AI is actually changing software engineering, and what is relevant to understand, explore, and study.</p><p>For me, one of the best parts was reconnecting with previous colleagues and meeting many new inspiring people &#8212; all world-leading researchers. What better place to listen, learn, and discuss.</p><p>I had great conversations about the future of the developer profession, developer identity and new career paths, and how we prepare students and junior developers. Of course, we also discussed research insights and empirical findings on AI&#8217;s impact on software quality, testing, and code reviews.</p><p>Another topic that kept coming up was cognitive debt and intent debt, and how teams struggle to understand the systems they build when more and more code is AI-generated.</p><p>I wrote down the discussions that interested me most in this blog post called: <strong><a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fresearch-discussions-about-ai%2F">What 40 Software Engineering Researchers Talk About When They Talk About AI.</a></strong> </p><h2>Reads of the Month:</h2><p><strong><a href="iframe.php?url=https%3A%2F%2Fadamtornhill.substack.com%2Fp%2Fcoding-is-dead-but-it-still-smells">Coding Is Dead (&#8230;But It Still Smells Funny)</a> by Adam Tornhill:</strong> I met Adam during my trip to Copenhagen and talked with him about the future of software engineering. He pointed me towards his article, where he argues that yes, AI fundamentally changes our roles as developers, but writing software, especially production-ready software, won&#8217;t become trivial because of this. Yes, generating prototypes is now easy, but maintaining reliable, evolving production systems remains hard. He also demoed CodeScene and showed empirical results indicating that code quality impacts AI performance: high-quality code leads to better AI-generated code and also reduces the tokens you spend. His advice: improve your codebase health before using AI to generate more code. You can even use AI to improve the codebase first, but make sure AI knows what &#8220;better" means, for example through concrete measurements.</p><p><strong><a href="iframe.php?url=https%3A%2F%2Fclaude.com%2Fblog%2Fhow-claude-code-works-in-large-codebases-best-practices-and-where-to-start">How Claude Code works in large codebases</a></strong> <strong>by Anthropic:</strong> This week, Anthropic published an excellent piece about how to make Claude Code work for large codebases. While it is specific to Claude, some of the pain points and misconceptions, as well as the strategies, are applicable to other setups as well. The main point of the article is that the performance you see does not solely depend on the underlying model, but is significantly influenced by the &#8220;harness&#8221;: that could be <code>CLAUDE.md</code>, <code>AGENTS.md</code>, or <code>GEMINI.md</code> files; hooks; skills; plugins; MCP servers; LSP integrations; and so on. What was also clear from the article is that configuring and working with AI is not trivial, and current best practices are changing constantly. What worked well three months ago could now negatively impact your experience.</p><p><strong><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fgithub%2Fspec-kit">Spec Kit: Build high-quality software faster</a> by Github: </strong>GitHub&#8217;s Spec Kit is an open-source toolkit for &#8220;spec-driven development,&#8221; where specifications become the central artifact that guides and generates implementation work, instead of being discarded once coding starts. The workflow starts by defining project principles, then writing a feature spec, creating a technical plan, breaking it into tasks, and letting an AI coding agent implement those tasks. It provides CLI tooling and agent commands, and is meant to reduce vague &#8220;vibe coding&#8221; by forcing clearer requirements, decisions, tasks, and validation before code generation.</p><p></p><h2><a href="iframe.php?url=https%3A%2F%2Fleaddev.com%2Fevent%2Flevel-up-your-ai-maturity">LeadDev Panel: &#8220;The high cost of AI immaturity&#8221;</a></h2><p>I&#8217;m excited to share that I&#8217;ll be joining LeadDev&#8217;s panel to discuss how engineering leaders can assess where their organizations are on the AI adoption journey and move from experimentation toward disciplined, scalable use. The conversation will focus on practical questions around readiness, governance, and where AI can realistically support engineering work today.<br>It takes place on Wednesday, <strong>27 May 2026 at 14:00 Central European Summer Time</strong></p><p><strong><a href="iframe.php?url=https%3A%2F%2Fleaddev.com%2Fevent%2Flevel-up-your-ai-maturity">Find more information here.</a></strong><br><br>That's it for this month!<br>Let me know your thoughts about AI!<br>Michaela</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><blockquote><p>Want to go deeper on code reviews?<br>Find practical guides, workshops, and resources at <strong><a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2F">awesomecodereviews.com</a></strong>.</p></blockquote>]]></content:encoded></item><item><title><![CDATA[AI-Assisted Code Review]]></title><description><![CDATA[Can Copilot automatically review our code?]]></description><link>https://codereviews.substack.com/p/ai-assisted-code-review</link><guid isPermaLink="false">https://codereviews.substack.com/p/ai-assisted-code-review</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Fri, 22 Nov 2024 16:06:47 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6eab2-692b-4a10-935a-201753d73104_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been using GitHub Copilot since its technical preview a few years ago. For a long time, it wasn&#8217;t quite ready for automatic code reviews. But things have changed. Thus, I wrote a detailed blog post exploring Copilot&#8217;s ability to assist with automated code reviews.</p><p>In the post, I dive into how GitHub Copilot supports developers during code reviews by offering explanations, suggesting improvements, and answering questions. I also showcase how Copilot works within the IDE, highlighting the new &#8220;Review and Comment&#8221; functionality, which enables a guided and structured review experience. Additionally, I examine Copilot&#8217;s beta feature for reviewing pull requests directly on GitHub, demonstrating how it can enhance the PR review process.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p><br>Here are four key insights from the article:<br><br><strong>1) Use Copilot in the IDE for self-reviews.</strong><br>Copilot shines in IDEs like Visual Studio Code, helping you iteratively improve your code before submitting a PR. The new Review and Comment feature enables structured and guided code reviews, highlighting changes line by line with detailed explanations. It&#8217;s a powerful companion for self-reviews and error detection.<br><br><strong>2) Be cautious with AI suggestions.</strong><br>While Copilot enhances code comprehension and suggests solutions, its outputs are based on statistical patterns rather than true understanding. Applying these suggestions requires careful evaluation to avoid broken code and errors. Always critically assess AI-generated feedback before implementing it.<br><br><strong>3) A pull request is too late for AI review.</strong><br>Once your code reaches the code review stage, applying AI-generated improvements is not ideal. Reviewers cannot easily validate these suggestions without deeper investigation, making them impractical unless the changes are obvious to the reviewer.<br><br><strong>4) Many workflows for AI code reviews exist.</strong><br>AI can still assist during PR reviews by answering questions about the code, helping build a mental model of the changes, summarizing the PR, or clarifying potential improvements. While it&#8217;s not a replacement for human judgment, it&#8217;s a valuable tool for specific use cases.<br><br>All in all, I&#8217;m a fan of LLMs and tools like Copilot and their ability to assist developers. These are fantastic technologies that can make us happier and better developers. Yet, we must apply them thoughtfully and stay aware of their limitations.</p><p>If you&#8217;re curious about GitHub Copilot and want a comprehensive walkthrough of its review capabilities&#8212;along with my insights and experiences with AI-assisted review workflows&#8212;be sure to check out the full post: <em><a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Fautomation%2Fcopilot-review%2F">Using GitHub Copilot to Automate Code Reviews</a></em>.<br><br>Cheers, Michaela</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/ai-assisted-code-review?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Awesome Code Reviews! Liked the post? Feel free to share it and show your support.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/ai-assisted-code-review?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2Fai-assisted-code-review%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Managing Code Review Anxiety ]]></title><description><![CDATA[A Guide to Reducing Stress and Improving Feedback]]></description><link>https://codereviews.substack.com/p/managing-code-review-anxiety</link><guid isPermaLink="false">https://codereviews.substack.com/p/managing-code-review-anxiety</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Wed, 16 Oct 2024 08:43:21 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84bfb4f-069c-456e-98b6-d4a57dc45d2a_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Have you ever experienced anxiety around code reviews? If so, you're not alone. Many developers feel nervous or stressed when giving or receiving feedback on their code. This is what Carol Lee, PhD, Kirsten Foster-Marks, and Cat Hicks, PhD call <em><a href="iframe.php?url=https%3A%2F%2Flink.springer.com%2Farticle%2F10.1007%2Fs10664-024-10550-9">Code Review Anxiety</a></em>, and they've written a paper and a comprehensive workbook to help us all manage it more effectively. In this article, I want to give you an overview of the steps it takes to tackle code review anxiety.</p><p><strong>What is Code Review Anxiety?</strong></p><p>Code Review Anxiety is the fear of judgment, criticism, and negative evaluation during code reviews. Whether you&#8217;re the one reviewing or being reviewed, this anxiety can lead to stress and avoidance. Code review anxiety doesn&#8217;t just affect junior developers. Senior developers often face pressure to "live up to" their experience, which can create its own set of challenges and stress.</p><p>While it&#8217;s common to feel nervous, it&#8217;s essential to recognize that code reviews are not meant to be a personal attack but a way to improve and grow as developers.</p><p><strong>Why Managing Code Review Anxiety Matters</strong></p><p>Left unchecked, this anxiety can affect the quality of your code review feedback, how you respond to code review comments, and your willingness to engage in code reviews. Instead of fostering growth and learning, it can lead to frustration, defensiveness, and avoidance&#8212;none of which help anyone. Thus, feeling anxious can have a long-lasting negative effect on your relationships with your colleagues and negatively influence team dynamics and culture.</p><p>That&#8217;s why it&#8217;s crucial to manage code review anxiety. The good news is there are actionable steps you can take to do just that.</p><p><strong>Steps to Manage Code Review Anxiety</strong></p></blockquote><ol><li><p><strong>Create Awareness.</strong> The first step to reducing code review anxiety is being aware of it. Recognize the specific situations that trigger your anxiety. Are you worried about making mistakes or receiving harsh feedback? Once you identify your fears around code reviews, you&#8217;re already on the path to managing them.</p></li><li><p><strong>Reduce Physiological Arousal</strong> When you feel anxious, your body reacts. High cortisol levels, rapid breathing, and muscle tension are common responses to stress. To counter this, it&#8217;s important to calm your body. Simple techniques like deep breathing, muscle relaxation, or a workout (hello, jumping jacks!) can help you lower stress and regain a sense of calm before a review.</p></li><li><p><strong>Challenge Biased Thinking</strong> What beliefs do you have about yourself or your colleagues that increase your anxiety around code reviews? Maybe you think you&#8217;re not skilled enough or that others will judge you harshly. These are often biased or exaggerated thoughts like "I'm not good enough.". By acknowledging them and challenging their validity, you can see them for what they are&#8212;unfounded fears.</p></li><li><p><strong>Replace Negative Thoughts with Balanced Ones</strong> Once you&#8217;ve identified negative thoughts, replace them with more realistic and balanced ones. For instance, if you&#8217;re thinking, &#8220;I&#8217;m not good enough,&#8221; challenge it by asking, &#8220;Good enough for what?&#8221; "Good enough to do your job?!" Very likely, you are good enough to do your job. So, a better thought might be, &#8220;I&#8217;m learning and improving with each review,&#8221; which is both true and empowering.</p></li><li><p><strong>Proactively Engage in Code Reviews</strong> After you have gone through all the other steps, it's time to do more code reviews. Yes, you read that right. One of the best ways to overcome fear is by facing it. The more you avoid code reviews, the more anxiety grows. Instead, proactively engage in them. Ask for feedback and be specific about what kind of input you&#8217;re looking for. When giving feedback, don&#8217;t shy away from making suggestions, but ensure you do it <a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Frespectful-constructive-code-review-feedback%2F">respectfully and constructively</a>.</p></li></ol><blockquote><p><strong>Why This Process Works</strong></p><p>Each step plays a role in gradually reducing the anxiety associated with code reviews. By being aware of your fears, reducing their physical impact, challenging negative thoughts, and proactively engaging in reviews, you build resilience and confidence. Over time, this reduces the stress you associate with code reviews and transforms them into a productive, learning-oriented process.</p><p><strong>Take Control of Your Code Review Experience</strong></p><p>Remember, nobody is perfect, and mistakes are part of the learning process. The key is to approach code reviews with a growth mindset and see them as opportunities for development, not judgment.</p><p>Want to learn more about managing code review anxiety? Carol Lee and Kirsten Foster-Marks have explained everything in great detail in their <a href="iframe.php?url=https%3A%2F%2Fdeveloper-success-lab.gitbook.io%2Fcode-review-anxiety-workbook-1">code review anxiety workbook</a>.</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Awesome Code Reviews! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Measure Developer Experience Using Surveys]]></title><description><![CDATA[Your step-by-step guide to measure DevEx using Surveys.]]></description><link>https://codereviews.substack.com/p/measure-developer-experience-using</link><guid isPermaLink="false">https://codereviews.substack.com/p/measure-developer-experience-using</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Mon, 17 Jun 2024 09:45:17 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F686a8fbf-46c5-47e1-a6ee-2e3198bfbafd_1792x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Developer experience has been directly <a href="iframe.php?url=https%3A%2F%2Fdl.acm.org%2Fdoi%2F10.1145%2F3639443">linked to the performance and productivity outcomes of developers</a>, teams, and organizations. In addition, we could also show a clear relationship between higher developer experience and a higher degree of innovation, creativity, and learning. Better developer experience also means less tech debt and better code quality. All in all, it's understandable that teams and organizations want to improve the developer experience. But to do so, we first have to measure it.</p><p>For that, surveys are an excellent tool of choice. A good, solid survey provides you with reliable and insightful data.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Awesome Code Reviews! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>But how exactly do you measure developer experience using a survey?</strong> </p><p>After my talk at <a href="iframe.php?url=https%3A%2F%2Fgotoams.nl%2F2024%2Fsessions%2F3167%2Ftransforming-developer-experience-a-tale-of-recovery-and-innovation">GOTO Amsterdam about improving developer experience</a>, many developers approached me, wanting to learn how to design such a developer experience survey and which questions they should ask. </p><p>So, let me give you a step-by-step guide on designing and running a DevEx survey:<br></p><h2>Developer Experience Survey: Step-by-Step Guide</h2><ol><li><p><strong>Define the Survey Goal/Focus</strong>   <br>First, you have to settle on the aspects or factors you want to measure. Our <a href="iframe.php?url=https%3A%2F%2Fieeexplore.ieee.org%2Fdocument%2F9785882">grounded theory study on DevEx</a> identified 26 factors that influence developer experience. While we identified a large range of factors, you do not necessarily have to measure all of them, especially not all of them at once. You can make a selection based on your current understanding of your developer experience. For example, if you know code reviews and tech debt are a big headache, you might focus more on factors that cover those areas, such as communication, knowledge sharing, deadlines, or factors that have to do with tooling.</p></li><li><p><strong>Question Design <br></strong>In the next step, you formulate questions or statements based on the factors you selected. You also have to decide which scale to use. When designing the survey, keep simplicity and clarity at the forefront of your thoughts. You have to use closed-ended questions, like Likert scale questions if you want to derive indexes or measure the change in developer experience over time. Open-ended questions are a wonderful and rich instrument for gaining a deeper understanding of what is going on. Analyzing and understanding open-ended questions takes more effort, though.</p></li><li><p><strong>Piloting Your Survey</strong><br>Before running your survey within the whole department or company, you have to conduct a pilot test with a small, representative sample of your audience. From this pilot, you want to get as much feedback as possible: did the participant interpret the questions as you intended? Were questions ambiguous or unclear?  How about the length of the survey?</p></li><li><p><strong>Running the Survey</strong><br>Once you have updated the survey, you can run it with all the developers you want to participate. For that, you have to find a tool that allows for smooth data collection and, ideally, also analysis. Common choices are tools such as Google Forms, SurveyMonkey, Culture Amp, Lattice, or Officevibe.</p></li><li><p><strong>Data Analysis and Interpretation</strong><br>As a first step, you have to prepare and clean the data. This includes handling missing data, outliers, or inconsistencies. For open-ended questions, you need to code the responses. Then, you can use descriptive analysis, such as summary statistics or frequency distributions, to get a first picture of the outcomes and results. If you have a skilled Analyst next to you, you can also dive into inferential analysis, such as hypothesis testing, correlations, or regressions. Finally, you have to make sense of all the results and interpret them based on the context and circumstances at your company. </p></li><li><p><strong>Continuous Improvement</strong><br>Many companies like Google, LinkedIn, or Shopify run developer satisfaction, happiness, or experience surveys. One thing all of those companies have in common is the need to continuously improve and adapt their surveys to make them more reliable and valid, as well as to keep them up with the changes in technology, engineering practices, and processes. </p></li></ol><h2><br><strong>Concrete Surveys to Measure Developer Experience</strong></h2><p>Let's look at some concrete examples of developer experience surveys. I'll show you two types of Developer Experience surveys. to show the diversity in questions that you can ask, and also to inspire you for your own developer experience survey.</p><h2><strong>Developer Experience Survey based on three DevEx Dimensions</strong></h2><p>For our study of the impact of developer experience on outcomes such as innovation or productivity, we measure three dimensions of developer experience that have proven to be very relevant in practice:</p><ol><li><p><strong>Flow state,</strong></p></li><li><p><strong>Feedback loops,</strong></p></li><li><p><strong>Cognitive load.</strong> </p></li></ol><p>Here are the questions that we developed and used:</p><p><strong>Flow state:</strong></p><ul><li><p>I have a significant amount of time for deep work in my work days.</p></li><li><p>In a typical week, how often are you interrupted to work on something else that was unplanned or suddenly requested?</p></li><li><p>Generally speaking, the coding tasks I work on are more engaging than boring</p></li></ul><p> <strong>Feedback loops:</strong></p><ul><li><p>How often does it take more than 10 minutes to obtain an answer to an internal technical question (i.e., about code, a system, or the domain you are using)?</p></li><li><p>Approximately what percentage of the code reviews you request are completed within four business hours?</p></li></ul><p><strong>Cognitive load:</strong></p><ul><li><p>For the primary team you work on, how would you rate the ease of deploying changes?</p></li><li><p>How often can you easily understand the code you work with?</p></li><li><p>In general, the processes I need to follow to do my work are easy for me to figure out.</p></li><li><p>In general, the developer tools I have are intuitive and easy to use.<br></p></li></ul><p>The questions we used to measure developer experience were either previously validated in the literature or developed and refined over time with expert input. You can look up the origin of each question in the paper. </p><h2><br><strong>Atlassian's Developer Experience Survey</strong></h2><p>Atlassian has a different angle from which to measure DevEx. They use <a href="iframe.php?url=https%3A%2F%2Fwww.atlassian.com%2Fteam-playbook%2Fplays%2Fdevex-survey">eight signs to measure developer experience</a>: </p><ol><li><p>Sustainable speed for shipping</p></li><li><p>Waiting time</p></li><li><p>Execution independence</p></li><li><p>Ways of working</p></li><li><p>External standards</p></li><li><p>Maintenance</p></li><li><p>Onboarding</p></li><li><p>Developer satisfaction</p></li></ol><p>For each vital sign, they recommend to ask about the developers satisfaction, and their perceived importance of this sign. <br></p><p>This is the example survey including questions for each sign from their playbook:</p><p><strong>Sustainable speed to ship</strong></p><ul><li><p>How important is shipping high-quality code sustainably for your team?</p></li><li><p>How satisfied are you with your team&#8217;s ability to ship high-quality code sustainably?</p></li></ul><p><strong>Waiting time</strong></p><ul><li><p>How important is minimizing waiting time to your productivity?</p></li><li><p>How satisfied are you with the amount of developer waiting time on your team?</p></li></ul><p><strong>Execution independence</strong></p><ul><li><p>How important do you consider your team's ability to deliver independently of other teams?</p></li><li><p>How satisfied are you with your team's delivery independence?</p></li></ul><p><strong>Ways of working</strong></p><ul><li><p>How important is it for your team to discover and onboard new ways of working, including tools, processes, and practices?</p></li><li><p>How satisfied are you with your team&#8217;s ability to discover and onboard a new way of working, including tools, processes, and practices?</p></li></ul><p><strong>External standards</strong></p><ul><li><p>How important to your productivity is the amount of maintenance or platform work it takes to meet the externally generated company standards your team owns?</p></li><li><p>How satisfied are you with the amount of maintenance or platform work it takes to meet the externally generated company standards your team owns?</p></li></ul><p><strong>Maintenance</strong></p><ul><li><p>How important to your productivity is the amount of effort required of you to maintain your team&#8217;s standards with regard to code, tools, and pipelines?</p></li><li><p>How satisfied are you with the amount of effort required for code, tools, and pipeline maintenance?</p></li></ul><p><strong>Onboarding</strong></p><ul><li><p>How important to your productivity is the amount of time it takes new hires or internal transfers to become effective on your team?</p></li><li><p>How satisfied are you with the amount of time it takes new hires or internal transfers to become effective on your team?</p></li></ul><p><strong>Developer satisfaction</strong></p><ul><li><p>How important is your satisfaction to your productivity?</p></li><li><p>How satisfied are you with your team's developer productivity?</p></li></ul><p></p><h2><strong>Survey Design Pitfalls</strong></h2><p>As you see from the two examples, your developer experience survey can contain different questions and cover different factors. Yet, not every question is a good question to ask. Some survey instruments are more reliable than others.  Common mistakes people make when designing their own survey include using leading questions, subjective or ambiguous terminology, or designing a too-long and/or boring survey.<br><br>It's also important to always test your survey with a small set of people first and incorporate their feedback (i.e., piloting the survey). Thoroughly reading about survey design or working with a skilled Survey Designer or Survey Researcher significantly increases your chances of getting reliable and valid data that provides accurate and actionable insights.<br></p><h2><strong>Using a Ready-Made DX Survey Tool</strong></h2><p>Instead of designing your own questionnaire, you can use a <a href="iframe.php?url=https%3A%2F%2Fgetdx.com%2F">tool like DX</a>, which already provides you with a solid set of questions. As DX's main value proposition is to help you measure and improve developer experience, they have a complete team dedicated to ensuring their survey instruments lead to reliable measurements and actionable improvements. Using DX is a great way to get metrics and measurements, even industry benchmarks, out of the box and to quantify your improvements over time. </p><p></p><h2><strong>In-depth Investigations</strong></h2><p>Yet measuring developer experience is not enough to improve it. Once you identify areas of concern, I recommend regularly conducting deep dives into those areas. Here, designing our own survey, running a <a href="iframe.php?url=https%3A%2F%2Fwww.michaelagreiler.com%2Fdeveloper-experience-workshop%2F">developer experience workshop</a>, or shadowing/ interviewing developers can give you rich insights. System data, such as error logs, test logs, commit data, or PR data, can also be an insightful source of information - especially if used in combination with insights coming directly from the developers. Only when you deeply understand the friction points, problems, and challenges developers face can you start to create an improvement plan and take actions that lead to a better developer experience. </p><p></p><p>So, now tell me, do you consider developer experience at your company? How do you measure and/or improve it, and if so?</p><div><hr></div><p>Thanks for reading. If you know someone who might like this newsletter, consider sharing it with them:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Awesome Code Reviews&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2F%3Futm_source%3Dsubstack%26amp%3Butm_medium%3Demail%26amp%3Butm_content%3Dshare%26amp%3Baction%3Dshare"><span>Share Awesome Code Reviews</span></a></p><p><br> Thanks, Michaela</p>]]></content:encoded></item><item><title><![CDATA[10 Best Code Review Techniques]]></title><description><![CDATA[From top-down code reading, over data-flow driven reviews, to cross-referencing.]]></description><link>https://codereviews.substack.com/p/10-best-code-review-techniques</link><guid isPermaLink="false">https://codereviews.substack.com/p/10-best-code-review-techniques</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Thu, 25 Apr 2024 09:58:11 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2Ff_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ae2e59f-c794-472e-a490-e45e5df0be98_873x873.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you ever wondered what the best approach to reviewing code is or whether there is a better, more systematic approach to inspecting new code changes than what you currently do?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/10-best-code-review-techniques?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thank you for reading Awesome Code Reviews. This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/10-best-code-review-techniques?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2F10-best-code-review-techniques%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><p>The fact is that how developers review code vastly differs from developer to developer. Even within the same team, developers rarely use the same approach. Experienced reviewers usually have a pretty systematic way of reviewing code, but it&#8217;s informal, ad hoc, and only in their heads. Yet, many developers, especially juniors or people new to the team, often wonder how to review a particular piece of code.</p><p>Unfortunately, more formal review techniques and approaches aren&#8217;t taught or shared frequently amongst developers. Yet, we can use code reading, code inspection, and even debugging approaches to improve our ad hoc code review technique. When we know about those review techniques, they help us to:</p><ol><li><p>transform and improve our review approach to a more systematic and thorough approach,</p></li><li><p>streamline review approaches amongst developers in the same team or company, ensuring the same thoroughness and review quality, independent of the reviewer, </p></li><li><p>build a shared vocabulary and a shared understanding of code review techniques, which helps us better communicate our approaches to our team members, compare them, and improve them as a team.</p></li></ol><p>That's a pretty cool outcome, right? </p><p>Still, as code review techniques are not widely known, you might wonder what I am referring to. That&#8217;s why I wrote a comprehensive article on different review approaches on my website, <a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Fcode-reading%2Fcode-review-techniques%2F">awesomecodereviews.com</a>.</p><p>The article highlights the following review techniques:</p><ol><li><p><strong>Checklist-based Code Reviews:</strong> Use a checklist to make sure you do not forget what to look for. This is my favorite technique, as it is easy to implement and a very effective review technique.</p></li><li><p><strong>Test-Driven Code Reviews:</strong> Start by reviewing the test cases first. This ensures high-quality test cases and helps with understanding the production code. </p></li><li><p><strong>Bottom-up versus Top-down Code Reading:</strong> You can either start your review with low-level parts, such as single code lines or methods, or with high-level artifacts, such as specifications or tickets. Reviewers typically use both approaches intertwined during reviews. </p></li><li><p><strong>Control-flow versus Data-flow Code Reviews:</strong> You either follow the execution path of a program or you follow how data is passed through the application. Again, both approaches are often combined and have pros and cons.</p></li><li><p><strong>Pattern Recognition:</strong> This approach is similar to a checklist-based approach. Yet, here, the focus is on detecting common anti-patterns and bad practices, as well as best practices in code.</p></li><li><p><strong>Cross-Referencing:</strong> You inspect all references, like dependencies and relationships between structures within a program. It&#8217;s a thorough approach, yet it can lead to feeling overwhelmed. </p></li><li><p><strong>Change-Impact Analysis:</strong> This approach involves analyzing a change's impact on the other parts of the system. It is a very thorough analysis, yet a good understanding of the software under review is a prerequisite.  </p></li><li><p><strong>Trace-Based Code Reading:</strong> Instead of looking at the static code paths, like during a control-flow inspection, you examine the program during runtime, often using a debugger, helping you to find very tricky and hidden problems and side effects. </p></li><li><p><strong>Abstract-Driven Code Reviews:</strong> This is an academic review approach in which you compare the code to its specification, documentation, or detailed ticket description.</p></li><li><p><strong>Functionality or Use-Case-Driven Code Reviews: </strong>This is another academic review approach that uses defined use cases or scenarios that you must play through while reviewing the code.<strong> </strong></p></li></ol><p>Are you surprised that there are so many different ways to review code? You can read more about each <a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Fcode-reading%2Fcode-review-techniques%2F">review approach, its pros and cons, and when to use it here</a>.</p><p><strong>Let me know which review techniques you already use in your ad hoc approach and which are new to you!</strong></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:16659542,&quot;userName&quot;:&quot;Dr. Michaela Greiler&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p>I&#8217;ll talk to you again in a bit.</p><p>Michaela  </p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/10-best-code-review-techniques?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thank you for reading Awesome Code Reviews. This post is public so feel free to share it. &#128525;</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/p/10-best-code-review-techniques?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2F10-best-code-review-techniques%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Stop painfully long code review turnaround times]]></title><description><![CDATA[Read my five tips to boost your turnaround times]]></description><link>https://codereviews.substack.com/p/stop-painfully-long-code-review-turnaround</link><guid isPermaLink="false">https://codereviews.substack.com/p/stop-painfully-long-code-review-turnaround</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Fri, 01 Dec 2023 11:34:28 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21elLM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Long code review turnaround times drastically reduce <a href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2Fmeasuring-the-impact-of-developer">developer experience</a>. When developers wait long to get feedback on their code changes, cycle time increases, and developer productivity and well-being decrease. It&#8217;s painful when you only get feedback when you already forgot what you did in this code change.  </p><h2>Long turnaround times lead to large reviews.</h2><p>In addition, long turnaround times often lead to large reviews. If developers know they must wait days or weeks before someone looks at their code changes, they cannot afford to submit small, coherent changes. Then, instead of breaking up user stories and working iteratively and incrementally, developers implement the whole user story and ask for feedback only once they are done. Also, they might add more and more commits to the user story while the pull request is open because time passes, nobody looks at the PR, and they have to get on with their work.</p><h2>Large PRs lead to long turnaround times.</h2><p>Developers have difficulty giving valuable feedback when the code review size increases. Several studies show a direct correlation between review size and feedback quality. The larger the review, the lower the review feedback quality. In large reviews, fewer bugs are detected, and fewer readability or maintainability issues are discussed. </p><p>In addition, large reviews also lead to an increase in review times because reviewers have a hard time understanding this large code change, and problems that are found might be hard to resolve. So, the vicious circle of long waiting times and large reviews continues.</p><p>So, how can we break this cycle?</p><h2>5 Tips for faster code reviews</h2><p>To increase the code review turnaround time and still keep your review process thorough and effective, I recommend the following five tips:</p><ol><li><p><strong>Break Up User Stories</strong>:  In my experience, user stories tend to be too large. So, break them up into smaller pieces. Make sure each user story can be reviewed independently and, as a rule of thumb, does not take you more than two days to work on. This means that instead of waiting for an entire feature or project to be completed, break it down into smaller, more manageable user stories. </p></li><li><p><strong><a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Fchecklists%2Fcode-review-checklist%2F">Code Review Checklist</a></strong>: Using a code review checklist does not only boost your problem-detection power but also streamlines the process of reviewing. By using a checklist vetted by the whole team, you ensure everyone knows what issues to look out for. This clarity also comes with a nice boost in code review turnaround time.</p></li><li><p><strong>Integrate Linters and Static Analysis Tools</strong>: Tools like ESLint, Flake8, or SonarQube can automatically catch common mistakes and enforce coding standards. To ensure you are not cramping up your CI/CD pipeline, use pre-commit hooks to ensure that only code meeting these criteria is pushed to the repository.</p></li><li><p><strong>Clarity for code review duties</strong>: All team members must clearly understand their expected role in code reviews. This fosters accountability and a collective commitment to code quality. Further, the team should work out a schedule around code reviews to help people plan and make sure they have the time to do a proper review.  So, a code review should never (or very seldomly) come as a surprise.  </p></li><li><p><strong><a href="iframe.php?url=https%3A%2F%2Fwww.awesomecodereviews.com%2Fbest-practices%2Fcode-review-best-practices%2F%23fewerreviewers">Select fewer code reviewers</a></strong>: Yes, you heard that right. Instead of adding more potential reviewers, I&#8217;d advise selecting only a few. If too many reviewers are listed on a code review, you might find yourself experiencing the &#8220;diffusion of responsibility&#8221; phenomenon. This means that everyone thinks that someone else will do the review. Because everyone waits for another person to do the review, the code review turnaround time increases. </p></li></ol><h2>More stats to convince you</h2><p>In a recent study, which I&#8217;ve conducted together with Nicole Forsgren, Eirini Kalliamvakou, and Brian Houck from Microsoft, Dr. Storey from the Univeristy of Victoria, and Abi Noda from DX, we could clearly show the impact a fast turnaround time has on team and business outcomes.</p><blockquote><p>As you see in the illustration below, a faster turnaround time increases innovation by 20%, boosts creativity and learning by 15%, and even reduces technical debt by 10%. </p></blockquote><p>Cool, ha?!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21elLM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!elLM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!elLM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!elLM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!elLM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21elLM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:927449,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!elLM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!elLM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!elLM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!elLM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e275ac7-ad93-4e59-80d4-cf97e498fd21_1600x900.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To know more about this study, read <a href="iframe.php?url=https%3A%2F%2Fsubstack.com%2Finbox%2Fpost%2F138751393">my previous issue on measuring developer experience here</a>.</p><h2>So, what are your best tips for a faster turnaround time? </h2><p><strong>Hit reply and let me know</strong>, or share your thoughts on Twitter with me: <a href="iframe.php?url=https%3A%2F%2Ftwitter.com%2Fmgreiler">https://twitter.com/mgreiler</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe if you are new to my site:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Measuring the Impact of Developer Experience]]></title><description><![CDATA[What impact does DevX have on developers, teams, and organizations?]]></description><link>https://codereviews.substack.com/p/measuring-the-impact-of-developer</link><guid isPermaLink="false">https://codereviews.substack.com/p/measuring-the-impact-of-developer</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Fri, 10 Nov 2023 10:30:17 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OYRF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><h2>Developer Experience (DevX)</h2><p>Over the last two years, I have been investigating developer experience - that is, how developers experience their work and how that influences outcomes such as productivity, code quality, or retention. <br><br>In our first in-depth study, we look at which factors influence developer experience. We found 25 factors that developers regularly described when they talked about developer experience and grouped them into 4 categories:</p><ul><li><p>development and release</p></li><li><p>Product management</p></li><li><p>Collaboration and culture</p></li><li><p>Developer flow and fulfillment</p></li></ul><p>We also identified how developer experience can be improved and which strategies developers have to improve it, as well as which challenges and barriers they face when they try to improve DevX. </p><h3>Devs started to talk about DevX</h3><p>Our research was published in mid-2022 (you can <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2205.06352">download the full paper here</a>), and since then, a lot of people in the industry have started to talk about developer experience. This is awesome! </p><p>Developers all around the world could relate to our findings and echoed that they indeed need good developer experience to be productive and ship high-quality code. Developers know that they need time to focus and do deep work. They know about flow state and how fast code review turnaround times are a game changer. </p><h3>DevX? No buy-in from management </h3><p>But once again, business folks were too far away from programming to understand the importance of DevX. The fact is that many companies are only willing to spend money on DevX during &#8220;good&#8220; times &#8212; when we have too much time, too much money, and no other priorities. Well, those times do not exist, especially not with a bad DevX.</p><p>When talking to engineering leaders, we realized that what is missing is data that quantifies the impact of DevX. That&#8217;s why we have worked on getting this data over the last year. Data that shows the impact of DevX on productivity, code quality, retention, innovation - well, all the outcomes that business cares about.</p><h3>Hard numbers to convince business</h3><p>Our research article will be published soon. The research goal was to quantify DevX's impact on developers, teams, and organizations. The picture below highlights how improvements to the flow state of devs, their cognitive load, and the feedback loops they encounter have a direct and quantifiable impact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OYRF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OYRF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OYRF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:204248,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OYRF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OYRF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d704907-5a9e-4f4e-a3ea-77f48bed8249_1640x922.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Code Review Related DevX</h3><p>Another interesting outcome of this study is that we could show that a smooth code review process impacts productivity, retention, and learning. As you see in the quote below, code reviews also impact innovation. </p><div class="pullquote"><p>A fast code review turnaround time leads to a 20% increase in innovation.</p></div><p>If we think about it, it makes sense. Innovation suffers if we have to wait a long time to get feedback on our work or if releasing new features is painful. </p><h3>How to Improve Code Review Turnaround Times</h3><p>But which strategies help to increase turn-around times? Well, that depends on the underlying root cause for the slow feedback. Should we have a look into this topic in the next issue? Let me know!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe if you are new to my site: </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Cheers, Michaela</p>]]></content:encoded></item><item><title><![CDATA[Best practices and research behind making code reviews your superpower.]]></title><description><![CDATA[Welcome to Awesome Code Reviews by me, Dr. Michaela Greiler. Michaela accelerates developers and engineering teams by making code reviews their superpower. Sign up now so you don&#8217;t miss the first issue. In the meantime, tell your friends!]]></description><link>https://codereviews.substack.com/p/coming-soon</link><guid isPermaLink="false">https://codereviews.substack.com/p/coming-soon</guid><dc:creator><![CDATA[Dr. Michaela Greiler]]></dc:creator><pubDate>Tue, 22 Sep 2020 16:02:30 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23631a9a-7425-4a13-b4e2-1b88501ba45e_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to Awesome Code Reviews by me, Dr. Michaela Greiler. Michaela accelerates developers and engineering teams by making code reviews their superpower.</p><p>Sign up now so you don&#8217;t miss the first issue.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codereviews.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>In the meantime, <a href="iframe.php?url=https%3A%2F%2Fcodereviews.substack.com%2Fp%2Fcoming-soon%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare">tell your friends</a>!</p>]]></content:encoded></item></channel></rss>