<?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[Think Big Code Small]]></title><description><![CDATA[Welcome to Think Big, Code Small - your friendly portal into the compelling technology universe. Your hosts, Daniel Horton, and Chris Westerhold, are seasoned technologists passionate about breaking down tech's complex language into simple terms.]]></description><link>https://www.thinkbigcodesmall.io</link><image><url>https://substackcdn.com/image/fetch/$s_!zP0x!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d70c094-0ca2-4170-9b8b-eecb9934d7e1_1280x1280.png</url><title>Think Big Code Small</title><link>https://www.thinkbigcodesmall.io</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Apr 2026 13:35:14 GMT</lastBuildDate><atom:link href="https://www.thinkbigcodesmall.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Think Big Code Small]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thinkbigcodesmall@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thinkbigcodesmall@substack.com]]></itunes:email><itunes:name><![CDATA[Think Big Code Small]]></itunes:name></itunes:owner><itunes:author><![CDATA[Think Big Code Small]]></itunes:author><googleplay:owner><![CDATA[thinkbigcodesmall@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thinkbigcodesmall@substack.com]]></googleplay:email><googleplay:author><![CDATA[Think Big Code Small]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[EP53 - Lets talk AI]]></title><description><![CDATA[Have feedback or want to request a topic?]]></description><link>https://www.thinkbigcodesmall.io/p/ep53-lets-talk-ai</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep53-lets-talk-ai</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 20 Feb 2025 20:12:16 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/157573369/d67a79c826d49014e0797f713564e61a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p></p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3>]]></content:encoded></item><item><title><![CDATA[Ep52 - 2025 Kickoff and Predictions]]></title><description><![CDATA[Welcome Back!]]></description><link>https://www.thinkbigcodesmall.io/p/2025-kickoff-and-predictions</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/2025-kickoff-and-predictions</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Wed, 29 Jan 2025 13:36:07 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/156010797/8332e911d503c5aa2193ae5f07691f40.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Welcome Back!  Its been a while but we are finally back at it and are ready to kick off the new year!  We talk about our recent struggles along with some predictions for 2025.</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Coding Assistants - Friend or Foe?]]></title><description><![CDATA[Coding assistants have been around for around two years and have generated more hype than just about anything in the past twenty years.]]></description><link>https://www.thinkbigcodesmall.io/p/coding-assistants-friend-or-foe</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/coding-assistants-friend-or-foe</guid><dc:creator><![CDATA[Chris Westerhold]]></dc:creator><pubDate>Mon, 20 Jan 2025 12:26:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y3RK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y3RK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y3RK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y3RK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A cartoon-style illustration of a software developer being pulled between two opposing options. On one side, a glowing, friendly AI coding assistant hologram with symbols like gears and lightning bolts, representing efficiency. On the other side, a plain workspace with traditional tools like books, a notebook, and a basic computer, symbolizing a manual coding approach. The developer in the middle has an exaggerated confused expression with a question mark above their head. The background is minimal and clean, with soft neutral colors to keep the focus on the characters and the decision conflict. Designed in a 16:9 aspect ratio.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A cartoon-style illustration of a software developer being pulled between two opposing options. On one side, a glowing, friendly AI coding assistant hologram with symbols like gears and lightning bolts, representing efficiency. On the other side, a plain workspace with traditional tools like books, a notebook, and a basic computer, symbolizing a manual coding approach. The developer in the middle has an exaggerated confused expression with a question mark above their head. The background is minimal and clean, with soft neutral colors to keep the focus on the characters and the decision conflict. Designed in a 16:9 aspect ratio." title="A cartoon-style illustration of a software developer being pulled between two opposing options. On one side, a glowing, friendly AI coding assistant hologram with symbols like gears and lightning bolts, representing efficiency. On the other side, a plain workspace with traditional tools like books, a notebook, and a basic computer, symbolizing a manual coding approach. The developer in the middle has an exaggerated confused expression with a question mark above their head. The background is minimal and clean, with soft neutral colors to keep the focus on the characters and the decision conflict. Designed in a 16:9 aspect ratio." srcset="https://substackcdn.com/image/fetch/$s_!Y3RK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Y3RK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b2b759d-da33-4d00-a465-b2df74423c5e_1792x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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><figcaption class="image-caption">As you can see&#8230; there is still a long way to go with just spelling&#8230;</figcaption></figure></div><p>Coding assistants have been around for around two years and have generated more hype than just about anything in the past twenty years. The first mainstream model, ChatGPT, was released in 2022, and many other variants have followed. There have been promises of  30-50% productivity gains and even full replacement of engineers. Let's dig into the details and see if we can get an answer to a very complex question: Do genAI tools drive better productivity?</p><h1>What are coding assistants (LLMs)?</h1><p>If you haven't heard of coding assistants in 2024, then you must have been under a rock for the previous couple of years.  While most have heard of them, there is still quite a bit of confusion about what they actually are.  This is not a deep dive into the technical nature of LLMs so let&#8217;s just call them what they are, excellent text predictors. </p><p>They have the ability to answer questions, summarize data, and provide code for certain tasks.  At first glance, they can seem to be magical with seemingly great answers to lots of different questions across many different languages and tasks.   This ability has immense use cases across software engineering and the broader employment landscape.</p><h1>We have built a worse calculator</h1><p>For all of the technological age, we have worked on written logic.  Regardless of how many times you run an application, you will get the same results.   This is no longer the case with LLMs, they don&#8217;t work on this logic based system.  They work similar to how a human would, taking in a bunch of inputs and then producing a response that makes the most sense based on that input.</p><p>Just like humans, LLMs have an error rate or hallucinations, as they are commonly referenced.  This is due to a few different things, but a key problem is that it is language based.   It is &#8220;searching&#8221; through its training data to find the next logical word to respond to you with.  There is a fuzziness to language, the training data, and how familiar the training data is with the question.  All of these factors contribute to the error rate of bad responses.  </p><p>That said, we can&#8217;t forget that they are great text predictors and they don&#8217;t actually understand any of these actual concepts.  For example, you can teach a LLM to answer questions around Calculus but not teach it Algebra.   This doesn&#8217;t make any sense from a human perspective since you have to know Algebra to understand Calculus.</p><p>But since an LLM is a language-based text predictor&#8230; it doesn&#8217;t care if it knows the fundamental underlying knowledge. It just knows what you teach it via language, and it will respond accordingly.</p><p>This is the fundamental understanding that we need to take when considering how and when to leverage LLMs or coding assistants.  </p><h1>Treat them like an intern or junior developer</h1><p>I remember back in my early career, when I knew everything and these senior Developers were just blowhards giving me trouble about doing things their way. Looking back, it was clear how much I didn&#8217;t know and how confident I was in my half-baked solutions.  </p><p>The seniors and other mentors I had kept a good eye on me while I learned and matured into a better developer over time.  As I grew and matured in my craft, I was given more and more leniency to take on bigger and bigger projects.  After time, I was the one mentoring juniors and seeing so many of the same mistakes I made along the way.</p><p>While this is a great pattern to help juniors in their career, this is NOT how you should treat LLMs and coding assistants.  They will very, very confidently lie to you after getting it right many times in a row.   You should always treat them like the first day a junior joined your team.  They can be helpful, but don&#8217;t let them control too much, or you may end up paying the price.</p><h1>Haven&#8217;t we seen this before?</h1><p>Since the release of CoPilot and others, the burning question has been what are we trying to do with these tools?   There are many that would say they are going to completely replace developers&#8230;  To that I say good luck.  Though there is a lot of fear across the industry of people being replaced by LLMs or coding assistants, I have yet to see an example where this is remotely possible.  </p><p>You don&#8217;t have to look to hard find other historical examples of monumental change, like when typewriters emerged in the late 1800s. People feared losing their jobs, particularly scribes, clerks, and professional penmen who made their living through handwriting.</p><p>However, what actually happened is quite interesting: rather than eliminating jobs, typewriters transformed them and created new opportunities, especially for women entering the workforce. The role of "typist" or "typewriter" (as the operators were initially called) became a new professional category. Business schools began offering typing courses, and many women found employment opportunities as secretaries and stenographers - positions that previously had been largely held by men.</p><p>There are some fascinating parallels with today's AI and automation concerns. Just as typewriters didn't eliminate the need for written communication but rather changed how it was done, many technologies end up transforming jobs rather than completely eliminating them. That said, the impact on individual workers who had specialized in handwriting was very real - particularly professional penmen who had made their living through calligraphy and handwritten documents. </p><h1>How are teams successfully leveraging AI?</h1><p>To me, the best benefit they had is around code generation for solved problems.  For example, I want to integrate my app with Google Maps API, integrate Stripe using React, or scaffolding a new Java application.   These are common problems that have been solved many, many times over and yet are things people struggle with on a day to day basis.   Code assistants can absoltely help with these types of tasks including scaffolding tests, functions, methods, or just about any common block of code. </p><p>Another benefit is being able to document code, but this one I had a bit more of a problem with.  Yes, you can ask CoPilot or any other coding assistant to &#8220;document&#8221; your code but this is far from trustworthy.  The better pattern is to have it help you scaffold your documentation and then rewriting or editing the content based upon your knowledge of the code and what you were trying to solve with it.  This can be very helpful while mitigating the downsides that can come from this type of use case.</p><p>Another common pattern that I have seen is using coding assistants during the PR process.  This is not dissimilar to the documentation aspect listed above, just used in a different way.   When you submit a PR, leveraging a coding assistant to write up the PR commit message can be very helpful.  While this is useful, care really needs to be taken to ensure the accuracy of the write and also including the other context that could not be derived from the code itself.  </p><h1>Can you trust the output?</h1><p>It is imperative to not forget the fact that they don&#8217;t actually know how to code and the output is just the best prediction of words based on your input.   Is this something that you can trust?  The answer is kind-of&#8230; or to state it a little more usefully&#8230; trust but verify.  </p><p>This can be a challenge, especially when they seem so smart and get it right a lot of the time.  The big question you need to ask, what will happen if it gets it wrong?  Maybe there will be a production outage,  cause other rework or dependency issues, or maybe something worse.  </p><p>Going all the way back to the first autonomous cars when they were just starting to be tested on real road, people started to trust them very quickly.  It didn&#8217;t take long until there were videos of people sleeping in the cars while they were driving down the road. </p><p>This same pattern can be seen across the usage of coding assistants.  I recently helped a client do an analysis of this coding assistant usage to see if they were being more productive because of coding assistant usage.    This is not an easy question to answer for most people because I believe it has a false dichotomy in it.</p><h1>The Development or Iron Triangle</h1><p>I recently posted a full article on this topic but as a quick recap, the development triangle is comprised of cost, quality, and speed.   As with any triangle, you get to dictate two sides and the other is determined for you.  The only other option you have is to make the triangle bigger but you can check out the full article for the deeper details.</p><p>But back to measuring coding assistants, you can&#8217;t just look at speed.  You have to look through the lens of the triangle and understand its broader impact.  For the client I worked with, they had very clear &#8220;productivity&#8221; gain when looking at the number of PRs submitted for the group that used coding assistants.  It was almost double the amount for the same sample size.</p><p>But from the quality lens, they had 4x more PRs merged without review with  80% less comments on PRs overall.  These are staggering stats which also coincide with recent study from Uplevel that showed a 41% increase in bugs for teams using coding assistants.  In their study, they also showed little change in PR cycle time, time to merge, or PR throughput. </p><h1>The problem is not needing faster typers</h1><p>The biggest issue I have with coding assistants and the challenges they claim to tackle is that they assume the need to type faster is the problem. In a recent study from Haystack Analytics,  ~75% of developers suffer from burnout, yet the vast majority of them code on the weekend. The most common reason for burnout is inefficient processes.</p><p>This flies directly into the face of the coding assistant hype.  That coding assistants can deliver 30, 40, or even 50% productivity gains.   On the surface, this sounds ridiculous&#8230; and it is.   Consider that developers only spend 30-40% of their time coding (State of DevOps report).  The rest of the time is spent dealing with all of the other organizational nonsense that is so common across enterprises.</p><h1>Context is the key to success</h1><p>The problem is that knowledge has and always will be the differentiator for humans, and with the new breed of computer, the same holds true. How much data has the model been trained on, and is the problem you are trying to solve in the training data? Here is an interesting comment from a Reddit post focused on coding assistants and if people are using them. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dlrm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dlrm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 424w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 848w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 1272w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dlrm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png" width="847" height="353" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:353,&quot;width&quot;:847,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92609,&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_!Dlrm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 424w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 848w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 1272w, https://substackcdn.com/image/fetch/$s_!Dlrm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6278a774-9225-4772-9bb6-765ccfe61f66_847x353.png 1456w" sizes="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"><svg role="img" 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"><g><title></title><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"><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"><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>There are many that will read this is say something like, &#8220;These models are just going to keep getting smarter and will have more training data to help solve this problem&#8221;.   While that might be true for commonly solved problems.  Will an LLM really understand your companies inner workings?  Will it understand the context in your code base of 100k lines?  Does it understand the 20 years of legacy code and tech debt that has built up over time?   I would say the answer to most of those is no.</p><p>It will get better, there is not doubt about that.  But I would say that we are a long, long way from some of this coming to fruition.  Why?  Economics.</p><p>There have been burger flipping robots for at least 25 years but do we see them running every fast food joint.  Not we don&#8217;t and it&#8217;s really easy to see why.   They still need a lot of humans around to do all of the other work.   They can help to make one part of the process easier and faster but the cost savings just doesn&#8217;t make sense financial over time.   When you add in the cost of the machine, its maitanence costs, what happens when it breaks, and still needing humans around to handle a lot of the problems, it just doesn&#8217;t make sense.</p><p>To me, the same problem exists with coding assistants.  If you can have a code base that is completely controlled by an LLM, then you could make a case that the costs and quality problems could be easily overcome.    Actually, we already have that in low/no code solutions and I don&#8217;t see those taking over software development any time soon.</p><h1>So, are coding assistants friend or foe?</h1><p>Now that we understand a bit more about coding assistants, let&#8217;s consider the main question, are they a friend or foe?   Like with most things in life, it depends on the implementation.   </p><p>Are you using them in a way that brings out their best qualities?   </p><p>Are you aware of the quality, cost, speed triangle?  </p><p>Are you validating results?</p><p>As you can see, it&#8217;s up to you to decide.  They can be very helpful for some (usually more senior) and a hinderence for other (usually more junior).   My general advice is to allow people to use them when they want too, have good quality metrics, and don&#8217;t expect more out of them than they are good for.  </p><p>Don&#8217;t expect 30 or 50% productivity gains as coding assistants will never get you there.  Instead focus on the big problems your developers are facing and how you can improve those value streams.   This is where the big gains can be found, not in an easy button.</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item><item><title><![CDATA[EP51 - Balancing Cost, Speed, and Quality]]></title><description><![CDATA[This week, we will continue to focus on efficiency.]]></description><link>https://www.thinkbigcodesmall.io/p/ep51-balancing-cost-speed-and-quality</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep51-balancing-cost-speed-and-quality</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 26 Sep 2024 13:15:25 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149446796/0aab11f74829275670e625d5d16a9fa2.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This week, we will continue to focus on efficiency. We will explore the concept of the development triangle, which involves balancing speed, quality, and cost.  Go through the importance of finding the right equilibrium to avoid poor quality and excessive technical debt. Finally, we discuss the importance of making informed decisions and consistently striving for improvement.</p><p>Join us for another great episode of Think Big Code Small</p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[EP50 - Efficiency - Balancing speed, quality, and tech debt]]></title><description><![CDATA[We've been constantly seeking the next big thing in software development, always chasing innovation.]]></description><link>https://www.thinkbigcodesmall.io/p/ep50-efficiency-balancing-speed-quality</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep50-efficiency-balancing-speed-quality</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Mon, 16 Sep 2024 16:09:03 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148968249/2d0a0ae1776b09d9e1f01be584751681.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We've been constantly seeking the next big thing in software development, always chasing innovation. However, despite our efforts, we seem to keep facing the same old challenges. Recently, Chris and I came across an article by Ray Carnes on Medium, where he mentioned not having seen a new software development problem in 30 years. This got us thinking - why does this cycle continue, and more importantly, how can we break free from it at last?</p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[The 30-Year-Old Problem Still Haunting Developers]]></title><description><![CDATA[the next 30 years don&#8217;t have to look like the last 30!]]></description><link>https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting</guid><dc:creator><![CDATA[Daniel Horton]]></dc:creator><pubDate>Mon, 02 Sep 2024 13:05:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jvCw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jvCw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jvCw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jvCw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:505474,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!jvCw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!jvCw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5138b3-d18e-43fe-aa70-db502347eea3_1024x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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><em>Why haven&#8217;t we seen a new software development problem in three decades?</em> In his article, &#8220;<a href="https://medium.com/illumination/i-havent-seen-a-new-software-development-problem-in-thirty-years-e9bddfe73838">I Haven&#8217;t Seen a New Software Development Problem in Thirty Years,&#8221; Ray Carnes</a> suggests that the challenges plaguing software development have remained the same for three decades. At first, this claim seems almost absurd&#8212;haven&#8217;t we witnessed extraordinary technological advancements, from cloud computing to AI? </p><p>Yet, as we delve deeper, it becomes clear that the core issues persist. <strong>Effectiveness</strong>, <strong>efficiency</strong>, and <strong>robustness</strong> continue to haunt developers, rooted in the unchanging realities of human error, process flaws, and technological limitations. Let's explore why these problems remain so stubborn and what it might take to move beyond them. </p><p><a href="https://en.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a>, in his seminal work <em><a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month">The Mythical Man-Month</a></em>, famously declared that "there is no silver bullet" for software development. His observation holds as true today as it did in the 1970s. The core issues developers face&#8212;ensuring that software is effective, efficient, and robust&#8212;have not fundamentally changed because they are not purely technological problems but human ones. Brooks&#8217; insight points to the heart of the issue: our challenges persist because they are deeply intertwined with the limitations of human cognition, communication, and collaboration.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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><div><hr></div><h2>Effectiveness: Are We Building What Matters?</h2><p>Effectiveness in software development is about building the right thing&#8212;ensuring that the product aligns with real user needs. This challenge isn&#8217;t new; it&#8217;s been at the forefront of software engineering since the beginning. The difficulty lies in truly understanding what those needs are and translating them into functional, user-centered software. As <a href="https://www.google.com/books/edition/Peopleware/TVQUAAAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover">DeMarco and Lister point out in _Peopleware</a>: Productive Projects and Teams_, that the most critical failures in software development are often social rather than technical. Misaligned communication between developers and stakeholders leads to software that may be technically sound but misses the mark in terms of usability and relevance.</p><p>Carnes&#8217; reflection on effectiveness highlights a recurring problem: developers often focus on building features rather than solving problems. This issue is exacerbated by the &#8220;feature factory&#8221; mentality, where teams measure success by the number of features delivered rather than the value those features provide. As <em><a href="https://en.wikipedia.org/wiki/Design_thinking">Design Thinking</a></em><a href="https://en.wikipedia.org/wiki/Design_thinking"> </a>advocates argue, actual effectiveness comes from a deep understanding of the user&#8217;s context, allowing teams to build products that truly matter.</p><p>However, effectiveness isn&#8217;t just about the end product but also the process. In <em><a href="https://www.google.com/books/edition/Extreme_Programming_Explained/G8EL4H4vf7UC?hl=en&amp;gbpv=1&amp;printsec=frontcover">Extreme Programming Explained</a></em><a href="https://www.google.com/books/edition/Extreme_Programming_Explained/G8EL4H4vf7UC?hl=en&amp;gbpv=1&amp;printsec=frontcover">, Kent Beck</a> emphasizes the importance of continuous feedback and iterative development. By involving users and stakeholders early and often, teams can ensure they build software that aligns with real needs rather than just cranking out code that ticks off a list of requirements.</p><h2>Efficiency: The Silent Killer of Software Projects</h2><p>Efficiency in software development is about maximizing output while minimizing wasted effort. Yet, inefficiencies drain project time and resources through technical debt, rework, or poor communication. This problem, too, has been introduced previously. In <em><a href="https://www.google.com/books/edition/The_Phoenix_Project/H6x-DwAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover">The Phoenix Project,</a></em><a href="https://www.google.com/books/edition/The_Phoenix_Project/H6x-DwAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover"> Gene Kim, Kevin Behr, and George Spafford</a> detail how inefficiencies often arise from organizational silos and misaligned incentives, leading to a cycle of rushed processes, technical debt, and ever-increasing workloads.</p><p>Technical debt, a term popularized by <a href="https://en.wikipedia.org/wiki/Ward_Cunningham">Ward Cunningham</a>, refers to the cost of choosing a quick and easy solution now instead of a better, more time-consuming approach that could pay off in the future. Over time, this debt accumulates, leading to inefficiencies that slow down development and increase the cost of future changes. As <a href="https://www.martinfowler.com/">Martin Fowler</a> notes in <em><a href="https://www.google.com/books/edition/Refactoring/HmrDHwgkbPsC?hl=en&amp;gbpv=1&amp;printsec=frontcover">Refactoring: Improving the Design of Existing Code</a></em>, addressing technical debt early through continuous refactoring is essential to maintaining long-term efficiency.</p><p>Methodologies like Agile and DevOps have been championed to solve these efficiency problems. Agile, with its emphasis on iterative development and continuous improvement, helps teams maintain focus on delivering value quickly without sacrificing quality. Meanwhile, DevOps bridges the gap between development and operations, streamlining workflows and reducing the friction that often hinders efficiency. However, as Ries points out in <em><a href="https://www.google.com/books/edition/The_Lean_Startup/tvfyz-4JILwC?hl=en&amp;gbpv=1&amp;printsec=frontcover">The Lean Startup</a></em>, even these methodologies can fall short if they are not implemented thoughtfully, with a focus on learning and adaptation.</p><h2>Robustness: Building Systems That Don&#8217;t Break</h2><p>Robustness is the ability of software to withstand failures, handle unexpected inputs, and operate under adverse conditions. Despite all our advances, creating robust systems remains a challenge. In <em><a href="https://www.google.com/books/edition/Designing_Data_Intensive_Applications/p1heDgAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover">Designing Data-Intensive Applications</a></em><a href="https://www.google.com/books/edition/Designing_Data_Intensive_Applications/p1heDgAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover">, Martin Kleppmann</a> underscores the importance of building systems that are not only scalable and efficient but also resilient to failure. Robustness, however, requires more than just good code; it demands a mindset that anticipates failure and designs for it.</p><p>As developed at Google, Site Reliability Engineering (SRE) offers a framework for achieving this robustness. As detailed in <em><a href="https://www.google.com/books/edition/Site_Reliability_Engineering/tYrPCwAAQBAJ?hl=en&amp;gbpv=1&amp;printsec=frontcover">Site Reliability Engineering: How Google Runs Production Systems</a></em>, SRE blends software engineering with IT operations to create scalable and reliable systems. It emphasizes the need for automated recovery processes, rigorous testing, and a focus on reliability from the outset. Similarly, <a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development (TDD)</a>, as promoted by <a href="https://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>, ensures that code is reliable and maintainable by requiring developers to write tests before the code itself. This approach not only catches bugs early but also enforces a discipline that leads to more resilient software.</p><p>Security is another crucial aspect of robustness. As <a href="https://dl.acm.org/doi/10.5555/517959#:~:text=This%20book%20argues%20that%20in,before%20learning%20more%20about%20anything.">Bruce Schneier argues in </a><em><a href="https://dl.acm.org/doi/10.5555/517959#:~:text=This%20book%20argues%20that%20in,before%20learning%20more%20about%20anything.">Secrets and Lies: Digital Security in a Networked World</a></em>, the increasing complexity of software systems makes them more vulnerable to attacks. Robust software must, therefore, be designed with security in mind from the beginning, not as an afterthought. This involves regular security audits, proactive threat modeling, and a culture of security awareness throughout the development process.</p><h2>A Holistic Approach</h2><p>So why do these problems persist? The answer lies in our approach. As Ray Carnes suggests, we have been trying to solve these issues in isolation&#8212;focusing on business strategies and architectural frameworks while neglecting the more operational, human-centric aspects of software development. But to truly break free from these recurring problems, we must adopt a holistic approach that considers people, processes, and technology in tandem.</p><p>As <a href="https://martinfowler.com/bliki/ConwaysLaw.html">Conway&#8217;s Law</a> reminds us, the structure of a system reflects the structure of the organization that built it. If we want to solve these long-standing problems, we must look beyond the code and consider how our teams are structured, communicate, and work together. By focusing on the operational realities of software development&#8212;ensuring that our teams are aligned, our processes are efficient, and our technology is reliable&#8212;we can finally begin to overcome the challenges that have haunted us for 30 years.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting?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 Think Big Code Small! This post is public, so feel free to share it or comment. </p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting?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="https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.thinkbigcodesmall.io/p/the-30-year-old-problem-still-haunting/comments"><span>Leave a comment</span></a></p><div><hr></div><h2>A Path Forward</h2><p>The 30-year-old problems that continue to haunt developers aren&#8217;t going away anytime soon. But by shifting our focus to a more holistic, operational approach&#8212;one that balances strategy with execution, people with processes, and technology with foresight&#8212;we can begin to build software that is not only effective, efficient, and robust but also adaptable to the ever-changing landscape of the industry. As Carnes reminds us, the next 30 years don&#8217;t have to look like the last 30, but only if we are willing to evolve our approach and learn from the lessons of the past.</p>]]></content:encoded></item><item><title><![CDATA[EP49 - Are there really any new software engineering problems?]]></title><description><![CDATA[For decades, we've been riding the wave of innovation, chasing the next big tool, the next breakthrough in software development.]]></description><link>https://www.thinkbigcodesmall.io/p/ep49-are-there-really-any-new-software</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep49-are-there-really-any-new-software</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Tue, 20 Aug 2024 14:33:42 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/147925345/cd465dcfef2833dfa678a34cd332018a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>For decades, we've been riding the wave of innovation, chasing the next big tool, the next breakthrough in software development.  And yet, here we are, still grappling with the same age old challenges.  Chris and I came across an article from Ray Carnes on Medium.  He titled it, I haven't seen a new software development problem in 30 years.  And he's not wrong.  It caused us to stop in our tracks and have a thought.  And we wanted to share that with you.  But the question is, why does this cycle persist? More importantly, how do we finally break free from it?</p><p>Article Link - https://medium.com/illumination/i-havent-seen-a-new-software-development-problem-in-thirty-years-e9bddfe73838</p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Atomic Essay: Common Mistakes in Developer Documentation and How to Avoid Them]]></title><description><![CDATA[Imagine you&#8217;re handed a treasure map, but the landmarks are vague, the directions are muddled, and some paths lead you straight into quicksand.]]></description><link>https://www.thinkbigcodesmall.io/p/atomic-essay-common-mistakes-in-developer</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/atomic-essay-common-mistakes-in-developer</guid><dc:creator><![CDATA[Daniel Horton]]></dc:creator><pubDate>Thu, 15 Aug 2024 11:53:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rinb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rinb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rinb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!rinb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!rinb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!rinb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rinb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:534476,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!rinb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!rinb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!rinb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!rinb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb55fdd-d23d-4670-8e78-099455b71757_1024x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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>Imagine you&#8217;re handed a treasure map, but the landmarks are vague, the directions are muddled, and some paths lead you straight into quicksand. </p><p>Frustrating, right? </p><p>Developer documentation can feel like that when done wrong. But when done right, it's a clear guide through the codebase wilderness, helping seasoned coders and new recruits navigate easily. </p><p>Let's examine the common pitfalls of developer documentation and how to avoid them to create a robust, user-friendly resource.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/atomic-essay-common-mistakes-in-developer?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"><em>Thanks for reading Think Big Code Small! This post is public, so feel free to share it.</em></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/atomic-essay-common-mistakes-in-developer?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="https://www.thinkbigcodesmall.io/p/atomic-essay-common-mistakes-in-developer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h3>Lack of Clarity and Conciseness</h3><p><strong>Mistake:</strong> Overly complex or verbose documentation can bewilder rather than assist. According to a study by the Nielsen Norman Group, 79% of users scan web pages instead of reading word-for-word. So, if your documentation is dense and convoluted, it's likely to be skipped over.</p><p><strong>Solution:</strong> Write with the reader in mind. Use clear, simple language and break information into digestible chunks. Utilize headings, bullet points, and code examples to enhance clarity. Think of it as crafting a narrative &#8211; each section should flow logically to the next, guiding the reader effortlessly.</p><h3>Outdated Information</h3><p><strong>Mistake:</strong> Outdated documentation can lead to frustration and wasted time as developers attempt to follow obsolete instructions. GitHub's 2017 Open Source Survey revealed that incomplete or outdated documentation is the top pain point for users of open-source projects.</p><p><strong>Solution:</strong> Review and update documentation regularly. Implement a version control system for your documents and encourage developers to update the documentation alongside the code. Treat your documentation like a living document, evolving alongside your project.</p><h3>Assuming Prior Knowledge</h3><p><strong>Mistake:</strong> Assuming all users have the same level of expertise can alienate beginners and render the documentation less useful. This is akin to speaking a foreign language to someone who only knows the basics.</p><p><strong>Solution:</strong> Include sections tailored for different skill levels. Provide basic overviews for beginners and advanced sections for experienced developers. Always explain acronyms and jargon. This inclusive approach ensures that everyone can benefit from your documentation regardless of their starting point.</p><h3>Lack of Practical Examples</h3><p><strong>Mistake:</strong> Purely theoretical documentation can be difficult to apply in real-world scenarios. Imagine trying to bake a cake with only the chemical breakdown of ingredients and no recipe.</p><p><strong>Solution:</strong> Include practical examples and use cases. Show how the code can be used in real projects and provide step-by-step guides to common tasks. This helps users see the code's direct application and understand its functionality in context.</p><h3>Inconsistent Style and Formatting</h3><p><strong>Mistake:</strong> Inconsistent formatting can make documentation hard to follow and appear unprofessional. It&#8217;s like reading a novel where the font and style change every other paragraph &#8211; distracting and disorienting.</p><p><strong>Solution:</strong> Establish and adhere to a style guide for your documentation. Use consistent formatting, terminology, and tone throughout. Tools like linters can help enforce these rules. Consistency not only improves readability but also enhances the professionalism of your documentation.</p><h3>Conclusion</h3><p>You can craft clear, up-to-date, inclusive, practical, and consistent documentation by avoiding these common mistakes. Good documentation not only aids developers but also enhances your project's overall quality and maintainability. Remember, effective documentation is an ongoing process that demands regular attention and improvement. As Albert Einstein once said, "If you can't explain it simply, you don't understand it well enough."</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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></p>]]></content:encoded></item><item><title><![CDATA[EP48 - Communication, Pairing, and Building the Right Culture in the Remote World]]></title><description><![CDATA[An interview with Eli - Head of Product @ Tuple]]></description><link>https://www.thinkbigcodesmall.io/p/communication-pairing-and-building</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/communication-pairing-and-building</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 01 Aug 2024 13:03:16 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/147216155/8bbeffdd728d564960a4dbbe8ec73a7a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>On this episode, we're diving deep into the unique challenges and opportunities of managing engineering teams in a remote work environment.  Chris had the opportunity to interview Eli Goodman, the head of product at <a href="https://tuple.app/">Tuple</a>.  Together, they share their insights, experiences, and a wealth of knowledge on the nuances of remote work, emphasizing the value of pairing and the strategic use of tools to foster collaboration and overall success for the team.</p><h2>About Tuple</h2><p>Tuple is remote pair programming app for macOS and Windows, designed to make you feel like you're collaborating in person. It&#8217;s got loads of developer-specific touches you just don&#8217;t see with generic screen sharing tools.</p><p>If you are interested in learning more, check them out at their website, <a href="https://tuple.app">here</a>.  </p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[EP 47 - Being Agile vs Doing Agile]]></title><description><![CDATA[Today, we're diving into a topic that resonates with many of us in software development: the distinction between being agile and doing agile.]]></description><link>https://www.thinkbigcodesmall.io/p/being-agile-vs-doing-agile</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/being-agile-vs-doing-agile</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Fri, 26 Jul 2024 18:28:48 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/147043903/3b0feeafc502ddee6b54f45f85a8ca86.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Today, we're diving into a topic that resonates with many of us in software development: the distinction between being agile and doing agile.  Our conversation explores a fundamental difference between these two concepts.  We uncover why simply doing agile or following the methodologies and things like holding meetings and doing ceremonies often fall short.</p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Lessons from the CrowdStrike Conundrum and why you need Chaos Engineering]]></title><description><![CDATA[Why IT Departments Must Embrace Chaos Engineering to Safeguard Against Unforeseen Disruptions]]></description><link>https://www.thinkbigcodesmall.io/p/lessons-from-the-crowdstrike-conundrum</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/lessons-from-the-crowdstrike-conundrum</guid><dc:creator><![CDATA[Daniel Horton]]></dc:creator><pubDate>Sat, 20 Jul 2024 19:30:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rf2T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rf2T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rf2T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rf2T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:675114,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!rf2T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rf2T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d8eddd0-e760-47c1-be04-4043ed815889_1024x1024.jpeg 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"><svg role="img" 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"><g><title></title><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"><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"><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><blockquote><p>"Security is a process, not a product." &#8212; Bruce Schneier</p></blockquote><p>The recent CrowdStrike issue demonstrates that even robust cybersecurity solutions can face challenges disrupting global operations. This incident highlights the need for  organizations to review their resiliency strategies and implement chaos engineering and resilience testing to ensure their systems can withstand unforeseen disruptions.</p><h2>The Incident</h2><p>CrowdStrike encountered a significant issue with its Falcon Sensor software, leading to widespread outages and the notorious 'Blue Screen of Death' (BSOD) across numerous systems. This incident, coupled with a major Microsoft outage, underscores the complexity of the IT ecosystem and the potential for cascading failures.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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><h2>Microsoft Outage</h2><p>This week, Microsoft faced an unplanned widespread outage, causing disruptions across multiple services and leaving users worldwide grappling with the BSOD. The root cause was an issue with CrowdStrike's Falcon Sensor software, a tool designed to protect systems from cyberattacks. Despite attempts to roll back the update, many machines remained affected.</p><p>The outage had a global impact, affecting various platforms, including Microsoft 365, Azure, Amazon Web Services, and even social media sites like Instagram and eBay. It grounded flights, disrupted live broadcasts, and caused supermarket payment processing issues.</p><h2>Response and Resolution</h2><p>CrowdStrike's CEO, George Kurtz, provided an update stating that the issue had been identified and isolated, and a fix had been deployed. </p><p>While resolved, this incident highlights the risks associated with heavy reliance on cloud services and the necessity for robust resiliency strategies.</p><h2>Chaos Engineering vs. Resilience Testing</h2><h3>Chaos Engineering</h3><p>Popularized by Netflix, chaos engineering involves deliberately introducing failures into a system to uncover unknown issues in production-like environments. This practice helps identify vulnerabilities and strengthen system resilience against real-world disruptions.</p><ul><li><p><strong>Chaos Experiments</strong>: Conduct controlled experiments to simulate failures and observe system responses, as detailed in "Chaos Engineering" by Casey Rosenthal and Nora Jones.</p></li><li><p><strong>Continuous Testing</strong>: Regularly test systems under various failure scenarios to ensure continuous resiliency, echoing the continuous improvement ethos in "Lean Startup" by Eric Ries.</p></li></ul><h3>Resilience Testing</h3><p>Resilience testing focuses on validating known failure scenarios and the system's ability to recover from them. This ensures that systems can handle anticipated disruptions and maintain operational integrity.</p><ul><li><p><strong>Scenario Validation</strong>: Test systems against predefined failure scenarios to ensure they can recover effectively.</p></li><li><p><strong>Recovery Verification</strong>: Ensure that recovery mechanisms function correctly, maintaining system availability and performance.</p></li></ul><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/lessons-from-the-crowdstrike-conundrum?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 Think Big Code Small. This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/lessons-from-the-crowdstrike-conundrum?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="https://www.thinkbigcodesmall.io/p/lessons-from-the-crowdstrike-conundrum?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h2>Principles of Chaos Engineering</h2><p>Drawing from PhoenixNAP, here are some principles to guide effective chaos engineering:</p><ol><li><p><strong>Define the Steady State</strong>: Establish normal system behavior metrics as a baseline.</p></li><li><p><strong>Formulate Hypotheses</strong>: Predict how the system will react to specific disruptions.</p></li><li><p><strong>Plan Experiments</strong>: Design detailed failure simulations targeting critical components.</p></li><li><p><strong>Execute Experiments</strong>: Implement disruptions and monitor system responses.</p></li><li><p><strong>Analyze Results</strong>: Compare outcomes against the baseline to identify weaknesses.</p></li><li><p><strong>Improve and Iterate</strong>: Use insights to enhance system resilience continuously.</p></li></ol><h2>Best Practices for Chaos Engineering</h2><p>Based on the Medium article by The Cloud Architect, here are some best practices for a successful chaos engineering journey:</p><ul><li><p><strong>Start Small</strong>: Begin with small-scale experiments to build confidence and understanding.</p></li><li><p><strong>Automate</strong>: Use automation tools to implement and monitor chaos experiments.</p></li><li><p><strong>Collaborate</strong>: Foster a culture of collaboration among teams to address discovered issues.</p></li><li><p><strong>Document</strong>: Keep detailed records of experiments, outcomes, and improvements.</p></li><li><p><strong>Scale Gradually</strong>: Expand the scope of experiments gradually to encompass more significant parts of the system.</p></li></ul><h2>DevOps/SRE Strategy Integration</h2><p>Chaos engineering and resilience testing are crucial components of a comprehensive DevOps and Site Reliability Engineering (SRE) strategy. These practices should be integrated with existing engineering practices like automated testing and environment management to ensure robust system reliability and performance.</p><h3>Automated Testing</h3><p>Automated testing ensures that code changes do not introduce new failures. Integrating chaos engineering with automated testing helps identify potential disruptions early in the development lifecycle, improving overall system resilience.</p><h3>Environment Management</h3><p>Effective environment management includes maintaining consistent development, testing, and production environments. Chaos engineering can validate that these environments can withstand disruptions, ensuring reliable deployments and operations.</p><h2>Types of Chaos Engineering Tests</h2><ul><li><p><strong>Infrastructure Failure Tests</strong>: Simulate failures in the underlying infrastructure, like instance terminations.</p></li><li><p><strong>Application Failure Tests</strong>: Force shutdowns of critical services to identify single points of failure.</p></li><li><p><strong>Dependency Failure Tests</strong>: Assess how the system handles failures in third-party services.</p></li><li><p><strong>Network Failure Tests</strong>: Introduce latency or packet loss to test network robustness.</p></li><li><p><strong>Security Chaos Engineering Tests</strong>: Simulate cyber-attacks to evaluate system defenses.</p></li><li><p><strong>Operational Failure Tests</strong>: Test response to routine maintenance and unexpected operational issues.</p></li></ul><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:195371}" data-component-name="PollToDOM"></div><div><hr></div><h2>Conclusion</h2><p>The CrowdStrike incident is a powerful reminder that even top-tier cybersecurity solutions are not immune to issues that can cause widespread disruption. Organizations must adopt comprehensive resiliency strategies, including chaos engineering and resilience testing, to ensure robust defenses and operational efficiency. </p><p>As Bruce Schneier aptly puts it, "Security is a process, not a product," underscoring the ongoing journey toward true resiliency. By learning from these disruptions and proactively strengthening their systems, organizations can better navigate the complexities of the digital age.</p><h2>Additional Resources</h2><ul><li><p><a href="https://aws.amazon.com/blogs/architecture/verify-the-resilience-of-your-workloads-using-chaos-engineering/">Verify the resilience of your workloads using Chaos Engineering - AWS Blog</a></p></li><li><p><a href="https://devblogs.microsoft.com/dotnet/resilience-and-chaos-engineering/">Resilience and Chaos Engineering - Microsoft Blog</a></p></li><li><p><a href="https://phoenixnap.com/blog/chaos-engineering">Chaos Engineering: Definition, Principles, Best Practices - PhoenixNAP Blog</a></p></li><li><p><a href="https://medium.com/the-cloud-architect/best-practices-for-a-successful-chaos-engineering-journey-12862e044de1">Best Practices for a Successful Chaos Engineering Journey - Medium</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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[EP46 - Why Developer Experience]]></title><description><![CDATA[Welcome to this week's podcast, where we delve into the critical aspects of enhancing developer experience.]]></description><link>https://www.thinkbigcodesmall.io/p/ep46-why-developer-experience</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep46-why-developer-experience</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 18 Jul 2024 12:56:04 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/146749290/76ac4046cb60be34bc954a2545db67a7.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Welcome to this week's podcast, where we delve into the critical aspects of enhancing developer experience.  Imagine eliminating slow build times, navigating through well-documented processes, and experiencing streamlined onboarding. Prioritizing developer experience isn't just beneficial; it's essential in today's market. We explore the importance of understanding developers' challenges to boost productivity, reduce tech debt, and spark innovation.</p><p>Time is a precious commodity in software development, and prioritizing it will make a difference.  We explore the balance between developer autonomy and the necessary boundaries to maintain that order.  Simplicity and clarity in the process and tools are critical in maintaining high productivity.  Moreover, we'll examine why focusing on outcomes over processes is critical and how measuring the right metrics can lead to significant improvements.  </p><p>Join us as we uncover strategies to enhance the developer's experience, drive better outcomes, and transform how you build software.</p><p></p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at thinkbigcodesmall@gmail.com</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Why Do Developers Need Blocked-Out Time? ]]></title><description><![CDATA[Uncovering the Secrets to Peak Productivity]]></description><link>https://www.thinkbigcodesmall.io/p/why-do-developers-need-blocked-out</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/why-do-developers-need-blocked-out</guid><dc:creator><![CDATA[Daniel Horton]]></dc:creator><pubDate>Fri, 12 Jul 2024 18:28:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yNvx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yNvx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yNvx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yNvx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:381744,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!yNvx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!yNvx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cd2d661-0ca6-482f-a267-a3750d0c51b6_1792x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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>At least once a week, I hear someone say they &#8220;<em>wish they had time to get their work done,&#8221;</em> had fewer meetings and interruptions, and did not feel they needed to work overtime just to finish their work. According to the&nbsp;<a href="https://insights.stackoverflow.com/survey/2020#work-overtime">2020 Stack Overflow Survey</a>, more than 75 percent of developers work overtime occasionally, while 25 percent work overtime at least once weekly. Moreover,&nbsp;<a href="https://www.software.com/reports/code-time-report">about one-third of developers code on the weekend</a>.</p><p>This is a real issue. It creates a caustic working environment, destroys the culture, eliminates productivity, and can ultimately hurt the organization's growth as all the good people leave. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>When we worked in the office, we could go to a meeting room, close our door, or even just put on headphones. </p><blockquote><p>We seem to believe we must attend every meeting we are asked to attend. </p></blockquote><p><strong>Here's a question we need to ask ourselves</strong>: is this a process problem that needs to be addressed at the project and leadership level, or is it a personal problem because we find it difficult to say no? </p><blockquote><p>Maybe Both!</p></blockquote><p><a href="https://en.wikipedia.org/wiki/Carl_Jung">Carl Jung</a> once said, 'The creative mind plays with the objects it loves. That&#8217;s why it&#8217;s so important to find a space where you can be alone and uninterrupted to immerse yourself in your work.' Imagine a workspace where you can think clearly, focus on the task at hand, and let your creativity flow. This is the potential of an uninterrupted workspace.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share Think Big Code Small&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.thinkbigcodesmall.io/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share Think Big Code Small</span></a></p><h2>The Power of Deep Work</h2><p><a href="https://www.linkedin.com/pulse/bits-nibbles-bytes-daniel-horton/?trackingId=6eMO4qKcTQG%2BtbWykLMWLA%3D%3D">Content switching is a mind-killer</a>. Developers face constant interruptions and distractions &#8212;emails pinging, meetings beckoning, and colleagues dropping by with "quick questions." True productivity is impossible. </p><p>True productivity happens at a deeper level, below the surface of all this noise, in the tranquil depths of uninterrupted concentration.</p><p>Blocked-out time allows developers to plunge into these depths, achieving what state psychologist <a href="https://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi">Mihaly Csikszentmihalyi</a> calls "flow." </p><p>Time dissolves, creativity flourishes in this flow state, and complex problems unravel with elegant simplicity. </p><p>Here, developers transform lines of code into robust applications and innovative solutions.</p><h2>Interruptions: The Silent Productivity Killer</h2><p>Developers lose a significant amount of time due to interruptions while coding. According to research, it can take up to <strong>23 minutes to regain full concentration</strong> after an interruption. </p><p>This disruption is particularly costly for developers whose work demands intricate problem-solving and deep focus. </p><p>The frequent need to switch contexts can derail progress, decreasing productivity and efficiency. Each interruption is like tossing a wrench into its gears, derailing thoughts and fracturing focus.  </p><p>These interruptions are particularly costly to the organization.</p><p>Without blocked-out time, developers find themselves in a perpetual cycle of context switching, akin to a car stuck in stop-and-go traffic&#8212;always moving but never quite reaching full speed.</p><h2>Crafting a Fortress of Focus</h2><p>Creating blocked-out time is like building a fortress around one&#8217;s focus. Here are the secrets to constructing that fortress:</p><ul><li><p><strong>Set Clear Boundaries</strong>: Communicate with your team about your blocked-out time. Use tools like Slack statuses or calendar blocks to signal when you&#8217;re in deep work mode. </p><ul><li><p>Teams need to define working hours.</p></li><li><p>Leaders must be careful to manage project meetings and support heads down time. </p></li><li><p>Google and others have no meeting days.</p></li></ul></li></ul><div class="pullquote"><p>This must be done at the corporate level &#8212; It is a cultural change; if only one team or group tries this &#8212; it will fail. </p></div><ul><li><p><strong>Optimize Your Environment</strong>: Design a workspace that minimizes distractions. Noise-canceling headphones, tidy desks, and dedicated workspaces can help maintain concentration.</p><ul><li><p>Create a team rule for the office: headphones are the same as a closet door. </p></li><li><p>Virtually &#8212; use the out-of-office settings or another process to communicate the same status. </p></li><li><p><a href="https://developernation.net/blog/how-to-optimize-workspace-to-improve-developers-productivity/">How to Optimize your Workspace</a></p></li></ul><p></p></li><li><p><strong>Leverage Technology</strong>: Utilize productivity apps and tools that support focus.</p><ul><li><p>Leverage tools to block notifications.</p></li><li><p>Turn off the phone and other social media apps.</p></li><li><p>One idea is to create another image or set up another laptop only for deep work&#8212;without distractions. </p></li><li><p><strong><a href="https://devops.com/10-ways-to-increase-productivity-by-improving-your-developer-experience/">10 Ways to Increase Productivity by Improving Your Developer Experience</a></strong></p></li></ul><p></p></li><li><p><strong>Prioritize Tasks</strong>: Not all tasks require deep work. Reserve your blocked-out time for the most challenging and creative tasks, leaving routine activities for less focused periods.</p><ul><li><p>Learn about the <a href="https://jamesclear.com/ivy-lee">Lee Method</a> or <a href="https://www.productplan.com/glossary/eisenhower-matrix/">Eisenhower Matrix</a>. </p><p></p></li></ul></li></ul><h2>The Ripple Effect of Productivity</h2><p>Blocked-out time benefits developers and has a ripple effect throughout the organization. When developers operate at peak productivity, projects advance more swiftly, innovation blossoms and the quality of work elevates. </p><p>Teams sync more efficiently, deadlines become less daunting, and overall morale boosts as everyone rides the wave of collective progress.</p><p>This helps teams move closer to high-performing teams requiring less management and oversight. </p><h2>Embracing the Future of Work</h2><p>Blocked-out time is more than just a productivity hack &#8212;it&#8217;s a profound shift in how we approach work. </p><p>It acknowledges that developers, like all creative professionals, need undisturbed stretches to dive deep, think critically, and create innovatively. </p><div class="pullquote"><p>Stop thinking of technologists as line workers and realize they are artists who need time to be creative and problem-solvers. </p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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[EP45 - The art vs the science of leadership and project delivery ]]></title><description><![CDATA[Welcome to another episode, in which Chris and I dive deep into the difference between the science of project delivery and the art of project leadership.]]></description><link>https://www.thinkbigcodesmall.io/p/ep45-the-art-vs-the-science-of-leadership</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep45-the-art-vs-the-science-of-leadership</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Tue, 09 Jul 2024 12:03:21 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/146373010/6f00a848d0ec36ebe9e5cbfb082507dd.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Welcome to another episode, in which Chris and I dive deep into the difference between the science of project delivery and the art of project leadership. Over 70% of technology projects fail to achieve their goals. So, the question is, what does it take to steer a multi-year project or initiative to success?</p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at podcast@thinkbigcodesmall.co</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Orchestrating Developer Delight]]></title><description><![CDATA[My talk from LambdaConf 2024]]></description><link>https://www.thinkbigcodesmall.io/p/orchestrating-developer-delight</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/orchestrating-developer-delight</guid><dc:creator><![CDATA[Chris Westerhold]]></dc:creator><pubDate>Thu, 04 Jul 2024 12:40:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z8Gu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z8Gu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 424w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 848w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 1272w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png" width="1097" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:1097,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95600,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 424w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 848w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.png 1272w, https://substackcdn.com/image/fetch/$s_!Z8Gu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe56a8115-8270-41f4-a97d-7184678b63f7_1097x619.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"><svg role="img" 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"><g><title></title><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"><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"><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>It was a pleasure to go out to Estes Park, CO, for this wonderful conference.  Check out my talk below.</p><div id="youtube2-3awqetigTfQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;3awqetigTfQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/3awqetigTfQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Spend time making DevEx improvements, not digging up the data]]></title><description><![CDATA[Data fidelity really matters]]></description><link>https://www.thinkbigcodesmall.io/p/spend-your-time-making-improvements</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/spend-your-time-making-improvements</guid><dc:creator><![CDATA[Chris Westerhold]]></dc:creator><pubDate>Sat, 29 Jun 2024 13:36:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wPe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wPe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wPe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wPe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:607318,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!wPe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!wPe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa438501f-5c52-475a-a3f8-d25f5a8dc30e_1792x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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>Engineering leadership is hard, there are few that would argue that fact.  Its even harder when you don&#8217;t have any telemetry on how well your organization is operating.  This is the root of the metrics frameworks that are out there today like Dora, SPACE, or DevEx.  </p><p>Today we are not going to argue the merit of any of these frameworks but instead talk about the data itself.  I have seen many organizations get absolutely lost in gathering the data, with initiatives to track certain sets of data taking months or even years. </p><blockquote><p>I spoke with a company not to long ago that spent 12M to gather an implement the Dora metrics! </p></blockquote><p>While getting your data in order is very valuable, is that the highest value problem you have?  Are you looking to track metrics or actually make changes?</p><blockquote><p>Don&#8217;t fall in love with your dashboards!</p></blockquote><p>There are two ways to try and collect data, through qualitative surveys and through quantitative system data.  They both come with their challenges but you need to figure out which one is better for a given scenario.</p><p>Lets take a look at how to gather Time to Value through quantitative methods.  This isn&#8217;t the most complicated metric to calculate but it paints a good picture of some challenges.  I asked my ChatGPT friend to describe how to calculate this metric. </p><ul><li><p><strong>Identify Key Stages</strong>:</p><ul><li><p><strong>Commit Time</strong>: When code is committed to the repository.</p></li><li><p><strong>Build Time</strong>: When the build process starts and completes.</p></li><li><p><strong>Testing Time</strong>: When automated tests are run and completed.</p></li><li><p><strong>Deployment Time</strong>: When code is deployed to production and available for use.</p></li></ul></li><li><p><strong>Use CI/CD Tools</strong>:</p><ul><li><p>Tools like Jenkins, GitLab CI, CircleCI, or GitHub Actions can help you track the time from commit to build completion.</p></li><li><p>Use these tools to capture timestamps for when a commit is made, when the build starts, and when the build completes.</p></li></ul></li><li><p><strong>Version Control Systems</strong>:</p><ul><li><p>Use your version control system (e.g., Git) to pull commit timestamps.</p></li></ul></li><li><p><strong>Automated Testing Frameworks</strong>:</p><ul><li><p>Integrate automated testing frameworks that log timestamps when tests start and finish.</p></li></ul></li><li><p><strong>Deployment Tools</strong>:</p><ul><li><p>Deployment tools like Spinnaker, ArgoCD, or custom deployment scripts should log when deployments start and finish.</p></li></ul></li><li><p><strong>Monitoring and Logging Tools</strong>:</p><ul><li><p>Use monitoring and logging tools (e.g., Splunk, ELK stack, Datadog) to track when new deployments go live and are accessible to users.</p></li></ul></li><li><p><strong>Aggregating Data</strong>:</p><ul><li><p>Aggregate the collected timestamps from different tools and stages. You can use a data visualization or analysis tool like Grafana, Kibana, or even a custom dashboard.</p></li></ul></li><li><p><strong>Calculating Time to Value</strong>:</p><ul><li><p>Calculate the duration between the commit time and the deployment time to get the "time to value" metric.</p></li></ul></li><li><p><strong>Automating the Process:</strong></p><ul><li><p>Set up a pipeline that automatically logs and aggregates these metrics after each deployment.</p></li><li><p>Use tools like Prometheus to scrape these metrics and Grafana to visualize them.</p></li></ul></li></ul><div class="pullquote"><p>That it!  Thats all you have to do&#8230; couldn&#8217;t be more simple, right? </p></div><p>All you need to do is connect all of these systems together, have a ID that can be passes around, build a data model, and a few reports.  Simple!</p><p>When considering how to track a given metric, what is the fidelity that you need to get the job done?  Is this a metric that you will be tracking across teams indefinitely?  Considering this is one of the Dora metrics it might be worth going through the task of creating this dataset or leveraging engineering insights tools like <a href="http://getdx.com">DX</a> to do the hard work for you.</p><blockquote><p>The point here is that the fidelity of the information you gather really matters and should depend on what you are trying to accomplish.&nbsp;  </p></blockquote><p>So how else can you track some of these metrics?  Qualitative surveys?  Thats correct, they can get you to an answer pretty quickly and at a useful fidelity.</p><p>Let&#8217;s look at another metric like Time to first commit.  This is far easier to track than Time to Value but still has its complexity.  If you tracked this via survey, it could be a few simple questions for anyone that is new to a team.   </p><ul><li><p>How long did it take for you to make your first commit?</p></li><li><p>How comfortable are you in making another commit?</p></li></ul><p>Considering you would use this metric to help improve and track onboarding, is there a difference between 1.337 days (quantitative)  and 1.5 days (qualitative)?  I would say that it doesn&#8217;t really matter at all, especially when considering the time, energy, and effort that was saved.   </p><p>Another consideration is the additional information you can gather from surveys, like sentiment.   It can be very easy to game the system when it comes to 1st or 10th commits to a codebase but when you overlay that with a sentiment question you can get some additional insights.   For example, someone might have done their first commit on the first day on the team&#8230; but the codebase was so complicated and the deployment process so flakey&#8230; that it was terrifying.  </p><blockquote><p>This is another great mechanism to gather information on how well a given team or organization is doing.  </p></blockquote><p>Don&#8217;t get me wrong, there is a ton of great uses for quantitative system data.  The point is to consider the best way to gather data to help provide insights to a given problem or set of problems.  As you go on you metrics and data journey, I would consider the collection costs and the fidelity of information that you need to get the job done. </p><div class="pullquote"><p>Spend your time working on the problem and not on gathering the data, your engineering organization and their teams will thank you.</p></div><p>Gathering feedback from the development community and making them apart of the process will improve culture and lead to better outcomes.  Care just need to be taken on how to do it&#8230; because no one wants to be micro-managed or micro-measured. </p><p>Any thoughts or questions?  Let me know!</p><p>Chris  </p>]]></content:encoded></item><item><title><![CDATA[EP44 - Interview with Ashley at Aptible]]></title><description><![CDATA[Platforms and Products to drive an organization forward]]></description><link>https://www.thinkbigcodesmall.io/p/interview-with-ashley-at-aptible</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/interview-with-ashley-at-aptible</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 27 Jun 2024 13:29:44 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/146045301/9f3356e89a3a36b12e8ca20e00c9413e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at podcast@thinkbigcodesmall.co</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[EP43 - Is product architecture taking over for enterprise architecture?]]></title><description><![CDATA[Wanting to learn how to code or improve your coding skills?]]></description><link>https://www.thinkbigcodesmall.io/p/ep43-is-product-architecture-taking</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep43-is-product-architecture-taking</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Wed, 05 Jun 2024 13:29:19 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/145308684/7733ace990ba1c6f9b87222162c99b6d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at podcast@thinkbigcodesmall.co</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item><item><title><![CDATA[Technical Principal vs. Solution Architect]]></title><description><![CDATA[Unpacking the Key Differences of the roles.]]></description><link>https://www.thinkbigcodesmall.io/p/technical-principal-vs-solution-architect</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/technical-principal-vs-solution-architect</guid><dc:creator><![CDATA[Daniel Horton]]></dc:creator><pubDate>Fri, 31 May 2024 17:23:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lIvA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Both Technical Principals and Solution Architects play pivotal roles in large consulting engagements. While their responsibilities might overlap, they each bring unique value. Understanding these differences is crucial for maximizing their contributions and ensuring the success of a project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lIvA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lIvA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lIvA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:413794,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&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_!lIvA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!lIvA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facb7d862-09ad-4343-bddd-36ae1d70c792_1024x1024.webp 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"><svg role="img" 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"><g><title></title><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"><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"><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><div class="pullquote"><p>The skill sets of Technical Principals and Solution Architects <br>complement each other &#8212;They are not the same thing!</p></div><h1>The Role of a Technical Principal</h1><h2><strong>Strategic Advisor</strong></h2><p>Technical Principals act as strategic advisors to client leadership teams, intertwining technology, and business strategies to address various organizational challenges, from business architecture to technical management. Their primary goal is to build and maintain trusted relationships with senior stakeholders, including C-suite executives.</p><h2><strong>Broad Focus</strong></h2><p>This role intricately blends deep technical expertise with strategic business insights, ensuring seamless alignment of technological and business objectives. Technical Principals guide and mentor engineering teams, fostering continuous improvement and maintaining high-quality standards. They engage strategically with clients, offer solutions, contribute to pre-sales activities, shape winning proposals, and represent the company at industry events.</p><h2><strong>Leadership</strong></h2><p>Technical Principals provide leadership by guiding technical delivery and fostering a culture of growth and continuous improvement. They handle various responsibilities, including client engagement, mentorship, and strategic communication, driving successful client engagements by balancing strategic vision with technical execution.</p><h1>The Role of a Solution Architect</h1><h2><strong>Technical Design</strong></h2><p>Solution Architects focus primarily on designing and implementing specific technology solutions. Their expertise lies in creating and managing architectural frameworks that meet functional and non-functional project requirements. They are responsible for defining the overall architecture, selecting appropriate technologies, and ensuring integration with existing systems. Key deliverables include architectural blueprints, technical specifications, and detailed design documents. They also address performance, scalability, and security concerns, ensuring the solutions are robust and sustainable.</p><h2><strong>Project-Based</strong></h2><p>Unlike Technical Principals, Solution Architects focus on specific projects or systems. They collaborate closely with technical and business stakeholders to ensure solutions align with project requirements and organizational goals.</p><h2><strong>Implementation Focus</strong></h2><p>Solution Architects are deeply involved in a project's technical aspects, from initial design to final implementation. They ensure that technical solutions are sound, scalable, and meet the project's needs.</p><div><hr></div><p></p><blockquote><p>Is this how you define these roles? Add a comment and share your experience and understanding. </p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/p/technical-principal-vs-solution-architect/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.thinkbigcodesmall.io/p/technical-principal-vs-solution-architect/comments"><span>Leave a comment</span></a></p><div><hr></div><h1>Why Both Roles Are Essential</h1><h2>Strategic Alignment and Execution</h2><p>The presence of both roles in a consulting engagement ensures that strategic alignment and technical execution are managed effectively. The Technical Principal provides high-level strategic oversight and client relationship management, while the Solution Architect ensures that the technical solutions are designed and implemented correctly.</p><h2>Complementary Skill Sets</h2><p>The skill sets of Technical Principals and Solution Architects complement each other. The Technical Principal's broad focus on strategy, leadership, and client engagement is balanced by the Solution Architect's deep technical expertise and project-specific focus. This balance is crucial for addressing large consulting projects' complex and multifaceted nature.</p><h2>Enhanced Project Outcomes</h2><p>By leveraging the strengths of both roles, consulting firms can deliver more comprehensive and practical solutions. The Technical Principal's strategic insights and leadership, combined with the Solution Architect's technical acumen, lead to better project outcomes and higher client satisfaction.</p><h1>Parting Thoughts</h1><p>Both Technical Principals and Solution Architects are essential for the success of large consulting engagements. Understanding their distinct roles and how they complement each other is vital to maximizing their contributions and ensuring project success. </p><p>Together, they provide the strategic oversight and technical expertise to navigate complex projects and deliver exceptional results.</p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thinkbigcodesmall.io/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">Think Big Code Small is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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></p>]]></content:encoded></item><item><title><![CDATA[EP 42 - Organization choices and its impact on engineering effectiveness - Deep Dive]]></title><description><![CDATA[In this episode Dan and Chris take a deeper dive into one of our articles, &#8220;The significance of organizational decisions on engineering efficiency&#8221;.]]></description><link>https://www.thinkbigcodesmall.io/p/ep-42-organization-choices-and-its</link><guid isPermaLink="false">https://www.thinkbigcodesmall.io/p/ep-42-organization-choices-and-its</guid><dc:creator><![CDATA[Think Big Code Small]]></dc:creator><pubDate>Thu, 23 May 2024 11:03:54 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/144894147/2f9d5493529d3fc8fe2cfc4bfa8fa297.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode Dan and Chris take a deeper dive into one of our articles, &#8220;The significance of organizational decisions on engineering efficiency&#8221;.    We dive deeper into more examples, discuss organizational change, and how developer seem to be left holding the bag when it comes to productivity.  Join us for another great episode!</p><p></p><h3>Wanting to learn how to code or improve your coding skills?</h3><p>We have a deal with CodeCrafters to save you 40% off their service. With CodeCrafters you get to learn by writing real complex software. Recreate Redis, Git, Docker &#8212; with your own hands. Gain expert-level confidence by taking action and<br>diving deep, learning from the world's best.</p><p>Get your savings <a href="https://app.codecrafters.io/join?via=ThinkBigCodeSmall">here</a>!</p><h3>Have feedback or want to request a topic?</h3><p>We would love to hear from you! Send us an email at podcast@thinkbigcodesmall.co</p><h3>Don&#8217;t forget to subscribe to us on our new <a href="https://youtube.com/@thinkbigcodesmall">YouTube channel</a></h3><h3>Follow us on socials</h3><p><a href="https://www.instagram.com/thinkbigcodesmall/">Instagram</a> - <a href="https://www.tiktok.com/">TikTok</a> - <a href="https://twitter.com/TheRealTBCS">X</a></p>]]></content:encoded></item></channel></rss>