<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged agile</title>
<link>https://coderlegion.com/tag/agile</link>
<description>Powered by Question2Answer</description>
<item>
<title>How to bulk edit Azure DevOps work items without Excel (works on Mac)</title>
<link>https://coderlegion.com/31073/how-to-bulk-edit-azure-devops-work-items-without-excel-works-on-mac</link>
<description>&lt;hr&gt;
&lt;p&gt;title: &quot;How to bulk edit Azure DevOps work items without Excel (works on Mac)&quot;&lt;br&gt;
published: true&lt;br&gt;
description: &quot;Open in Excel needs the Office add-in and Windows. Three ways to edit many Azure DevOps work items at once: bulk edit in the query, CSV import, or a spreadsheet grid in the browser.&quot;&lt;br&gt;
tags: azuredevops, productivity, agile, tutorial&lt;br&gt;
canonical_url: &lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/guides/bulk-edit-azure-devops-work-items-without-excel/&quot;&gt;https://jr-devtools.com/guides/bulk-edit-azure-devops-work-items-without-excel/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;cover-image-https-jr-devtools-com-bulk-editor-screenshot-grid-png&quot;&gt;cover_image: &lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/bulk-editor/screenshot-grid.png&quot;&gt;https://jr-devtools.com/bulk-editor/screenshot-grid.png&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer of Bulk Editor, one of the options mentioned below. Originally published on &lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/guides/bulk-edit-azure-devops-work-items-without-excel/&quot;&gt;jr-devtools.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;“Open in Excel” relies on the Azure DevOps Office Integration add-in: Windows only, and a frequent source of TF80012-style errors and Excel crashes. If you're on a Mac, can't install the add-in, or just want it to work, here are three ways to edit many work items at once.&lt;/p&gt;
&lt;h3 id=&quot;1-bulk-edit-in-the-query-results-built-in-&quot;&gt;1. Bulk edit in the query results (built in)&lt;/h3&gt;
&lt;p&gt;In a query or backlog, select several work items (Shift- or Ctrl-click), open the context menu and choose &lt;strong&gt;Edit&lt;/strong&gt;. You can set one or more fields to the &lt;strong&gt;same value&lt;/strong&gt; for all selected items, for example a new iteration, state or assignee.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt; built in, nothing to install. &lt;strong&gt;Limit:&lt;/strong&gt; every selected item gets the same value, so it doesn't help when each row needs its own estimate, title or tag.&lt;/p&gt;
&lt;h3 id=&quot;2-csv-export-and-import-built-in-&quot;&gt;2. CSV export and import (built in)&lt;/h3&gt;
&lt;p&gt;Run a query, export it with &lt;strong&gt;Export to CSV&lt;/strong&gt;, edit the file in any spreadsheet app, and bring it back with &lt;strong&gt;Boards → Work items → Import work items&lt;/strong&gt;. Rows with an ID update existing items, rows without one create new items.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt; works on any OS, handles different values per row. &lt;strong&gt;Limits:&lt;/strong&gt; rich-text fields such as Description are exported as raw HTML; errors only show up at import time; and nothing warns you if someone changed a work item after your export.&lt;/p&gt;
&lt;h3 id=&quot;3-a-spreadsheet-grid-in-the-browser&quot;&gt;3. A spreadsheet grid in the browser&lt;/h3&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/bulk-editor/&quot;&gt;Bulk Editor&lt;/a&gt; (made by me) opens a query, a backlog selection or any list of work items in a spreadsheet-like grid inside Azure DevOps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;type in cells, use Enter and Tab, paste a block copied from Excel, and undo;&lt;/li&gt;
&lt;li&gt;pick lists, required fields, states and area/iteration paths come from your own process, and invalid values are flagged before you publish;&lt;/li&gt;
&lt;li&gt;nothing is saved until you select &lt;strong&gt;Publish&lt;/strong&gt;, and a row that someone else changed in the meantime is refused instead of overwritten;&lt;/li&gt;
&lt;li&gt;rich-text fields are never flattened; export to a clean .xlsx without HTML tags;&lt;/li&gt;
&lt;li&gt;Pro: import .xlsx back, add new work items and children, and change parents in tree queries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://jr-devtools.com/bulk-editor/screenshot-grid.png&quot; alt=&quot;Work items in a spreadsheet-like grid inside Azure DevOps&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good:&lt;/strong&gt; nothing to install on your computer, works on Mac and Linux, different values per row with validation. &lt;strong&gt;Limits:&lt;/strong&gt; Azure DevOps Services only for now; Pro is paid ($12 per organization per month), with a free plan of 25 published work items per organization per month and a 14-day Pro trial.&lt;/p&gt;
&lt;h3 id=&quot;which-one-should-i-use-&quot;&gt;Which one should I use?&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;You want to …&lt;/th&gt;&lt;th&gt;Use&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Move 40 items to the next sprint&lt;/td&gt;&lt;td&gt;Bulk edit in the query&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Create a few hundred items once, from a plan someone sent you&lt;/td&gt;&lt;td&gt;CSV import&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Groom a backlog: different estimates, titles and owners per row, regularly&lt;/td&gt;&lt;td&gt;A grid in the browser&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Keep working in Excel on Windows with formulas&lt;/td&gt;&lt;td&gt;Open in Excel still does that, if the add-in works for you&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;related-guides&quot;&gt;Related guides&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/guides/azure-devops-excel-add-in-not-working/&quot;&gt;Azure DevOps Excel add-in not working: fixes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/guides/azure-devops-work-items-excel-mac/&quot;&gt;Azure DevOps work items in Excel on a Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://jr-devtools.com/bulk-editor/&quot;&gt;Bulk Editor: features, pricing and free plan&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Not affiliated with Microsoft. “Azure DevOps”, “Excel” and “Office” are trademarks of Microsoft.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/31073/how-to-bulk-edit-azure-devops-work-items-without-excel-works-on-mac</guid>
<pubDate>Wed, 14 Oct 2026 13:45:05 +0000</pubDate>
</item>
<item>
<title>The thinking behind Millrace</title>
<link>https://coderlegion.com/23817/the-thinking-behind-millrace</link>
<description>&lt;p&gt;Did you ever notice how digital task boards are suddenly all the same horrid thing. Heavy engines of compromise that are as happy to supply a Gantt chart and resource plan as they are to give you a Kanban board.&lt;/p&gt;
&lt;h3 id=&quot;slow-and-steady-not-slow-and-heavy&quot;&gt;Slow and steady, not slow and heavy&lt;/h3&gt;
&lt;p&gt;That moment of realization happened for me a few months back and I spent a great deal of time playing “Work Management Crossy Road” by jumping between all the available tools to find a new home for my work. I hated them all.&lt;/p&gt;
&lt;p&gt;The thing that I found really disappointing was that the Kanban board felt so much like it was tagged onto something else. Something big, greasy, and hostile. Like when you realize that “Scrum Master” has decades under their belt as a pathological project manager. They will happily rename all their PMBOK shenanigans to remain employed, but their approach hasn’t changed a bit.&lt;/p&gt;
&lt;h3 id=&quot;finish-the-good-stuff-and-let-mediocre-ideas-fall-away&quot;&gt;Finish the good stuff and let mediocre ideas fall away&lt;/h3&gt;
&lt;p&gt;My work method merges ideas from Getting Things Done at the big-rock level, and Personal Kanban to slice things up and stay focused on what really matters. That lets me apply Pomodoro Technique at the smallest scale to build up chunks of focus time that move things forward.&lt;/p&gt;
&lt;p&gt;When it comes to a task board, that means creating a big-rock card with loosely formed ideas that I might choose to never work on. In fact, most of the ideas will be superseded by newer better ones and that’s a good thing. If the idea survives, I’ll slice chunks out of it and flow them across the board to get them done.&lt;/p&gt;
&lt;p&gt;My up-next and in-flight columns need limits. These are the areas I need to carefully weed. Other columns tend to have their pace set by those two handling-time columns. Sometimes I like to break rules, so WIP limits are a visual thing, not an enforced policy.&lt;/p&gt;
&lt;p&gt;Because all my work tends to happen on a screen, I like prominent links on the card, so I can teleport to where the work is without opening up the card. While I reject the idea of a due date, I do like to have my tasks wake up at relevant moments, so a next-action date is useful.&lt;/p&gt;
&lt;p&gt;To reflect on my work, I like to review my completed items each week. If I can tag the crucial stuff, I can see if it’s making it all the way to “done”. A few tasteful charts can be useful in checking myself when I go off the rails. They help direct me to areas that need improvement, which is helpful.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=16831499793184690071&quot; alt=&quot;A dashboard of charts that show different aspects of the work&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;a-certain-level-of-polish&quot;&gt;A certain level of polish&lt;/h3&gt;
&lt;p&gt;There also needs to be a certain level of polish. The user interface doesn’t have to spark a new trend in app design, but what I can’t tolerate are paper cuts. A small irritation that I scrape past every time I check in on my work is a sure-fire productivity killer.&lt;/p&gt;
&lt;p&gt;When I was trying out all these “productivity tools”, I kept finding blatant, reproducible, and distracting issues. Like one tool where I added a new card to the board only for it to vanish as I was typing in the title. The steps to reproduce this involved moving a card that triggered an automation, then adding a new card before the automation completed. This would be a forgivable edge case if this wasn’t one of the most common moments you might add a new card.&lt;/p&gt;
&lt;p&gt;Or maybe it’s the tool that only let you add links to the rich-text field. Copy. Type. Locate icon. Click. Paste. Nope. On top of this, you could only see the link by opening the card. That’s too much friction when I have links on around 60-80% of my cards.&lt;/p&gt;
&lt;p&gt;A tool you use occasionally can have a rough patch or two, but one you use to orient your day and manage your energy has no room for splinters.&lt;/p&gt;
&lt;h3 id=&quot;calm-slow-smooth-fast&quot;&gt;Calm, slow, smooth, fast&lt;/h3&gt;
&lt;p&gt;The thing is, we’ve all seen someone trying to achieve something under pressure. They transform from a sentient human into a comedic slapstick actor. You know what I mean! They are baking a cake and it’s boring to wait for stuff to happen, so they start doing other things at the same time. Maybe they wash up some of the bowls and spoons. No big deal.&lt;/p&gt;
&lt;p&gt;But then they catch a hint of that unmistakable burning smell. Oh no! The cake is burning. It’s not just that their calm has gone, the whole chain of calm-slow-smooth-fast has collapsed.&lt;/p&gt;
&lt;p&gt;They whip their hands out of the washing up bowl, splashing water over the kitchen floor. They make an urgent grab for the oven glove, but knock it off the worktop. They pick it up, pull open the oven door, and use the half-on glove to grab the baking tray. The start to pull the cake out of the oven, burn the bit of their hand that isn’t in the glove, and just before the cake gets flopped upside down on the floor they realize that the burning smell was just a thin edge catching.&lt;/p&gt;
&lt;p&gt;As the cake splatters on the floor, they realize it could have done with another ten minutes. Now it’s ruined. They should probably run their hand under a cold tap, but before they get to the sink they’ve slipped up on the wet floor.&lt;/p&gt;
&lt;p&gt;It’s ridiculous. I agree. But this is how most people approach their work. They are over-burdened and their response is to make the work harder.&lt;/p&gt;
&lt;p&gt;That’s why your Kanban board needs to be a source of calm. Calm is slow. Slow is smooth. Smooth is fast.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=13092992433868461606&quot; alt=&quot;A simple Kanban board with WIP limits&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;fin&quot;&gt;Fin&lt;/h3&gt;
&lt;p&gt;And that’s it. That’s the thinking. I didn’t build a Kanban board. I created a calm space to think about my work, my energy, and my impact.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/23817/the-thinking-behind-millrace</guid>
<pubDate>Thu, 30 Jul 2026 08:23:00 +0000</pubDate>
</item>
<item>
<title>Am I Deployable?</title>
<link>https://coderlegion.com/21255/am-i-deployable</link>
<description>&lt;p&gt;Tony Kelly hosts our latest episode of Continuous Delivery Office Hours, with Bob Walker and Steve Fenton.&lt;/p&gt;
&lt;p&gt;In this episode of Continuous Delivery Office Hours, we ponder how you know whether your software is deployable so you can be confident you're meeting the Continuous Delivery (CD) principle of being deployable at all times.&lt;/p&gt;
&lt;p&gt;To ensure software is deployable, teams must shift from manual testing to automated pipelines. Automation provides immediate feedback, captures institutional knowledge, and reduces long-term costs. Strategies like the Strangler Pattern help modernize legacy code for greater reliability.&lt;/p&gt;
&lt;p&gt;Books mentioned in this episode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous Delivery by Dave Farley and Jez Humble&lt;/li&gt;
&lt;li&gt;Extreme Programming Explained by Kent Beck&lt;/li&gt;
&lt;li&gt;Seeing Like a State by James C Scott&lt;/li&gt;
&lt;li&gt;The Phoenix Project / The Unicorn Project by Gene Kim et al&lt;/li&gt;
&lt;li&gt;Toyota Production System by Taiichi Ohno&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Videos</category>
<guid isPermaLink="true">https://coderlegion.com/21255/am-i-deployable</guid>
<pubDate>Wed, 01 Jul 2026 09:00:00 +0000</pubDate>
</item>
<item>
<title>Why Agile Does NOT Mean &quot;We'll Figure It Out Later”</title>
<link>https://coderlegion.com/21132/why-agile-does-not-mean-well-figure-it-out-later</link>
<description>&lt;p&gt;One of the first things I learned about Agile was that it is flexible and always welcomes change.&lt;/p&gt;
&lt;p&gt;In my experience, requirements changed almost every single time, customer feedback arrived midway, and sometimes even a new idea suddenly became much more important than the original plan. But Agile always helped me to adapt to all these changes. And this was probably the biggest reason why Agile became so popular in modern software development.&lt;/p&gt;
&lt;p&gt;I always thought plans were supposed to give you some sort of direction. So when I read that Agile was all about welcoming change, my brain was like… Huh… wait, then why even bother planning?&lt;/p&gt;
&lt;p&gt;This sounded completely reasonable at first, and that’s exactly where I ended up believing that Agile means &quot;I'll figure it out later.&quot; But that’s not what Agile is trying to help teams achieve.&lt;/p&gt;
&lt;p&gt;So if Agile isn't against planning, then why does this misunderstanding even exist? Or honestly, what does Agile planning actually look like, if not “figure it out as you go”?&lt;/p&gt;
&lt;p&gt;That's what this blog is actually all about.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;if-agile-welcomes-change-why-plan-at-all-&quot;&gt;If Agile Welcomes Change, Why Plan At All?&lt;/h2&gt;
&lt;p&gt;Before I talk about Agile, I will tell you a simple scenario which always happens to me, and might have happened to you as well.&lt;/p&gt;
&lt;p&gt;When I plan a trip with my friends, I tend to decide things beforehand, like where we will go, how much budget we will need, where we will stay, and which places we will visit.&lt;/p&gt;
&lt;p&gt;Creating that plan does not guarantee that everything will happen exactly as I expected. Every other time, or sometimes it feels like every single time, ticket prices increase before I even start booking. Sometimes, the place that I planned to visit gets temporarily shut down due to some XYZ reason. Also, nature does not work by my direction, which somehow always manages to ruin my plan and eventually my mood, but anyways.&lt;/p&gt;
&lt;p&gt;These things do not make the plan useless. Due to the unexpected changes that can happen later, I would not stop planning altogether. In fact, the reason I plan is because I do not want to get lost when those unexpected changes happen. A plan gives me a starting direction and helps me get going. &lt;/p&gt;
&lt;p&gt;Basically, I'm trying to make a very simple point here — having a plan does not eliminate uncertainty. But uncertainty does not make planning pointless. &lt;/p&gt;
&lt;p&gt;Even though planning and change can live together in everyday situations like a trip, many people still believe Agile and planning cannot coexist.&lt;/p&gt;
&lt;p&gt;And this myth has a very specific origin.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;where-the-agile-means-no-planning-myth-comes-from&quot;&gt;Where The &quot;Agile Means No Planning&quot; Myth Comes From&lt;/h2&gt;
&lt;p&gt;For me, the answer started while I was going through a document called the Agile Manifesto.&lt;/p&gt;
&lt;p&gt;The Agile Manifesto is a foundational document created by a group of software developers. It introduced four core values and twelve guiding principles that helped shape modern Agile practices.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=407895356643378685&quot; alt=&quot;4 Agile Values in Agile Manifesto&quot;&gt;&lt;/p&gt;
&lt;p&gt;One of its most well-known values is: &lt;br&gt;
&lt;strong&gt;Responding to Change Over Following a Plan&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first time when I read that statement, I paused for a moment. Responding to Change Over Following a Plan. Hmm… Interesting. My immediate reaction was something like: &quot;Wait a minute. Is Agile basically telling teams not to plan?&quot;&lt;/p&gt;
&lt;p&gt;And honestly, I can see why this statement confuses so many beginners. After all, if responding to change is considered more important than following a plan, then doesn't that make planning less valuable? At least that's what I thought.&lt;/p&gt;
&lt;p&gt;Without even realizing it, my brain interpreted the statement into something completely different. &lt;br&gt;
&quot;&lt;strong&gt;Plans are useless.&lt;/strong&gt;&quot;&lt;br&gt;
&quot;&lt;strong&gt;Things will change anyway.&lt;/strong&gt;&quot;&lt;br&gt;
&quot;&lt;strong&gt;Let's just figure things out as we go.&lt;/strong&gt;&quot;&lt;/p&gt;
&lt;p&gt;Looking back, this is exactly where my misunderstanding started. But after spending more time understanding Agile, I realized that the statement was never trying to communicate any of those things. The problem wasn't Agile itself. The problem was and still is how the message often gets interpreted.&lt;/p&gt;
&lt;p&gt;Once the statement is looked at through the lens of “planning doesn't matter”, it becomes very easy to assume that planning is unnecessary in Agile. It's easy to imagine a team simply starting the work and figuring everything out along the way. But software development rarely works as smoothly as assumptions do. &lt;/p&gt;
&lt;p&gt;The moment multiple people, deadlines, and changing requirements enter the picture, assumptions fall apart. And this is not something random, I've actually experienced it. That's when the gap between assumptions and reality becomes much easier to notice.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;what-happens-when-teams-truly-stop-planning&quot;&gt;What Happens When Teams Truly Stop Planning&lt;/h2&gt;
&lt;p&gt;Recently, me and my team were building a financial dashboard application for managing personal finances. We planned to develop features like user registration, dashboard components, transaction form, account creation form, and many more.&lt;/p&gt;
&lt;p&gt;We started developing immediately without first deciding what to build first and what mattered the most. One of us jumped straight into the account creation form. I think someone else was into the transaction form. And I guess, someone was busy tweaking the UI. But anyways, the core personal financial dashboard functionality was still incomplete. &lt;/p&gt;
&lt;p&gt;At first, this didn’t even look like a problem. We all were busy doing some sort of work. But when I looked closely, I understood that was exactly the issue. No matter how good our individual features were, but our users still couldn’t see any dashboard components for financial data analysis and management. &lt;/p&gt;
&lt;p&gt;That’s when it hit us. If people can’t even do the one thing the app was supposed to let them do, then we're not building the right things. So we ended up spending lots and lots of our time building features that didn’t actually move the product forward. That’s when planning stopped feeling optional to us.&lt;/p&gt;
&lt;p&gt;And I think that’s true for basically every software project, not just ours.  Writing code matters. Building features matters. But knowing what to build first? That matters just as much.&lt;/p&gt;
&lt;p&gt;Without that clarity, it’s easy to lose sight of what you’re trying to build — exactly what happened to us.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;agile-never-removed-planning-it-removed-excessive-planning&quot;&gt;Agile Never Removed Planning — It Removed Excessive Planning&lt;/h2&gt;
&lt;p&gt;When I first started learning Agile, I assumed that being flexible meant constantly expanding the plan whenever a new idea appeared.&lt;/p&gt;
&lt;p&gt;While building one of my projects called &lt;strong&gt;imaginAI&lt;/strong&gt;, an AI image generation SaaS app, I spent a lot of time thinking about features before the product was even ready. The original idea was fairly simple. Users would enter a text prompt and generate images. I had already planned things like the landing page, image generation workflow, and payment integration. &lt;/p&gt;
&lt;p&gt;But as development progressed, new ideas kept appearing — credit-based system and custom authentication mechanism. None of these were bad ideas. Some of them would eventually become useful additions to the product.&lt;/p&gt;
&lt;p&gt;The problem was that I started focusing on those ideas before delivering the primary objective of the product itself. Instead of moving closer to a usable product, I was continuously expanding the scope of what needed to be built.&lt;/p&gt;
&lt;p&gt;And that's when I learned an important lesson.&lt;/p&gt;
&lt;p&gt;I realized that Agile was never against planning. I needed a plan, otherwise I wouldn’t know what I was building and why. What it actually pushed back against was the type of plan I was doing — one that kept growing instead of helping me start. I didn’t need a perfect plan for &lt;strong&gt;imaginAI&lt;/strong&gt;. I needed enough of a plan to actually start, and the rest could be dealt with later.&lt;/p&gt;
&lt;p&gt;Once I recognized that, I stopped treating every new idea as something that needed immediate attention. Some ideas could wait. The primary objective could not.&lt;/p&gt;
&lt;p&gt;Since then, that small shift completely changed the way I approach every project.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;the-different-kinds-of-planning-happening-inside-agile-teams&quot;&gt;The Different Kinds of Planning Happening Inside Agile Teams&lt;/h2&gt;
&lt;p&gt;By this point, I understood two things — removing planning creates problems, but Agile isn’t trying to eliminate it either. &lt;/p&gt;
&lt;p&gt;When I was working on &lt;strong&gt;imaginAI&lt;/strong&gt;, one mistake I initially made was thinking that planning happened only at the beginning of the project. I believed that once I had noted down the requirements and technical specifications, the planning phase was done. But as development progressed, I realized that planning was happening much more frequently than I originally thought.&lt;/p&gt;
&lt;p&gt;I had a list of ideas and features I wanted to include in the product before starting the development. This included image generation, payment integration, a credit-based system, custom authentication, testimonials, example prompts, and several other ideas. In Agile, this kind of list has a name… the &lt;strong&gt;Product Backlog&lt;/strong&gt;. It’s basically a master list of everything that might eventually become part of the product.&lt;/p&gt;
&lt;p&gt;Having that list didn’t mean I had to build all of it right away. So before starting, I sat down and picked a handful of things to focus on for the first stretch. They were getting the core image generation flow working and a basic landing page up, nothing else. Turns out, that’s basically what Agile calls &lt;strong&gt;Sprint Planning&lt;/strong&gt;. Instead of trying to build everything at once, I just picked a smaller set of work and focused on finishing that first.&lt;/p&gt;
&lt;p&gt;While I was working on the first chunk of work, I started thinking about the future, like when I actually would put &lt;strong&gt;imaginAI&lt;/strong&gt; in front of real users, and what absolutely needed to exist before releasing it. In Agile, that kind of bigger-picture thinking is often called &lt;strong&gt;Release Planning&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And even after a feature was ready, planning still didn't stop. After wrapping up the credit system, I still remember sitting back and thinking about what had worked smoothly and what hadn’t. &lt;/p&gt;
&lt;p&gt;In a real team, this is the kind of thing that happens together, right after a sprint… everyone sitting down, talking through what worked and what didn’t, deciding what to do differently next time. I didn’t know it at that time, but that’s basically a &lt;strong&gt;Retrospective&lt;/strong&gt; in Agile.&lt;/p&gt;
&lt;p&gt;I noticed something kind of wild. And honestly, planning was happening before development started, during development, and even after the work was completed.&lt;/p&gt;
&lt;p&gt;The simple difference which opened my eyes was that Agile does not treat planning as a one-time event. It treats planning as an ongoing activity that evolves alongside the product itself.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;how-agile-plans-differ-from-traditional-planning&quot;&gt;How Agile Plans Differ From Traditional Planning&lt;/h2&gt;
&lt;p&gt;Before I even started learning Agile, I was already familiar with several traditional software development approaches such as the Waterfall Model, V-Model, Spiral Model, and Iterative Development.&lt;/p&gt;
&lt;p&gt;One thing I noticed across many traditional approaches was that a significant amount of planning happened right at the beginning. Teams would gather requirements, create detailed specifications, finalize designs, and only then move into development.&lt;/p&gt;
&lt;p&gt;That’s actually why I started out planning everything upfront while building &lt;strong&gt;imaginAI&lt;/strong&gt;. I had the database schema, the page flow, and most of the UI structure mapped out before writing a single line of code. I assumed that if I could define everything clearly at the beginning, development would become easier later on. At that time, nothing about that felt wrong to me.&lt;/p&gt;
&lt;p&gt;Things got harder when I decided midway that I wanted users to revisit their own creations and be able to save them as well. This was something I hadn’t planned for in the original schema. Because I’d built everything around the earlier structure, this one idea meant going back and reworking decisions I thought were already final.&lt;/p&gt;
&lt;p&gt;But once I understood Agile properly, I realized it approaches planning completely differently. Instead of planning the entire journey in detail before development even begins, Agile breaks things into smaller increments called &lt;strong&gt;Sprints&lt;/strong&gt;. I could still define goals and make plans for &lt;strong&gt;imaginAI&lt;/strong&gt;. But instead of locking everything in advance, I’d revisit and refine them as I go.&lt;/p&gt;
&lt;p&gt;Here, I’m trying to keep a very simple and clear point. Both approaches involve planning. The difference is how each treats planning. One treats it as something that mostly happens before the work, while the other treats it as something that continues alongside the work.&lt;/p&gt;
&lt;p&gt;And that's why Agile teams can remain flexible without feeling directionless.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;so-what-happens-when-the-plan-changes-&quot;&gt;So What Happens When The Plan Changes?&lt;/h2&gt;
&lt;p&gt;One thing I struggled to understand when I first started learning Agile was what teams were supposed to do when the original plan stopped making sense. For a long time, I assumed that if a plan needed to change, it meant that the planning was wrong in the first place.&lt;/p&gt;
&lt;p&gt;That assumption got challenged pretty directly while working on &lt;strong&gt;SpendSense&lt;/strong&gt;. When I was trying to show the app to a few potential users, most of them asked one simple question before even looking at the features or the UI — &quot;Will I be able to see how much budget I have left for the month?&quot;&lt;/p&gt;
&lt;p&gt;And… I was like... Huh… Completely blank at that moment. This wasn't something I had planned for. It wasn't even sitting in my Parking Lot section. Account balances, transaction history, dashboard charts were the features I had built the app around. Suddenly they weren't what users actually cared about most. &lt;/p&gt;
&lt;p&gt;The plan had changed. Now, I was left with pretty much only two options. I could either continue following the original plan simply because I had finalized it earlier, or I could listen to what users were actually telling me and update accordingly.&lt;/p&gt;
&lt;p&gt;That was when my head started going in circles, not the song Circles… But anyways. I had planned carefully, I had made assumptions, I had finalized things. So if the plan now needed to change then surely I had planned wrong. &lt;/p&gt;
&lt;p&gt;That's where I was misunderstanding something important about Agile. Changing a plan doesn't mean the planning failed. It means I know something today that I didn't know when I made the plan. My assumptions weren't wrong. They were just incomplete. And that's not a planning failure. That's just how building products actually works.&lt;/p&gt;
&lt;p&gt;The goal never changed. What changed was the path to get there. And that's exactly why Agile treats plans as something to revisit, not something to protect.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If there's one thing Agile changed for me, it was the way I think about planning.&lt;/p&gt;
&lt;p&gt;Earlier, I used to believe that a good plan was one that anticipated everything in advance. The more detailed the plan was, the more confident I felt before starting development.&lt;/p&gt;
&lt;p&gt;But over time, I realized that software development does not work that way. Pretty much every time, something changes. Sometimes even the problem which I was trying to solve changed. This made me understand that no amount of upfront planning can completely eliminate that uncertainty.&lt;/p&gt;
&lt;p&gt;Umm… not every project goes this way, honestly. Sometimes upfront planning works out just fine and nothing major changes. But in my experience, that's more the exception than the rule, especially when real users get involved.&lt;/p&gt;
&lt;p&gt;What Agile actually taught me was that planning and flexibility are not opposites. In fact, I think having a plan is exactly what makes flexibility possible. Because without some direction, you're not being flexible, you're just being lost.&lt;/p&gt;
&lt;p&gt;The goal is not to predict every possible situation before writing a single line of code. The goal is to know what you're building and why. And whenever better information becomes available, update the plan. That's not a failure. That's the point.&lt;/p&gt;
&lt;p&gt;Looking back, the biggest lesson for me wasn't that Agile welcomes change. It was understanding that Agile welcomes change &lt;strong&gt;without losing direction&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And that's a very different thing from simply saying — &lt;em&gt;&quot;We'll figure it out later.&quot;&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/21132/why-agile-does-not-mean-well-figure-it-out-later</guid>
<pubDate>Mon, 22 Jun 2026 07:58:47 +0000</pubDate>
</item>
<item>
<title>Millrace: Git-backed Kanban</title>
<link>https://coderlegion.com/20173/millrace-git-backed-kanban</link>
<description>&lt;p&gt;Did you ever notice how digital task boards are suddenly all the same horrid thing. Heavy engines of compromise that are as happy to supply a Gantt chart and resource plan as they are to give you a Kanban board.&lt;/p&gt;
&lt;h3 id=&quot;slow-and-steady-not-slow-and-heavy-1&quot;&gt;Slow and steady, not slow and heavy&lt;/h3&gt;
&lt;p&gt;That moment of realization happened for me a few months back and I spent a great deal of time playing “Crossy Road” by jumping between all the available tools to find a new home for my work. I hated them all.&lt;/p&gt;
&lt;p&gt;The thing that I found really disappointing was that the Kanban board felt so much like it was tagged onto something else. Something big, greasy, and hostile. Like when you realize that “Scrum Master” has decades under their belt as a pathological project manager. They will happily rename all their PMBOK shenanigans to remain employed, but their approach hasn’t changed a bit.&lt;/p&gt;
&lt;h3 id=&quot;finish-the-good-stuff-and-let-mediocre-ideas-fall-away-1&quot;&gt;Finish the good stuff and let mediocre ideas fall away&lt;/h3&gt;
&lt;p&gt;My work method merges ideas from Getting Things Done at the big-rock level, and Personal Kanban to slice things up and stay focused on what really matters. That lets me apply Pomodoro Technique at the smallest scale to build up chunks of focus time that move things forward.&lt;/p&gt;
&lt;p&gt;When it comes to a task board, that means creating a big-rock card with loosely formed ideas that I might choose to never work on. In fact, most of the ideas will be superseded by newer better ones and that’s a good thing. If the idea survives, I’ll slice chunks out of it and flow them across the board to get them done.&lt;/p&gt;
&lt;p&gt;My up-next and in-flight columns need limits. These are the areas I need to carefully weed. Other columns tend to have their pace set by those two handling-time columns. Sometimes I like to break rules, so WIP limits are a visual thing, not an enforced policy.&lt;/p&gt;
&lt;p&gt;Because all my work tends to happen on a screen, I like prominent links on the card, so I can teleport to where the work is without opening up the card. While I reject the idea of a due date, I do like to have my tasks wake up at relevant moments, so a next-action date is useful.&lt;/p&gt;
&lt;p&gt;To reflect on my work, I like to review my completed items each week. If I can tag the crucial stuff, I can see if it’s making it all the way to “done”. A few tasteful charts can be useful in checking myself when I go off the rails. They help direct me to areas that need improvement, which is helpful.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=13931038410407646069&quot; alt=&quot;A cumulative flow diagram&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;-a-certain-level-of-polish&quot;&gt; A certain level of polish&lt;/h3&gt;
&lt;p&gt;There also needs to be a certain level of polish. The user interface doesn’t have to spark a new trend in app design, but what I can’t tolerate are paper cuts. A small irritation that I scrape past every time I check in on my work is a sure-fire productivity killer.&lt;/p&gt;
&lt;p&gt;When I was trying out all these “productivity tools”, I kept finding blatant, reproducible, and distracting issues. Like one tool where I added a new card to the board only for it to vanish as I was typing in the title. The steps to reproduce this involved moving a card that triggered an automation, then adding a new card before the automation completed. This would be a forgivable edge case if this wasn’t one of the most common moments you might add a new card.&lt;/p&gt;
&lt;p&gt;Or maybe it’s the tool that only let you add links to the rich-text field. Copy. Type. Locate icon. Click. Paste. Nope. On top of this, you could only see the link by opening the card. That’s too much friction when I have links on around 60-80% of my cards.&lt;/p&gt;
&lt;p&gt;A tool you use occasionally can have a rough patch or two, but one you use to orient your day and manage your energy has no room for splinters.&lt;/p&gt;
&lt;h3 id=&quot;calm-slow-smooth-fast-1&quot;&gt;Calm, slow, smooth, fast&lt;/h3&gt;
&lt;p&gt;The thing is, we’ve all seen someone trying to achieve something under pressure. They transform from a sentient human into a comedic slapstick actor. You know what I mean! They are baking a cake and it’s boring to wait for stuff to happen, so they start doing other things at the same time. Maybe they wash up some of the bowls and spoons. No big deal.&lt;/p&gt;
&lt;p&gt;But then they catch a hint of that unmistakable burning smell. Oh no! The cake is burning. It’s not just that their calm has gone, the whole chain of calm-slow-smooth-fast has collapsed.&lt;/p&gt;
&lt;p&gt;They whip their hands out of the washing up bowl, splashing water over the kitchen floor. They make an urgent grab for the oven glove, but knock it off the worktop. They pick it up, pull open the oven door, and use the half-on glove to grab the baking tray. The start to pull the cake out of the oven, burn the bit of their hand that isn’t in the glove, and just before the cake gets flopped upside down on the floor they realize that the burning smell was just a thin edge catching.&lt;/p&gt;
&lt;p&gt;As the cake splatters on the floor, they realize it could have done with another ten minutes. Now it’s ruined. They should probably run their hand under a cold tap, but before they get to the sink they’ve slipped up on the wet floor.&lt;/p&gt;
&lt;p&gt;It’s ridiculous. I agree. But this is how most people approach their work. They are over-burdened and their response is to make the work harder.&lt;/p&gt;
&lt;p&gt;That’s why your Kanban board needs to be a source of calm. Calm is slow. Slow is smooth. Smooth is fast.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=13512886487861163170&quot; alt=&quot;A kanban board view of work&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;fin-1&quot;&gt;Fin&lt;/h3&gt;
&lt;p&gt;And that’s it. That’s the thinking. I didn’t build a Kanban board. I created a calm space to think about my work, my energy, and my impact.&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/20173/millrace-git-backed-kanban</guid>
<pubDate>Wed, 10 Jun 2026 13:12:33 +0000</pubDate>
</item>
<item>
<title>Shaped Kanban: Complete Features, Not Sprints</title>
<link>https://coderlegion.com/19683/shaped-kanban-complete-features-not-sprints</link>
<description>&lt;p&gt;As an architect, a core part of my job is assessing viability and risk before committing a team to building something. That means understanding the problem deeply, testing critical assumptions early, and knowing when to change course. Sprint-based development fights me on every one of these. Planning ceremonies reward estimation speed over depth, sprint commitments pressure teams forward regardless of what they discover, and customer needs get filtered through velocity charts that measure team activity rather than delivered value.&lt;/p&gt;
&lt;h3 id=&quot;the-timebox-problem&quot;&gt;The Timebox Problem&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Interval-based development organizes work around fixed time periods, not around completing features.&lt;/strong&gt; When timeboxes become the primary organizing principle, they corrupt even well-aligned teams.&lt;/p&gt;
&lt;p&gt;The intention is sound: prevent endless work, create rhythm, establish accountability. Yet timeboxes attempt to enforce through calendar boundaries what discipline should provide naturally.&lt;/p&gt;
&lt;h4 id=&quot;the-calendar-fills-itself&quot;&gt;The Calendar Fills Itself&lt;/h4&gt;
&lt;p&gt;When discovery changes understanding mid-interval, teams are forced to ship incomplete work or carry it over. When planned work gets blocked, teams feel pressure to fill the remaining days with whatever fits: not the most valuable work, not what should naturally come next, just work that squeezes into the artificial deadline. In continuous flow, a free WIP slot takes the top-ranked item whatever its size, because no boundary is four days away. In a sprint, the days left tend to decide. A high-value item that won't fit gets passed over for a smaller one, or it gets started and carried over. &lt;strong&gt;The timebox itself becomes the constraint that dictates what work happens, not the actual priorities or readiness.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class=&quot;pull-quote&quot;&gt;
&lt;p&gt;The timebox created the problem it was meant to solve.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;different-teams-forced-cadence&quot;&gt;Different Teams, Forced Cadence&lt;/h4&gt;
&lt;p&gt;Different team types operate on different natural cadences. Feature teams might deliver every few days while platform teams deliver every few months, yet many organizations force synchronization through universal sprint cadences because cross-team planning needs shared boundaries. The Scaled Agile Framework makes this explicit, aligning every team's iteration start and end dates within a release train.&lt;/p&gt;
&lt;p&gt;Timeboxes also conflate three concerns that should be independent: development cycles, deployment cycles, and feedback cycles. Each operates at its own natural frequency, yet sprints tend to pull all three into alignment, stretching fast work to fill the interval and fragmenting slow work across multiple cycles.&lt;/p&gt;
&lt;p&gt;The Scrum Guide doesn't require this coupling. It lets a team release an increment before the sprint ends, and it says the Sprint Review is never a release gate. But planning still happens at the boundary, and in practice feedback tends to batch at the review, where stakeholders inspect the work.&lt;/p&gt;
&lt;h4 id=&quot;ceremony-fuels-continuation-bias&quot;&gt;Ceremony Fuels Continuation Bias&lt;/h4&gt;
&lt;p&gt;Scrum's ceremony structure fails this most visibly. Sprint Planning commits you to work. Daily Standups report progress. Sprint Review demonstrates what was built. The Retrospective redirects for next time. No ceremony routinely asks the question that matters mid-sprint: should we stop this work two days in because the assumptions were wrong?&lt;/p&gt;
&lt;p&gt;The Scrum Guide comes close. The Daily Scrum can adapt the sprint backlog, and the Product Owner can cancel a sprint whose goal has become obsolete. But adapting the backlog serves the sprint goal, and cancellation belongs to one role as an exception. Neither is a routine check on whether a piece of work should stop.&lt;/p&gt;
&lt;p&gt;Without a ceremony that asks the question, many teams don't. They obfuscate and proceed because abandoning the sprint goal feels like failure, and the real failure gets deferred. A team that won't fail a design two days into a sprint is unlikely to throw away three sprints of committed work either. The sunk cost grows with every sprint, and each Sprint Planning recommits the team to it in front of stakeholders.&lt;/p&gt;
&lt;blockquote class=&quot;pull-quote&quot;&gt;
&lt;p&gt;The redirect you needed was to fail early, not plan differently next time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&quot;We can't remove sprints; how would we know when things are done?&quot; That question reveals the dysfunction. Scrum's own Definition of Done is meant to answer it without reference to the calendar. If a team still can't tell when work is done without one, it has a definition on paper but never developed genuine agreement on what &quot;done&quot; means.&lt;/p&gt;
&lt;blockquote class=&quot;pull-quote&quot;&gt;
&lt;p&gt;When alignment exists, delivery cycles follow naturally. When alignment doesn't exist, timeboxes just create the illusion of progress.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;shaped-kanban-discipline-without-shared-timeboxes&quot;&gt;Shaped Kanban: Discipline Without Shared Timeboxes&lt;/h3&gt;
&lt;p&gt;What if you could have discipline without a shared timebox organizing everyone's work?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shaped Kanban combines rigorous upfront work definition with continuous flow.&lt;/strong&gt; It takes the best ideas from Shape Up, shaping work before betting on it and using circuit breakers to bound risk, and applies them to Kanban's continuous flow model. Unlike Shape Up's fixed 6-week cycles, each piece of work has its own natural timeline within appropriate bounds.&lt;/p&gt;
&lt;p&gt;Shaped Kanban replaces team-wide timebox mechanics with genuine discipline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shape work before committing&lt;/strong&gt; - Define clear boundaries, identify risks, clarify what &quot;done&quot; looks like&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bet flexibly&lt;/strong&gt; - Commit resources on a business cadence (quarterly, monthly) or on-demand as priorities shift&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use feature-specific circuit breakers&lt;/strong&gt; - Each feature gets appropriate time bounds (3 days, 2 weeks, 6 weeks) based on complexity, not universal sprint durations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow continuously&lt;/strong&gt; - Work moves through the system when ready, not when the calendar says so&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This allows different team types (feature teams, platform teams, shared services) to operate at their natural cadences without artificial synchronization pressure. Coordination happens explicitly through dependencies, not through forced sprint alignment.&lt;/p&gt;
&lt;h3 id=&quot;how-shaped-kanban-works&quot;&gt;How Shaped Kanban Works&lt;/h3&gt;
&lt;h4 id=&quot;1-shaping&quot;&gt;1. Shaping&lt;/h4&gt;
&lt;p&gt;Before work begins, senior people shape the problem and solution space. Not detailed specifications, but boundaries.&lt;/p&gt;
&lt;p&gt;Appetite, Shape Up's term, defines how much time this problem deserves, not how long it will take. Instead of estimating bottom-up (&quot;this will take 6 weeks&quot;), you set a top-down constraint: &quot;this is worth 2 weeks, not more.&quot; The appetite becomes a creative constraint that forces the question: what can we solve within this time bound? If you cannot shape a viable solution within the appetite, the problem either needs a bigger appetite or should not be worked on yet.&lt;/p&gt;
&lt;p&gt;Shaping answers these questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What problem are we solving, and what is the appetite?&lt;/li&gt;
&lt;li&gt;What are we explicitly not doing?&lt;/li&gt;
&lt;li&gt;What does good enough look like within the appetite?&lt;/li&gt;
&lt;li&gt;What assumptions are we making that, if wrong, would make this unviable?&lt;/li&gt;
&lt;li&gt;Which other teams' work depends on this, and what does this depend on?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Shaping happens when needed, not on a fixed schedule. Work entering the system has clear boundaries, identified assumptions, and defined appetites instead of vague user stories.&lt;/p&gt;
&lt;h4 id=&quot;2-betting&quot;&gt;2. Betting&lt;/h4&gt;
&lt;p&gt;Leadership commits resources to shaped work on a business cycle (quarterly, monthly) or on-demand as priorities shift.&lt;/p&gt;
&lt;p&gt;The system maintains a hard separation between two artifacts. The Idea Archive is a PM-managed library of potential pitches sitting outside the development workflow. The Dev Backlog contains only accepted bets, each with a defined appetite and documented assumptions. Work moves from the archive to the backlog only when leadership places a formal bet, keeping the development queue clean.&lt;/p&gt;
&lt;p&gt;Shaping and betting can happen as often as business needs emerge. Priorities can change before developers pull the work, capturing the benefit of short planning cadences while preserving context about which assumptions need testing.&lt;/p&gt;
&lt;p&gt;Bets also give stakeholders the forecast a sprint used to give them. The appetite states what a feature is worth, and it doubles as a time budget. Each appetite is a ceiling. Add up the appetites queued ahead of a feature and divide by how many the WIP limit lets run at once, and the result is the latest that feature should start. That start date holds unless an earlier bet is extended or reshaped, or a new bet is placed ahead of it.&lt;/p&gt;
&lt;h4 id=&quot;3-circuit-breakers&quot;&gt;3. Circuit Breakers&lt;/h4&gt;
&lt;p&gt;Each feature has built-in boundaries, both temporal and assumption-based.&lt;/p&gt;
&lt;p&gt;Temporal boundaries are feature-specific time limits: a simple CRUD screen might have a 3-day limit, a complex workflow with integrations might have a 6-week limit, and a research spike might have a 2-week limit.&lt;/p&gt;
&lt;p&gt;A temporal boundary is still a time limit, but it differs from a sprint in what it controls. It belongs to one feature and is sized by that feature's appetite, and it exists to force a reassessment, not to decide what work happens. When it trips, there are no leftover sprint days to fill, because the next shaped item is pulled when capacity opens.&lt;/p&gt;
&lt;p&gt;Assumption boundaries trigger when testing reveals the work is unviable. Critical assumptions defined during shaping get tested during implementation. If testing proves an assumption wrong and requires massive realignment, the circuit breaker trips and the work moves to Failed status for potential reshaping or Dropped status if unworkable.&lt;/p&gt;
&lt;p&gt;When either boundary is hit, anyone building the feature can declare the trip, and work stops at once. The people who placed the bet then decide what happens next: adjust scope, extend, reshape based on what you learned, or drop the work. Stopping never waits for a decision. Only restarting does. An extension is a new bet with a new appetite that competes with the rest of the queue, and it shows on the board, so a quiet slip becomes a visible decision.&lt;/p&gt;
&lt;p&gt;Per-feature boundaries also make failure localized. One feature can trip its circuit breaker while others continue flowing. In a uniform sprint, stopping mid-cycle puts the whole team's commitment in question, creating social pressure to keep going regardless of what you've learned.&lt;/p&gt;
&lt;p&gt;With a per-feature breaker, the stop condition was written down before work began, so stopping carries out the plan rather than abandoning it. The appetite said what the problem was worth. It never promised the team would finish within it, so tripping the breaker is a smaller admission than abandoning a sprint goal. It still takes someone willing to declare it, which is why the failure section below treats tripping as a discipline.&lt;/p&gt;
&lt;h4 id=&quot;4-kanban-flow&quot;&gt;4. Kanban Flow&lt;/h4&gt;
&lt;p&gt;Work flows continuously. When capacity opens, pull the next shaped and bet-on feature. The first order of business is testing critical assumptions identified during shaping, not building features, because the earliest moment to catch a wrong assumption is when a ticket is pulled. Then build until done or the circuit breaker trips.&lt;/p&gt;
&lt;p&gt;Work items progress through clear states: Unshaped → Shaped → Accepted → Active → Completed, Failed, or Dropped. Progress tracking uses hill charts from Shape Up. Work is either uphill (still figuring it out) or downhill (executing on known work). This avoids the useless &quot;80% done&quot; claims that plague sprint burndowns.&lt;/p&gt;
&lt;p&gt;A sprint boundary forces an inspection every few weeks. A six-week appetite has no such calendar checkpoint, by design. The assumption tests at the start and a hill chart stuck uphill do the job a sprint boundary was meant to do, and they raise the warning sooner.&lt;/p&gt;
&lt;p&gt;WIP limits and circuit breakers work together. WIP limits constrain how many features run simultaneously, while circuit breakers bound how long any individual feature can run.&lt;/p&gt;
&lt;blockquote class=&quot;pull-quote&quot;&gt;
&lt;p&gt;&quot;Done&quot; means the feature delivers the agreed value, period. Not &quot;the sprint ended so we call it done.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;5-technical-debt-without-a-cooldown&quot;&gt;5. Technical Debt Without a Cooldown&lt;/h4&gt;
&lt;p&gt;Shape Up's two-week cool-down between cycles handles work like technical debt and exploratory spikes that don't fit a formal pitch. Shaped Kanban removes fixed cycles entirely, which creates a real gap if left unaddressed.&lt;/p&gt;
&lt;p&gt;Small items too minor to pitch, like a dependency bump or a half-day refactor, travel with the active feature that touches that code, inside its appetite, so shaping leaves room for them in scope. For anything larger, the answer is to reframe technical work so it can compete at the betting table. Every meaningful technical work item falls into one of three categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Corrections&lt;/strong&gt;: mistakes actively hurting the business now, including security vulnerabilities, bugs driving churn, and reliability failures violating SLAs. These are risk mitigation bets, not engineering housekeeping.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimizations&lt;/strong&gt;: improvements that translate directly into margin or efficiency, like reducing cloud spend, speeding page loads, or automating deployments. With numbers attached, they compete well.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Re-Alignments&lt;/strong&gt;: work that unlocks future capabilities the roadmap depends on. Making the dependency explicit changes the conversation, since leadership is already implicitly betting on this work when they approve downstream features.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Technical debt framed as engineering work gets deprioritized. Framed as business risk, margin opportunity, or roadmap prerequisite, it can win bets. This demands more rigor than Shape Up's cool-down, but architectural health becomes visible and competes on the same terms as every other bet.&lt;/p&gt;
&lt;h3 id=&quot;multi-team-coordination-through-explicit-dependencies&quot;&gt;Multi-Team Coordination Through Explicit Dependencies&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Multi-team coordination is hard. Shaped Kanban doesn't pretend otherwise.&lt;/strong&gt; Scale deserves an honest answer.&lt;/p&gt;
&lt;p&gt;Shape Up emerged from Basecamp's own product development, refined over years as the company grew from four people to over fifty. My own experience with Shaped Kanban at scale sits in that same range: three medium-sized teams working on the same broad system. I have also worked in organizations running Scaled Scrum. That is enough to project how the two approaches compare as teams multiply, though I won't claim confidence about enterprise-level deployments I haven't run.&lt;/p&gt;
&lt;p&gt;The most significant dynamic at scale is continuation bias. I expect Scrum's greatest weakness to get worse as teams multiply. Scrum as commonly run operates on collective abstractions like sprint commitments, velocity charts, and planning poker (the last two aren't in the Scrum Guide, but they usually come with it). None of these give the people building a feature a pre-agreed trigger to stop it, and you cannot fix the collective without first empowering the individual.&lt;/p&gt;
&lt;p&gt;Shaped Kanban's core mechanisms work at the level of the individual feature. Its appetite and documented assumptions give the people building it an explicit, pre-agreed trigger to stop, without waiting for a team-wide ceremony or a collective decision. Leadership decides what happens after the stop, not whether it happens. That is the lever I would reach for to prevent bad assumptions from propagating across a multi-team program.&lt;/p&gt;
&lt;p&gt;Cross-team coordination in Scaled Scrum typically flows through the Scrum of Scrums meeting. But Scrum of Scrums is just another timeboxed event. It begins, it ends, and everyone returns to their sprint. It doesn't build an ongoing, async coordination discipline that is informed and purpose-driven. Scrum teams can write dependencies down too, but nothing in the sprint process requires it.&lt;/p&gt;
&lt;p&gt;In Shaped Kanban, dependencies are explicit from the shaping stage. When one team's circuit breaker trips, the shaped work already lists the downstream bets that depend on it, and those teams hear at once rather than at the next sync meeting. Each team understands how their work connects to the broader program and why, which makes async coordination practical because the context is already documented rather than locked inside a recurring meeting.&lt;/p&gt;
&lt;p&gt;Scrum's rigidity also tends to produce a common breakdown at scale: a small number of individuals, usually dev leads or architects, silently absorb all the cross-team coordination the process doesn't account for. They become the informal connective tissue holding the program together while everyone else follows the sprint. Shaped Kanban moves that load into shaping. Senior people still carry it, but the dependencies they find are written into the shaped work and visible to every team. They stop living in a few people's heads and inside ceremonies that can't actually handle them.&lt;/p&gt;
&lt;p&gt;The genuine challenge is visibility. Shaped Kanban at scale requires roadmaps that are explicit about dependencies between epics and features. You cannot hide behind sprint abstractions and hope the pieces fit together.&lt;/p&gt;
&lt;h3 id=&quot;how-this-approach-can-fail&quot;&gt;How This Approach Can Fail&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Shaped Kanban can be abused just like Kanban can be abused.&lt;/strong&gt; The flexibility that makes it powerful also creates opportunities for dysfunction if discipline erodes.&lt;/p&gt;
&lt;div class=&quot;callout callout--warning&quot;&gt;
&lt;p class=&quot;callout__title&quot;&gt;How This Approach Can Fail&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WIP limits must actually limit work.&lt;/strong&gt; If WIP limits become suggestions rather than constraints and teams allow constant disruptions and context switching, the framework collapses into chaos. Kanban without strict WIP limits is just a glorified to-do list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priorities must be honored.&lt;/strong&gt; Bet on work you know has high value, deliver the original priorities, and let the circuit breakers do their job. If every urgent request bypasses the queue or priorities shift weekly, you are practicing reactive chaos with a Kanban board.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Circuit breakers must trip.&lt;/strong&gt; When work hits its time boundary or invalidates critical assumptions, stop and reassess. Do not extend deadlines reflexively. If you never let circuit breakers trip, they are theater.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flexibility requires discipline.&lt;/strong&gt; Without discipline, you have just removed the one forcing function that timeboxes provided while keeping all the dysfunction: poorly defined work, shifting priorities, and endless scope creep.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Timeboxes enforce rhythm mechanically while Shaped Kanban requires you to enforce rhythm through actual alignment and genuine agreement. When that agreement slips, it fails more visibly, because continuing past an appetite takes a new bet rather than a quiet carryover. Enforcing rhythm through agreement is harder than letting a calendar do it, so the willingness to change comes first.&lt;/p&gt;
&lt;h3 id=&quot;when-to-consider-this-approach&quot;&gt;When to Consider This Approach&lt;/h3&gt;
&lt;p&gt;If your organization struggles with timeboxes fragmenting work, teams forced into artificial synchronization, or discovery invalidating sprint commitments, Shaped Kanban might help.&lt;/p&gt;
&lt;p&gt;It is the wrong move for a team without senior people who can shape work, or under leadership that won't honor its bets. A shared sprint cadence supplies a forcing function those teams can't yet supply for themselves.&lt;/p&gt;
&lt;p&gt;Shaped Kanban requires these disciplines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define work with clear boundaries before committing&lt;/li&gt;
&lt;li&gt;Start work with uncertainty, knowing you can stop and realign when assumptions break&lt;/li&gt;
&lt;li&gt;Commit to specific outcomes with understood scope&lt;/li&gt;
&lt;li&gt;Build until done or until constraints force reassessment&lt;/li&gt;
&lt;li&gt;Measure whether you delivered value, not just whether you shipped&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not a perfect solution. Continuous flow across teams demands more intentional coordination than synchronized sprints. But I will take that tradeoff every time. Explicit coordination makes dependencies intentional, while synchronized sprints leave them to hope until the next boundary.&lt;/p&gt;
&lt;p&gt;Rhythm and tempo come from alignment and natural feature boundaries, not predetermined calendars. You cannot iterate toward value without agreement on what constitutes value. Shaped Kanban makes that agreement explicit, visible, and continuous, without requiring everyone to march to the same drumbeat.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/19683/shaped-kanban-complete-features-not-sprints</guid>
<pubDate>Thu, 04 Jun 2026 15:08:56 +0000</pubDate>
</item>
<item>
<title>How Sprint Planning Actually Works</title>
<link>https://coderlegion.com/19534/how-sprint-planning-actually-works</link>
<description>&lt;p&gt;The high-level view of software development looks pretty straightforward. A team gets requirements, starts designing, writes code, tests features, and finally delivers the product.&lt;/p&gt;
&lt;p&gt;Simple… right?&lt;/p&gt;
&lt;p&gt;But when you look deeper into how software development actually happens inside teams, the reality starts feeling very different.&lt;/p&gt;
&lt;p&gt;What seems smooth from the outside rarely feels that smooth while building the product in real life.&lt;/p&gt;
&lt;p&gt;Tasks change. Priorities shift. Bugs suddenly appear in between. New ideas get added while development is already going on. And before anyone even realizes it, the team is managing multiple things at the same time.&lt;/p&gt;
&lt;p&gt;When work starts moving in too many directions together, things can get messy very quickly.&lt;/p&gt;
&lt;p&gt;That is exactly where &lt;strong&gt;Sprint Planning&lt;/strong&gt; comes into the picture.&lt;/p&gt;
&lt;p&gt;Before teams start building anything, they need a moment to pause and get clear on the work ahead. Not in a heavy or overly formal way — but enough to make sure everyone is moving with the same understanding before the sprint begins.&lt;/p&gt;
&lt;p&gt;Because when that clarity is missing, development may still start… but confusion usually starts with it too.&lt;/p&gt;
&lt;p&gt;And that is what makes Sprint Planning such an important part of Agile teams.&lt;/p&gt;
&lt;p&gt;In this article, we’ll understand how Sprint Planning actually works — in a much simpler and practical way, with relatable examples, without making it feel overly technical or textbook-like.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;why-modern-software-development-needs-better-planning&quot;&gt;Why Modern Software Development Needs Better Planning&lt;/h2&gt;
&lt;p&gt;Have you ever wondered why teams struggle while building products even when everyone on the team is talented and knows what they’re doing?&lt;/p&gt;
&lt;p&gt;At first, it feels surprising. Because when you look at it from outside, everything seems fine. Everyone is skilled, work is moving, code is being written, and development has already started.&lt;/p&gt;
&lt;p&gt;So naturally, the question becomes — &lt;strong&gt;then where does the problem actually begin?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You might think maybe the team lacked coordination. Maybe communication broke somewhere in between. Or maybe there was confusion while people were working together. And yes, sometimes that can absolutely happen.&lt;/p&gt;
&lt;p&gt;But many times, the real issue starts much earlier than that — even before development begins.&lt;/p&gt;
&lt;p&gt;A lot of teams unknowingly begin with a very simple thought:&lt;br&gt;
&lt;em&gt;“Let’s just start building first. We’ll figure things out along the way.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;And honestly, this doesn’t feel wrong in the beginning. In fact, it feels faster.&lt;/p&gt;
&lt;p&gt;Planning feels like extra work. Documentation feels time-consuming. Meetings feel unnecessary when everyone is already excited to start building something.&lt;/p&gt;
&lt;p&gt;So the thinking becomes simple — why spend time planning now when we can use that time to code?&lt;/p&gt;
&lt;p&gt;But this is usually where things slowly start becoming difficult later.&lt;/p&gt;
&lt;p&gt;Because development may start fast, but keeping that momentum becomes difficult when the work keeps changing while the product is being built.&lt;/p&gt;
&lt;p&gt;New requests come in. Priorities shift. Feedback keeps arriving. Small decisions made early start affecting things later. And gradually, work starts feeling heavier than it looked in the beginning.&lt;/p&gt;
&lt;p&gt;That’s when teams realize building the product was never the difficult part. Managing the moving pieces around the product is where things become challenging.&lt;/p&gt;
&lt;p&gt;That’s why modern software teams don’t see planning as “extra work” anymore.&lt;/p&gt;
&lt;p&gt;They see it as something that creates enough clarity before development moves too far ahead.&lt;/p&gt;
&lt;p&gt;But at the same time, planning everything months in advance doesn’t work either.&lt;/p&gt;
&lt;p&gt;Because software keeps changing while it’s being built. User needs evolve. Product direction changes. And sometimes what looked important in the beginning doesn’t stay important later.&lt;/p&gt;
&lt;p&gt;Which means teams needed a better way to plan work — without trying to predict everything too far ahead.&lt;/p&gt;
&lt;p&gt;That shift changed how modern teams started building software.&lt;/p&gt;
&lt;p&gt;And that is where smaller development cycles entered the picture.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;how-smaller-development-cycles-changed-modern-teams&quot;&gt;How Smaller Development Cycles Changed Modern Teams&lt;/h2&gt;
&lt;p&gt;Earlier, many teams used to build large parts of a product over a long period before releasing anything to users. Sometimes it would take months before users could even see what was being built.&lt;/p&gt;
&lt;p&gt;At first, this approach sounds practical. The thinking feels simple — finish everything properly first, and then release it once it’s fully ready.&lt;/p&gt;
&lt;p&gt;But in real software development, things rarely stay the same for that long.&lt;/p&gt;
&lt;p&gt;While the team is busy building, user expectations keep changing. Feedback keeps evolving, market needs shift, and sometimes even the product starts moving in a slightly different direction midway through development itself.&lt;/p&gt;
&lt;p&gt;And by the time everything is finally ready, some parts may already feel outdated or need changes.&lt;/p&gt;
&lt;p&gt;That’s where teams started facing a bigger problem.&lt;/p&gt;
&lt;p&gt;They were spending a lot of time building, but learning very late whether they were actually building the right thing. And making changes late in development is never easy — it usually takes more time, more effort, and sometimes means reworking things that already felt completed.&lt;/p&gt;
&lt;p&gt;That’s why modern teams slowly started moving away from one long development cycle.&lt;/p&gt;
&lt;p&gt;Instead of building everything together at once, they started breaking work into smaller parts and delivering it step by step. This made it easier to release earlier, learn earlier, improve earlier, and keep moving with real feedback instead of relying only on early assumptions.&lt;/p&gt;
&lt;p&gt;Think about an app like Rapido or Uber.&lt;/p&gt;
&lt;p&gt;Imagine trying to launch it with everything built together at once — login, booking, payments, live tracking, notifications, offers, ratings, support, and every other feature in one go. It would take a huge amount of time before users could even start using it.&lt;/p&gt;
&lt;p&gt;Instead, teams usually start with something smaller. They release the core experience first, let users start using it, and then keep improving the product gradually over time by adding more features in future updates.&lt;/p&gt;
&lt;p&gt;This way, users start getting value much earlier, while the product keeps improving step by step instead of waiting until everything is fully completed.&lt;/p&gt;
&lt;p&gt;Breaking work into smaller cycles helped teams adapt faster and learn earlier. But it also created a new challenge — making sure every new cycle begins with enough clarity before the actual work starts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=3679907772036594801&quot; alt=&quot;Long vs Smaller Development Cycles&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;so-what-is-sprint-planning-actually-&quot;&gt;So What is Sprint Planning Actually?&lt;/h2&gt;
&lt;p&gt;Once teams started working in smaller development cycles, something else naturally became important.&lt;/p&gt;
&lt;p&gt;Every cycle needed a proper beginning. Because teams can’t simply jump into work every few weeks and expect everything to automatically fall into place.&lt;/p&gt;
&lt;p&gt;Before development starts, there usually needs to be a quick pause.&lt;/p&gt;
&lt;p&gt;A moment where everyone comes together, looks at what’s ahead, talks things through, and makes sure the sprint begins with shared understanding instead of assumptions.&lt;/p&gt;
&lt;p&gt;That is what Sprint Planning feels like in real teams.&lt;/p&gt;
&lt;p&gt;It’s less about meetings for the sake of meetings, and more about giving the team a clear starting point before the actual work begins.&lt;/p&gt;
&lt;p&gt;Because once development starts moving, things move fast.&lt;/p&gt;
&lt;p&gt;People get busy in their own tasks. Different parts of the product start moving together. Conversations happen alongside coding. And there’s often very little time to stop and rethink once the sprint is already underway.&lt;/p&gt;
&lt;p&gt;That’s why teams usually take this time beforehand.&lt;/p&gt;
&lt;p&gt;Not to over-plan everything. Not to predict every situation in advance.&lt;/p&gt;
&lt;p&gt;Just to align around the upcoming work, build a shared understanding, and begin with better clarity together.&lt;/p&gt;
&lt;p&gt;And that small pause before the sprint begins often saves a lot more time later while building.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;where-does-all-the-work-come-from-&quot;&gt;Where Does All The Work Come From?&lt;/h2&gt;
&lt;p&gt;While understanding Sprint Planning properly, one question naturally comes up first:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where does all the work actually come from?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because before a sprint begins, the team already has work in front of them. Features need to be built, bugs need fixing, improvements keep coming up, and new ideas keep getting added over time.&lt;/p&gt;
&lt;p&gt;So naturally, all of that has to come from somewhere. And if you think about it closely, the answer is actually pretty simple — it starts with the users.&lt;/p&gt;
&lt;p&gt;Because at the end of the day, every product is being built for someone to use. And once people start using it, their experience with the product starts shaping what happens next.&lt;/p&gt;
&lt;p&gt;Think about apps like Swiggy or Zomato.&lt;/p&gt;
&lt;p&gt;Suppose users start wanting the option to order from multiple restaurants in one single order. If enough people keep asking for something like that, the company starts paying attention. Because now it’s no longer just an idea — it becomes something users genuinely care about.&lt;/p&gt;
&lt;p&gt;And this is how many product improvements usually begin.&lt;/p&gt;
&lt;p&gt;Users may never directly sit with developers and explain what to build. But through reviews, feedback, complaints, feature requests, and even the way they use the product, they constantly shape how the product evolves over time.&lt;/p&gt;
&lt;p&gt;Now obviously, thousands or millions of users can’t directly join the team’s discussions. So someone needs to represent that perspective inside the team. And in Agile teams, that role is usually handled by the &lt;strong&gt;Product Owner&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You can think of the Product Owner as someone who stays close to both sides — understanding what users are experiencing, while also staying connected with the product and the team building it.&lt;/p&gt;
&lt;p&gt;Over time, all those needs, requests, improvements, fixes, and ideas start gathering in one place. And that running list is what teams call the &lt;strong&gt;Product Backlog&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It’s simply a place where upcoming work lives before the team begins working on it.&lt;/p&gt;
&lt;p&gt;And that’s usually where the team looks before a new sprint begins.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=18196906110498667651&quot; alt=&quot;Sprint Planning&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;how-teams-decide-what-fits-into-a-sprint&quot;&gt;How Teams Decide What Fits Into a Sprint&lt;/h2&gt;
&lt;p&gt;As soon as the team has the Product Backlog in front of them, one important question naturally comes up:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What can actually be taken into this sprint?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because the backlog usually contains much more work than the team can finish in one cycle. There may be multiple features, fixes, improvements, and ideas waiting there together — but obviously everything cannot be picked at once.&lt;/p&gt;
&lt;p&gt;So the team sits together and starts looking through the upcoming work. They discuss what feels important right now, what makes sense to take next, and what can stay for later.&lt;/p&gt;
&lt;p&gt;But this is not just about picking work from a list.&lt;/p&gt;
&lt;p&gt;The bigger conversation usually begins when the team starts understanding how much work something actually involves.&lt;/p&gt;
&lt;p&gt;Because sometimes a task looks very small from the outside… until people start talking through what it really includes.&lt;/p&gt;
&lt;p&gt;Take a login feature for example.&lt;/p&gt;
&lt;p&gt;At first it sounds simple — just add login to the app.&lt;/p&gt;
&lt;p&gt;But once the team starts discussing it properly, more things begin appearing around it. Authentication, validations, password reset, session handling, security checks, database connection, error states — and suddenly the same task feels much bigger than it looked in the beginning.&lt;/p&gt;
&lt;p&gt;And this is exactly why teams discuss before deciding.&lt;/p&gt;
&lt;p&gt;They try to understand the work from different angles before bringing it into the sprint. Sometimes it feels smaller than expected. Sometimes much bigger. And many times the real effort only becomes clearer after the conversation begins.&lt;/p&gt;
&lt;p&gt;Teams also look at how much work feels manageable for the upcoming sprint based on the time and people available during that cycle.&lt;/p&gt;
&lt;p&gt;And once that clarity starts forming, some work gets picked for the sprint, while the remaining work stays in the backlog until a later time.&lt;/p&gt;
&lt;p&gt;And that’s completely normal.&lt;/p&gt;
&lt;p&gt;Sprint Planning is rarely about fitting everything in.&lt;/p&gt;
&lt;p&gt;It’s more about starting with a realistic amount of work that feels clear enough for the team to move forward together.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;why-sprint-planning-often-fails-in-beginner-teams&quot;&gt;Why Sprint Planning Often Fails in Beginner Teams&lt;/h2&gt;
&lt;p&gt;Even after understanding how Sprint Planning works, many teams still struggle with it in real life.&lt;/p&gt;
&lt;p&gt;And honestly, that's a challenge most teams face when they start applying it.&lt;/p&gt;
&lt;p&gt;Almost every beginner team goes through this phase at some point. Not because they lack skill, and not because they’re doing something terribly wrong — but because planning feels much easier from the outside than it actually feels when the team sits together to do it.&lt;/p&gt;
&lt;p&gt;One of the most common things that happens is teams take on more work than they realistically should.&lt;/p&gt;
&lt;p&gt;At that moment, everything feels doable. A task sounds manageable, then another gets added, then one more joins because it feels important too. And slowly, without anyone noticing, the team commits to more than it can comfortably complete.&lt;/p&gt;
&lt;p&gt;This usually doesn’t happen because the team is careless. In fact, it often happens for the opposite reason.&lt;/p&gt;
&lt;p&gt;People feel motivated. Everyone wants progress. Everyone wants to move fast. And when useful work is sitting in front of you, saying &lt;em&gt;“let’s take this too”&lt;/em&gt; feels much easier than pushing it to later.&lt;/p&gt;
&lt;p&gt;Another place where teams struggle is during discussion itself.&lt;/p&gt;
&lt;p&gt;Sometimes everyone walks out of Sprint Planning feeling aligned — but once work begins, people realize they were understanding the same task in slightly different ways. And that small difference becomes visible only after development starts.&lt;/p&gt;
&lt;p&gt;Someone imagined a basic version of the feature. Someone else thought edge cases were included. Another person assumed part of the work was already covered somewhere else. And suddenly a task that looked clear in the meeting starts creating confusion during the sprint.&lt;/p&gt;
&lt;p&gt;That’s why Sprint Planning usually works best when teams keep the conversation practical and honest.&lt;/p&gt;
&lt;p&gt;Not rushed just to move faster. Not overloaded just to fit more work in. And not based on assumptions like “we’ll somehow manage later”.&lt;/p&gt;
&lt;p&gt;The goal is simply to make sure everyone starts with enough clarity before the sprint begins. Because when that clarity is missing in the beginning, teams usually spend far more time fixing confusion later.&lt;/p&gt;
&lt;p&gt;And that’s exactly where many beginner teams struggle without even realizing it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sprint-goals-the-part-most-teams-ignore&quot;&gt;Sprint Goals — The Part Most Teams Ignore&lt;/h2&gt;
&lt;p&gt;Once the team has decided what work will go into the sprint, it can feel like Sprint Planning is pretty much done. Tasks are selected, discussions are finished, and everyone feels ready to start building. &lt;/p&gt;
&lt;p&gt;On the surface, everything looks sorted and clear. But even after all that, there’s still one small thing many teams forget to talk about before the sprint begins.&lt;/p&gt;
&lt;p&gt;And surprisingly, that one small thing can completely change how the sprint feels later.&lt;/p&gt;
&lt;p&gt;The question is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What are we actually trying to achieve in this sprint?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because a sprint usually isn’t just about picking tasks and completing them one by one.&lt;/p&gt;
&lt;p&gt;If the sprint is only a list of unrelated work items, the team may stay busy the entire time — but the work can still feel disconnected while doing it.&lt;/p&gt;
&lt;p&gt;This is exactly where Sprint Goals start becoming useful.&lt;/p&gt;
&lt;p&gt;A Sprint Goal gives everyone one common direction behind the work already selected. &lt;/p&gt;
&lt;p&gt;It brings all those individual tasks under one bigger purpose, so the sprint feels connected instead of scattered.&lt;/p&gt;
&lt;p&gt;For example, imagine a sprint includes fixing login issues, improving password reset, and adding email verification.&lt;/p&gt;
&lt;p&gt;These look like separate tasks when written individually. But when you step back and look at them together, they’re all improving one part of the product — the login experience for users.&lt;/p&gt;
&lt;p&gt;And suddenly the sprint feels much more connected.&lt;/p&gt;
&lt;p&gt;Different people may still be working on different pieces, but everyone is contributing toward the same outcome.&lt;/p&gt;
&lt;p&gt;Now compare that with a sprint where one task is a small UI fix, another is a payment issue, another is dashboard cleanup, and something else is unrelated backend work.&lt;/p&gt;
&lt;p&gt;All useful tasks. But together, they may feel like separate pieces moving without one clear direction.&lt;/p&gt;
&lt;p&gt;That’s why Sprint Goals often help more than teams initially expect.&lt;/p&gt;
&lt;p&gt;They create focus without making the process heavier. They help everyone stay aligned while working, and they make the sprint feel less like “just finishing tasks” and more like building toward something together.&lt;/p&gt;
&lt;p&gt;It’s a small part of Sprint Planning. But many teams only realize how important it is once they start working without one.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sprint-planning-is-not-about-predicting-everything-perfectly&quot;&gt;Sprint Planning is Not About Predicting Everything Perfectly&lt;/h2&gt;
&lt;p&gt;After reading everything so far, it’s easy to get the impression that Sprint Planning is supposed to make the entire sprint go exactly according to plan.&lt;/p&gt;
&lt;p&gt;The team discusses the work beforehand, agrees on what it plans to build, and starts the sprint with much more clarity than before.&lt;/p&gt;
&lt;p&gt;And honestly, that sounds great.&lt;/p&gt;
&lt;p&gt;But real software development has a habit of reminding us that reality often looks different from the original plan once the actual work begins.&lt;/p&gt;
&lt;p&gt;Think about your own plans for a moment.&lt;/p&gt;
&lt;p&gt;Have you ever planned your entire day perfectly in the morning, only for something unexpected to appear a few hours later?&lt;/p&gt;
&lt;p&gt;Maybe a new task showed up. Maybe something took longer than expected. Maybe your priorities changed halfway through the day.&lt;/p&gt;
&lt;p&gt;Software development is not very different.&lt;/p&gt;
&lt;p&gt;Even when a sprint starts with a good plan, the team keeps learning while building. New information appears. Better ideas emerge. Sometimes the team discovers things they simply couldn't have known during Sprint Planning.&lt;/p&gt;
&lt;p&gt;And that doesn't automatically mean something went wrong. It just means the work is now being seen more clearly than before.&lt;/p&gt;
&lt;p&gt;This is exactly why Agile teams don't treat Sprint Planning like a prediction exercise.&lt;/p&gt;
&lt;p&gt;The goal isn't to figure out every single thing that will happen over the next few weeks. The goal is simply to begin with enough clarity so the team can move forward together. And if something changes later, the team adapts and keeps moving.&lt;/p&gt;
&lt;p&gt;Because Sprint Planning was never about creating a perfect future.&lt;/p&gt;
&lt;p&gt;It was always about creating a better starting point.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Before understanding how Agile teams work, Sprint Planning can easily look like just another meeting on the calendar.&lt;/p&gt;
&lt;p&gt;A meeting that happens before development starts. A meeting people attend because the process says they should.&lt;/p&gt;
&lt;p&gt;But once you look at everything happening behind the scenes, it starts feeling very different.&lt;/p&gt;
&lt;p&gt;A team isn't just writing code. People are discussing ideas, building features, fixing problems, making decisions, and working together on the same product at the same time.&lt;/p&gt;
&lt;p&gt;And when all of that starts moving without enough clarity, even simple work can become harder than it needs to be.&lt;/p&gt;
&lt;p&gt;That is why Sprint Planning exists.&lt;/p&gt;
&lt;p&gt;Not because Agile requires another meeting. Not because teams enjoy spending time planning. But because spending a little time thinking together before building is often much easier than dealing with confusion later.&lt;/p&gt;
&lt;p&gt;And maybe that's the biggest takeaway from Sprint Planning.&lt;/p&gt;
&lt;p&gt;The goal was never the meeting itself. The goal was helping teams spend more time building and less time figuring things out along the way.&lt;/p&gt;
&lt;p&gt;Because once the sprint actually begins, the conversations don't stop. The decisions don't stop. And the collaboration doesn't stop either.&lt;/p&gt;
&lt;p&gt;In many ways, Sprint Planning is simply the point where the sprint starts — not where the work ends.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/19534/how-sprint-planning-actually-works</guid>
<pubDate>Tue, 02 Jun 2026 20:19:31 +0000</pubDate>
</item>
<item>
<title>Agile Explained Simply for Beginners</title>
<link>https://coderlegion.com/18699/agile-explained-simply-for-beginners</link>
<description>&lt;p&gt;Software development sounds pretty straightforward at first, right? Build the product, test it, and deliver it. Done. &lt;/p&gt;
&lt;p&gt;But here's the thing — in reality, things rarely go exactly as planned. &lt;/p&gt;
&lt;p&gt;Requirements change midway through development, new ideas pop up unexpectedly, deadlines shift, customer expectations evolve, and sometimes even a technically correct product may still not feel right to users. &lt;/p&gt;
&lt;p&gt;This is exactly one of the biggest reasons why &lt;strong&gt;Agile&lt;/strong&gt; became such a widely used approach in modern software development. &lt;/p&gt;
&lt;p&gt;But despite being used almost everywhere today, Agile still sounds confusing to many beginners, and honestly, even to some experienced software developers. &lt;/p&gt;
&lt;p&gt;So instead of learning Agile through complicated book-ish definitions, let's try to understand it in a much simpler and more practical way with examples.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;what-is-agile-&quot;&gt;What is Agile?&lt;/h2&gt;
&lt;p&gt;Let’s start with the word itself.&lt;/p&gt;
&lt;p&gt;If a person can move quickly and adapt easily to situations, then what do we call such a person? Agile, right? Someone with great agility. In the similar fashion, Agile in the tech world is not rocket science. It is simply an approach that helps teams &lt;strong&gt;adapt to changes&lt;/strong&gt;, &lt;strong&gt;improve continuously&lt;/strong&gt;, and solve problems &lt;strong&gt;step by step&lt;/strong&gt; instead of all at once. That's it!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;why-agile-exists&quot;&gt;Why Agile Exists&lt;/h2&gt;
&lt;p&gt;Let's understand the existence and need for Agile with an example. Imagine a team is responsible for delivering a ready product to a client and its users. &lt;/p&gt;
&lt;p&gt;What would a normal team do if Agile did not exist, or if they were unaware of it? They would simply start developing the product from start to finish in one go. &lt;/p&gt;
&lt;p&gt;Now, suppose in the middle of development, the client suddenly requests a change in the product — it could be anything. What would the team do now? They would first try to adjust the existing development, but making changes at that stage becomes difficult, messy, and expensive. In most cases, team may even need to rework large parts of the product from scratch again.&lt;/p&gt;
&lt;p&gt;This is the problem Agile helps solve. Agile follows a proper process throughout the project timeline. Traditional methodologies often faced adaptability issues. They were time-consuming, costly, and resource-heavy. Agile, on the other hand, focuses on &lt;strong&gt;adapting to changes&lt;/strong&gt; quickly, which helps &lt;strong&gt;reduce extra cost&lt;/strong&gt;, optimize resources, and save time, which ultimately helps teams &lt;strong&gt;deliver products faster&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;As a result, teams can respond to changes more comfortably without rebuilding everything from scratch.&lt;/p&gt;
&lt;p&gt;And that is exactly why Agile became a game changer for modern teams.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;agile-mindset&quot;&gt;Agile Mindset&lt;/h2&gt;
&lt;p&gt;Agile as an approach does not just help with product development. It also improves the way a person thinks while solving problems. Instead of getting overwhelmed by the final goal, Agile teaches us to focus on &lt;strong&gt;smaller manageable tasks&lt;/strong&gt; step by step. &lt;/p&gt;
&lt;p&gt;And that is where the concept of &lt;strong&gt;Agile Mindset&lt;/strong&gt; comes in. To properly follow Agile, both the development process and the mindset should work together. &lt;/p&gt;
&lt;p&gt;But now the question is — how does the mindset even matter in development? &lt;/p&gt;
&lt;p&gt;Let's understand this with a simple example. &lt;/p&gt;
&lt;p&gt;Suppose a team is building a ride-sharing app. It can have multiple features like bike booking, metro ticket integration, live tracking, ETA prediction, reward coins, and many more. Now imagine that one newly assigned feature feels very complicated to a developer, and they start stressing about how everything will work together. &lt;/p&gt;
&lt;p&gt;This is where Agile Mindset helps. Instead of stressing about the entire product all at once, the team focuses only on the current small goal they need to complete right now. &lt;/p&gt;
&lt;p&gt;For example, first complete login functionality, then implement booking, then add tracking, then improve payments, and likewise complete the product. It is like taking &lt;strong&gt;one step at a time&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This reduces mental clutter and helps teams work more clearly and efficiently.&lt;/p&gt;
&lt;p&gt;And interestingly, Agile is not useful only in the tech world. Its way of thinking can also help in business, teamwork, self-improvement, and even real-life situations. &lt;/p&gt;
&lt;p&gt;Think about success in real life. Nobody becomes successful overnight, right? A business usually starts small and grows gradually with time, learning, mistakes, feedback, and continuous improvement. People first achieve smaller goals before finally reaching something big. &lt;/p&gt;
&lt;p&gt;That's the real power of Agile Mindset — solving big problems by focusing on one meaningful step at a time.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;why-is-agile-called-an-iterative-approach-&quot;&gt;Why is Agile Called an Iterative Approach?&lt;/h2&gt;
&lt;p&gt;So far, we can understand that Agile follows an &lt;strong&gt;Iterative Development&lt;/strong&gt; approach, unlike traditional development models such as the Waterfall Model or V-Model, which usually follow a &lt;strong&gt;Linear Development&lt;/strong&gt; approach. &lt;/p&gt;
&lt;p&gt;But before understanding Iterative Development more clearly, we first need a very basic understanding of &lt;strong&gt;Software Development Life Cycle (SDLC)&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Every software product usually goes through a development process before reaching users. In simple terms, SDLC is the overall process followed to build software. &lt;/p&gt;
&lt;p&gt;The process usually starts with requirements gathering and planning, where the team understands what needs to be built. Based on those requirements, design specifications are created for the product. Once the planning and design are ready, the development process begins, where the actual product is built. After development, the product goes through testing to identify bugs and verify whether everything is working properly. Finally, the product is deployed for customers to use. &lt;/p&gt;
&lt;p&gt;Refer to the image below for a visual representation of SDLC.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=12823520908258653015&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Now, here’s where the real difference begins. &lt;/p&gt;
&lt;p&gt;In traditional models like Waterfall Model, these stages are usually completed one after another in a fixed sequence. This means the customer often has to wait until the very end before receiving the complete product. &lt;/p&gt;
&lt;p&gt;But Agile approaches development differently. &lt;/p&gt;
&lt;p&gt;Instead of building the entire product in one long cycle, Agile breaks the product into smaller parts and repeats these development phases multiple times in short cycles called &lt;strong&gt;iterations&lt;/strong&gt;. In the tech world, it is referred to as &lt;strong&gt;sprints&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;For example, a small feature is planned, then designed, then developed, then tested, and finally the product is delivered. Of course, it may contain limited features at first, but it is still usable for users. Then the same cycle repeats again for the next feature. This allows teams to continuously improve the product, gather feedback early, and adapt to changes more easily during development instead of waiting until the very end. &lt;/p&gt;
&lt;p&gt;And because these process keeps repeating again and again throughout the project, Agile is called Iterative Development approach. &lt;/p&gt;
&lt;p&gt;Refer to the image below to visually understand the difference between Agile and Waterfall development approaches.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=444912044743554383&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;why-customer-feedback-matters-in-agile&quot;&gt;Why Customer Feedback Matters in Agile&lt;/h2&gt;
&lt;p&gt;One of the biggest advantages of Agile is &lt;strong&gt;continuous customer feedback&lt;/strong&gt; throughout the development process, unlike traditional models like the Waterfall Model, where customers usually see the final product only after the entire development process is completed.&lt;/p&gt;
&lt;p&gt;This creates a major problem. &lt;/p&gt;
&lt;p&gt;What if the customer changes the requirements midway? What if the delivered product does not meet their expectations? Or what if users simply do not like how a feature works? &lt;/p&gt;
&lt;p&gt;At this stage, making changes can cost a lot in terms of time, money, as well as resources and infrastructure because a large part of a product is already built. &lt;/p&gt;
&lt;p&gt;Agile tries to solve this problem by involving customers and stakeholders throughout the development process instead of only at the end. &lt;/p&gt;
&lt;p&gt;As we discussed earlier about Agile development which happens in small iterations or sprints, teams get a chance to regularly show progress, collect feedback, and adapt accordingly. &lt;/p&gt;
&lt;p&gt;For example, instead of developing an application continuously for six months or even a year and then shipping it only after completion, an Agile team may first deliver a small working version with limited features. Based on customer feedback, improvements and changes are then made to the product in the upcoming sprint or iteration. &lt;/p&gt;
&lt;p&gt;This creates a &lt;strong&gt;continuous feedback loop&lt;/strong&gt; where the product keeps improving at each iteration throughout the development process. &lt;/p&gt;
&lt;p&gt;Because of early and regular feedback, problems can be identified much sooner. Teams can quickly adapt to the changes before problems become too costly or difficult to manage.&lt;/p&gt;
&lt;p&gt;This not only helps teams deliver a better product, but also increases the chances of building something that actually matches customer expectations and real user needs. &lt;/p&gt;
&lt;p&gt;Refer to the image below to understand how continuous feedback leads to continuous improvement in Agile development.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=14095513935415715886&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;flexibility-and-adaptability-in-agile&quot;&gt;Flexibility and Adaptability in Agile&lt;/h2&gt;
&lt;p&gt;As mentioned earlier, requirements rarely remain the same from start to finish. This is one of the biggest challenges in software development.&lt;/p&gt;
&lt;p&gt;New business ideas appear, customer expectations evolve, market trends change, and sometimes problems are discovered during the development phase itself. &lt;/p&gt;
&lt;p&gt;This is where traditional development models often struggle. Making changes late in development can affect a large part of the project, right? &lt;/p&gt;
&lt;p&gt;Agile is designed to handle such situations more comfortably. &lt;/p&gt;
&lt;p&gt;Using the same ride-sharing example we discussed earlier, imagine that a client suddenly requests a new feature midway through development. In that case, Agile teams can prioritize and include it in upcoming sprints without heavily disrupting the overall workflow. &lt;/p&gt;
&lt;p&gt;This makes Agile far more &lt;strong&gt;flexible&lt;/strong&gt; and &lt;strong&gt;adaptable&lt;/strong&gt; for real-world project environments, where changes are not just common, but often unavoidable.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;important-agile-concepts-everyone-should-know&quot;&gt;Important Agile Concepts Everyone Should Know&lt;/h2&gt;
&lt;p&gt;While learning Agile, you'll definitely come across certain terms again and again. At first glance, they may sound too technical, but once you understand them in simpler terms, they become much easier to understand and implement during the actual development process.&lt;/p&gt;
&lt;h3 id=&quot;1-user-stories&quot;&gt;1. User Stories&lt;/h3&gt;
&lt;p&gt;User Stories are simple descriptions of a feature from a user's perspective. &lt;/p&gt;
&lt;p&gt;Instead of writing hundreds of lines in requirement documents, Agile teams usually prefer explaining features in a much simpler way by focusing on what the user wants and why they need it. &lt;/p&gt;
&lt;h3 id=&quot;2-story-points&quot;&gt;2. Story Points&lt;/h3&gt;
&lt;p&gt;Not every task requires the same amount of effort, right? Some tasks may be simple, while others may be more complex. &lt;/p&gt;
&lt;p&gt;Story Points are used to roughly estimate how big, complex or difficult the task is compared to others. &lt;/p&gt;
&lt;h3 id=&quot;3-product-backlog&quot;&gt;3. Product Backlog&lt;/h3&gt;
&lt;p&gt;The Product Backlog is basically the master to-do list of the product. &lt;/p&gt;
&lt;p&gt;It contains tasks related to features, improvements, bug fixes, ideas, and other things that may be worked on during development. &lt;/p&gt;
&lt;h3 id=&quot;4-sprint-backlog&quot;&gt;4. Sprint Backlog&lt;/h3&gt;
&lt;p&gt;The Sprint Backlog is nothing but the set of tasks or user stories the team plans to complete during the current sprint. &lt;/p&gt;
&lt;p&gt;You can think of it as the team's short-term work plan. &lt;/p&gt;
&lt;h3 id=&quot;5-sprint&quot;&gt;5. Sprint&lt;/h3&gt;
&lt;p&gt;A Sprint is a short development cycle where the team works on a specific set of tasks or features, basically the Sprint Backlog, within a fixed duration. &lt;/p&gt;
&lt;p&gt;At the end of a sprint, the goal is usually to deliver some kind of working improvement in the product. &lt;/p&gt;
&lt;h3 id=&quot;6-scrum-or-daily-standups&quot;&gt;6. Scrum or Daily Standups&lt;/h3&gt;
&lt;p&gt;Scrum, often referred to through Daily Standups, consists of short team meetings held regularly during development. &lt;/p&gt;
&lt;p&gt;Team members quickly discuss what they are working on, what they completed, and whether they are facing any issues or blockers.&lt;/p&gt;
&lt;p&gt;You can think of it as a quick daily progress update within the team. &lt;/p&gt;
&lt;h3 id=&quot;7-retrospectives&quot;&gt;7. Retrospectives&lt;/h3&gt;
&lt;p&gt;At the end of a sprint, teams often conduct a Retrospective. &lt;/p&gt;
&lt;p&gt;This is basically a discussion about what went well, what did not go well, and what can be improved in the upcoming sprint. &lt;/p&gt;
&lt;h3 id=&quot;8-velocity&quot;&gt;8. Velocity&lt;/h3&gt;
&lt;p&gt;By hearing the word Velocity, you probably started thinking about the physics term “velocity”, right? And honestly, that's completely understandable. &lt;/p&gt;
&lt;p&gt;But here, Velocity simply refers to how much work a team is usually able to complete during a sprint. &lt;/p&gt;
&lt;p&gt;Over time, this helps teams plan future work more realistically. &lt;/p&gt;
&lt;h3 id=&quot;9-mvp&quot;&gt;9. MVP&lt;/h3&gt;
&lt;p&gt;MVP is the most commonly used term in Agile. &lt;/p&gt;
&lt;p&gt;And no, here MVP does not stand for Most Valuable Player. Instead, it stands for Minimum Viable Product. &lt;/p&gt;
&lt;p&gt;An MVP is the simplest usable version of a product containing only the most important features.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Before ending this blog, there’s one important thing to understand — Agile is not as complicated as it looks at first.&lt;/p&gt;
&lt;p&gt;Most beginners get confused because of all the technical terms they hear like sprints, backlogs, velocity, Scrum, and many more. But once you understand the core idea behind Agile, everything slowly starts making sense naturally.&lt;/p&gt;
&lt;p&gt;At its very core, Agile is simply about &lt;strong&gt;building step by step&lt;/strong&gt;, &lt;strong&gt;improving continuously&lt;/strong&gt;, &lt;strong&gt;adapting to changes&lt;/strong&gt;, and learning throughout the process instead of trying to make everything perfect at once.&lt;/p&gt;
&lt;p&gt;Of course, Agile is a much bigger topic than what we covered here. Frameworks like Scrum, Kanban, estimation techniques, backlog management, and real-world Agile workflows go much deeper into how Agile actually works in teams and companies.&lt;/p&gt;
&lt;p&gt;But as a beginner, understanding the &lt;strong&gt;thinking behind Agile&lt;/strong&gt; is the most important first step. Once that becomes clear, the practical side of Agile — like how teams actually plan, manage, and deliver work during development — starts becoming much easier to understand as well.&lt;/p&gt;
&lt;p&gt;And honestly, that's probably why Agile still makes so much sense in modern software development today.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/18699/agile-explained-simply-for-beginners</guid>
<pubDate>Fri, 22 May 2026 20:24:38 +0000</pubDate>
</item>
<item>
<title>AI Makes Us Faster. Agile Keeps Us Pointed in the Right Direction.</title>
<link>https://coderlegion.com/18394/ai-makes-us-faster-agile-keeps-us-pointed-in-the-right-direction</link>
<description>&lt;p&gt;AI coding tools are changing the development loop.&lt;/p&gt;
&lt;p&gt;With tools like Claude Code, Cursor, and GitHub Copilot, a solo developer can build screens, wire APIs, generate logic, and deploy much faster than before.&lt;/p&gt;
&lt;p&gt;That is exciting.&lt;/p&gt;
&lt;p&gt;But it also creates a new problem.&lt;/p&gt;
&lt;p&gt;If we can build faster, we can also move in the wrong direction faster.&lt;/p&gt;
&lt;p&gt;That is why I started thinking about Agile again.&lt;/p&gt;
&lt;p&gt;Not as a set of meetings.&lt;br&gt;
Not as Scrum rituals.&lt;br&gt;
Not as a way to increase velocity.&lt;/p&gt;
&lt;p&gt;But as a way to validate direction.&lt;/p&gt;
&lt;h3 id=&quot;speed-does-not-replace-direction&quot;&gt;Speed does not replace direction&lt;/h3&gt;
&lt;p&gt;Before AI, implementation was often the bottleneck.&lt;/p&gt;
&lt;p&gt;Even if a team knew what to build, actually building it took time. That slow process naturally created moments to think, question, and refine the direction.&lt;/p&gt;
&lt;p&gt;Now the implementation loop is much faster.&lt;/p&gt;
&lt;p&gt;You describe a screen, and code appears.&lt;br&gt;
You describe an API, and endpoints are generated.&lt;br&gt;
You describe a workflow, and an assistant can produce a working draft.&lt;/p&gt;
&lt;p&gt;That speed is useful. But it can also hide a dangerous pattern.&lt;/p&gt;
&lt;p&gt;You ship one feature, then immediately see the next one.&lt;br&gt;
Then the next.&lt;br&gt;
Then another.&lt;/p&gt;
&lt;p&gt;Before asking whether the current feature actually solved a real problem, you are already building the next thing.&lt;/p&gt;
&lt;p&gt;Fast completion is not the danger.&lt;br&gt;
Fast certainty is.&lt;/p&gt;
&lt;h3 id=&quot;agile-was-never-just-about-moving-faster&quot;&gt;Agile was never just about moving faster&lt;/h3&gt;
&lt;p&gt;Agile is often misunderstood as a fast development methodology.&lt;/p&gt;
&lt;p&gt;Run sprints.&lt;br&gt;
Do standups.&lt;br&gt;
Track velocity.&lt;br&gt;
Ship often.&lt;/p&gt;
&lt;p&gt;But the deeper point of Agile is not speed.&lt;/p&gt;
&lt;p&gt;It is feedback.&lt;/p&gt;
&lt;p&gt;Build something small enough to test.&lt;br&gt;
Show it to real users.&lt;br&gt;
Observe what changes.&lt;br&gt;
Adjust direction before the cost of being wrong becomes too high.&lt;/p&gt;
&lt;p&gt;A sprint without feedback is just Waterfall with shorter cycles.&lt;/p&gt;
&lt;p&gt;This matters even more in the AI era.&lt;/p&gt;
&lt;p&gt;AI can accelerate the “build” part of the loop. But it does not automatically answer the more important questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Who is this for?&lt;/li&gt;
&lt;li&gt;What problem does it solve?&lt;/li&gt;
&lt;li&gt;Is this problem painful enough?&lt;/li&gt;
&lt;li&gt;Did the user actually need this?&lt;/li&gt;
&lt;li&gt;What did we learn after shipping?&lt;/li&gt;
&lt;li&gt;Are we improving the product, or just adding more features?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those questions still belong to people.&lt;/p&gt;
&lt;h3 id=&quot;for-solo-developers-and-founders&quot;&gt;For solo developers and founders&lt;/h3&gt;
&lt;p&gt;This is especially important for solo developers and indie founders.&lt;/p&gt;
&lt;p&gt;AI makes it easier to build an MVP in a day.&lt;/p&gt;
&lt;p&gt;But an MVP is not just a smaller product.&lt;br&gt;
It is a smaller piece of evidence.&lt;/p&gt;
&lt;p&gt;A landing page can be an MVP.&lt;br&gt;
A manual workflow can be an MVP.&lt;br&gt;
Five user interviews can be an MVP.&lt;/p&gt;
&lt;p&gt;The goal is not to prove that you can build something.&lt;br&gt;
The goal is to test whether the problem is real.&lt;/p&gt;
&lt;p&gt;For founders, Agile is less about team process and more about hypothesis validation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Problem hypothesis&lt;/li&gt;
&lt;li&gt;Customer hypothesis&lt;/li&gt;
&lt;li&gt;Channel hypothesis&lt;/li&gt;
&lt;li&gt;Pricing hypothesis&lt;/li&gt;
&lt;li&gt;Retention hypothesis&lt;/li&gt;
&lt;li&gt;Feature hypothesis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the problem hypothesis is wrong, building more features will not save the product.&lt;/p&gt;
&lt;h3 id=&quot;for-teams-using-ai&quot;&gt;For teams using AI&lt;/h3&gt;
&lt;p&gt;In teams, AI can increase output quickly.&lt;/p&gt;
&lt;p&gt;More tickets closed.&lt;br&gt;
More pull requests opened.&lt;br&gt;
More features shipped.&lt;/p&gt;
&lt;p&gt;But more output does not always mean more product value.&lt;/p&gt;
&lt;p&gt;A team can ship eight AI-assisted features in a sprint and still see no change in retention, activation, or user satisfaction.&lt;/p&gt;
&lt;p&gt;That is why the Definition of Done also needs to evolve.&lt;/p&gt;
&lt;p&gt;In the AI era, “done” should not only mean:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;code reviewed&lt;/li&gt;
&lt;li&gt;tests passed&lt;/li&gt;
&lt;li&gt;deployed successfully&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It should also ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can the team explain the AI-generated code?&lt;/li&gt;
&lt;li&gt;Does this feature solve a specific user problem?&lt;/li&gt;
&lt;li&gt;Is there a way to observe whether it works?&lt;/li&gt;
&lt;li&gt;Did we define what we expect to learn?&lt;/li&gt;
&lt;li&gt;Will this change inform the next decision?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI can help us build faster.&lt;br&gt;
But direction still needs to be verified.&lt;/p&gt;
&lt;h3 id=&quot;agile-as-a-direction-validation-loop&quot;&gt;Agile as a direction validation loop&lt;/h3&gt;
&lt;p&gt;The way I now understand Agile is simple:&lt;/p&gt;
&lt;p&gt;Question → Hypothesis → Build → Observe → Adjust&lt;/p&gt;
&lt;p&gt;AI can accelerate Build.&lt;br&gt;
It may also help with Observe.&lt;/p&gt;
&lt;p&gt;But Question, Hypothesis, and Adjust still require human judgment.&lt;/p&gt;
&lt;p&gt;That is where Agile still matters.&lt;/p&gt;
&lt;p&gt;Not because teams need more rituals.&lt;br&gt;
Not because every company needs Scrum.&lt;br&gt;
Not because velocity should go up.&lt;/p&gt;
&lt;p&gt;But because faster development makes wrong direction more expensive.&lt;/p&gt;
&lt;p&gt;I wrote a longer Deep Dive on this idea here:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://dechive.dev/en/deep-dive/ai-era-agile-verification&quot;&gt;https://dechive.dev/en/deep-dive/ai-era-agile-verification&lt;/a&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/18394/ai-makes-us-faster-agile-keeps-us-pointed-in-the-right-direction</guid>
<pubDate>Wed, 20 May 2026 04:54:12 +0000</pubDate>
</item>
<item>
<title>Why Your Story Points Feel Arbitrary (And How to Fix It)</title>
<link>https://coderlegion.com/17739/why-your-story-points-feel-arbitrary-and-how-to-fix-it</link>
<description>&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a rel=&quot;nofollow&quot; href=&quot;https://medium.com/@rajkundalia/why-your-story-points-feel-arbitrary-and-how-to-fix-it-63cb7a9a51da&quot;&gt;Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;I just feel it is &quot;2&quot;, no, I think it is &quot;3&quot;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When I first came across story points, I always wondered how the &quot;experienced&quot; people on the team were calling out numbers so confidently. Now that I've become one of those &quot;experienced&quot; people — I realized I still didn't have a stronger framework for it. Like everyone else, I'd gone with gut feeling. Others would nod along, and sometimes we'd walk out with no real sense of why. All I knew was it should follow the Fibonacci series. Everyone had different intuitions, and the loudest voice — or the consensus — won.&lt;/p&gt;
&lt;p&gt;So I tried to build a mental model for &lt;strong&gt;myself&lt;/strong&gt; &lt;em&gt;(not used by the team, yet)&lt;/em&gt;, so I'd have something to point at when I picked a number. This is what I landed on after trying it on a couple of story-pointing sessions.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnwccuxdi5zi169zh9kn.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-four-dimensions&quot;&gt;The four dimensions&lt;/h3&gt;
&lt;p&gt;Story points are supposed to capture how big the story would be, but the word &quot;big&quot; can pack in a lot of things, so I unpacked it into four things that I could actually measure:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Complexity&lt;/strong&gt; — How hard is this to build? New tech, tricky logic, or big design decisions push this up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Effort&lt;/strong&gt; — How much work is there? A lot of small, easy changes across many files can still be Medium or High here, even if each change is trivial.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uncertainty / Risk&lt;/strong&gt; — How clear is the requirement? Open questions, unfamiliar parts of the system, or things that might surprise me mid-way add risk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dependencies&lt;/strong&gt; — Does this depend on other teams or systems? This one is about &lt;em&gt;waiting&lt;/em&gt;, not work. And waiting still inflates the point value. Every time the work unblocks, I have to re-page the state back into my head — and a story that crosses sprint boundaries carries its own cognitive overhead and spillover risk. Some people would argue dependencies shouldn't affect the size at all — they're not work, just calendar drag — but for me the cognitive overhead is real enough that they belong in the rubric.&lt;/p&gt;
&lt;p&gt;For each, I rate Low, Medium, or High.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;rating-guide&quot;&gt;Rating guide&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Dimension &lt;/th&gt;&lt;th&gt;Low &lt;/th&gt;&lt;th&gt;Medium &lt;/th&gt;&lt;th&gt;High&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Complexity &lt;/td&gt;&lt;td&gt;Pattern we've done many times &lt;/td&gt;&lt;td&gt;Some design decisions needed &lt;/td&gt;&lt;td&gt;New tech, design-heavy, or novel problem&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Effort &lt;/td&gt;&lt;td&gt;Single small change &lt;/td&gt;&lt;td&gt;Multiple changes, moderate scope &lt;/td&gt;&lt;td&gt;Many files / modules / large scope&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Uncertainty / Risk &lt;/td&gt;&lt;td&gt;Requirement fully clear &lt;/td&gt;&lt;td&gt;Some open questions &lt;/td&gt;&lt;td&gt;Significant unknowns&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Dependencies &lt;/td&gt;&lt;td&gt;None external &lt;/td&gt;&lt;td&gt;One known, manageable &lt;/td&gt;&lt;td&gt;Multiple, or blocked on another team&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-i-map-ratings-to-points&quot;&gt;How I map ratings to points&lt;/h3&gt;
&lt;p&gt;Roughly, here's where I thought it made sense. Your numbers will probably differ once you've used this a few times — and they should.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Ratings &lt;/th&gt;&lt;th&gt;Points&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;All Low &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;One Medium, rest Low &lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Multiple Medium &lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;One High &lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Multiple High &lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Mostly High &lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Do not be mechanical about this, it works now for me, can change in future.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sanity check:&lt;/strong&gt; if a story lands at 8 or 13, ask whether it should be split before you size it. Stories with several high-rated dimensions are usually epics in disguise.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-i-actually-use-it&quot;&gt;How I actually use it&lt;/h3&gt;
&lt;p&gt;I rate each dimension in my head before I name a number. The dimensions are the work; the number is just the output.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8vrq8yff4vq6ksvpvrz.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;The biggest thing I noticed isn't that I'm picking better numbers — it's that I can finally say &lt;em&gt;why&lt;/em&gt;. Before, &quot;5&quot; was a feeling. Now I can trace it back: complexity High, dependencies Medium, the rest Low. Even if I don't share the breakdown out loud, having it in my head means I'm offering an estimate instead of a guess. And when I disagree with the room, I have something specific to point at — &quot;I think it's a 5 because the unknowns here are bigger than they look&quot; — instead of defending a number on instinct.&lt;/p&gt;
&lt;p&gt;This is a starting point, not a strict formula. Override it when experience says otherwise. After a few sprints, look back at the stories that surprised you — were the surprises about complexity? Dependencies? Something else? Adjust the dimensions and the ratings to match what actually drives your estimation misses.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-this-is-not&quot;&gt;What this is not&lt;/h3&gt;
&lt;p&gt;This doesn't convert to hours, and it shouldn't be used to measure individual productivity.&lt;/p&gt;
&lt;p&gt;The number isn't the point. The four-dimension conversation that produces it is.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Thank you for reading, suggestions are welcome.&lt;/p&gt;
&lt;p&gt;Follow me on LinkedIn: &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/rajkundalia/&quot;&gt;Raj Kundalia&lt;/a&gt;&lt;/p&gt;
</description>
<category>Tutorials</category>
<guid isPermaLink="true">https://coderlegion.com/17739/why-your-story-points-feel-arbitrary-and-how-to-fix-it</guid>
<pubDate>Wed, 13 May 2026 15:55:00 +0000</pubDate>
</item>
<item>
<title>Snake Oil, Rituals, and Why We’re Wrong To Burn It All Down</title>
<link>https://coderlegion.com/16738/snake-oil-rituals-and-why-were-wrong-to-burn-it-all-down</link>
<description>&lt;p&gt;The term “snake oil salesman” is often used to describe individuals who engage in deceptive marketing practices. Wild west characters like &lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/Clark_Stanley&quot;&gt;Clark Stanley&lt;/a&gt; advertised their snake oil as a wondrous cure-all remedy. But in 1916, the U.S. government’s Bureau of Chemistry tested the liniment, found it to be dramatically overpriced and of limited value, and Stanley was fined $20.&lt;/p&gt;
&lt;p&gt;Yet that’s not the end of the story.&lt;/p&gt;
&lt;h3 id=&quot;you-probably-use-snake-oil&quot;&gt;You Probably Use Snake Oil&lt;/h3&gt;
&lt;p&gt;Snake oil wasn’t entirely purposeless. While it’s true that it didn’t match the claims on the bottle, certain ingredients, such as capsaicin and camphor, proved valuable when used for valid purposes.&lt;/p&gt;
&lt;p&gt;Capsaicin, derived from chili peppers, is now used in skin-applied pain relief products to relieve muscular and joint pain. It’s an FDA-approved therapeutic treatment. Camphor is also commonly used as a counter-irritant, helping relieve itching from insect bites. It’s also the go-to ingredient for makers of chest rubs, which you’ve likely used as a decongestant when you’ve had a cold.&lt;/p&gt;
&lt;p&gt;So, while snake oil failed to match the wild claims of its peddlers, it wasn’t completely useless. This is also true in the software industry, so being able to separate the valuable ingredients from debunked software delivery recipes is a crucial skill.&lt;/p&gt;
&lt;h3 id=&quot;waterfall-is-bad-mostly&quot;&gt;Waterfall Is Bad, Mostly&lt;/h3&gt;
&lt;p&gt;The term “waterfall” is often used as a catch-all name for phased software delivery, where tasks are performed in a sequential order that resembles a waterfall. When the lightweight rebellion overthrew the heavyweight models of the time, it created a mistaken belief that the phased software models were simply wrong.&lt;/p&gt;
&lt;p&gt;But the creators of these old models have been short-changed, as they had been telling us to work in this new way all along.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=2459904487411428140&quot; alt=&quot;The many stages, thought processes, and tests of phased software delivery. Source: Production of Large Programs. Herbert D. Benington. 1956&quot;&gt;&lt;/p&gt;
&lt;p&gt;In his 1956 paper, “Production of Large Programs,” Herbert Benington discusses concepts that we would now label as platform engineering. Benington decried the idea of top-down programming, where a specification would be completed before the code was written. Winston Royce, in his 1970 paper “Managing the Development of Large Software Systems,” advised people to work in small incremental changes, as this would reduce complexity and allow organizations to roll back to a previous version if they moved in the wrong direction. These ideas resurfaced in Barry Boehm’s Spiral Model.&lt;/p&gt;
&lt;p&gt;The success of Agile was largely due to how the proponents of lightweight software delivery carefully extracted the good ingredients from the heavyweight recipe used in the popular processes that dominated the industry in the 1990s. They preserved the good parts and discarded large swathes of the toxic ones.&lt;/p&gt;
&lt;h3 id=&quot;the-recurring-crisis&quot;&gt;The Recurring Crisis&lt;/h3&gt;
&lt;p&gt;Our crisis comes from a tendency for management to be attracted to process and repelled by technical and cultural practices. They have a craving to reintroduce elements of phased software models that were expertly removed, and they want to discard crucial techniques that they don’t understand (or sound like hard work).&lt;/p&gt;
&lt;p&gt;Increasing process weight while decreasing technical excellence is a path to destruction.&lt;/p&gt;
&lt;p&gt;The canonical example of this management error comes from the early days of Agile. Around the time of the Agile Manifesto, the leading lightweight method was Extreme Programming (XP). It had similar process elements to Scrum, but also a map of interconnected technical practices that kept the cost of change low, which is the key to sustaining agility over the long term.&lt;/p&gt;
&lt;p&gt;For managers, Scrum’s exclusive focus on process was unthreatening, while XP’s emphasis on technical skills struck fear into their hearts. When it came to management, Scrum was top dog. As a result, we spent a decade spinning wheels until Dave Farley and Jez Humble revived and renewed the ideas of XP in their landmark book, “Continuous Delivery.”&lt;/p&gt;
&lt;p&gt;Of course, it didn’t stop with Scrum. When you don’t have technical excellence, the process elements of Scrum don’t deliver the outcomes that are expected of agile software development. As a result, management responded by bulking up the process to “work at scale” or “handle Enterprise needs”. The real motivation behind this was, of course, the comfort of process working against the complexity of reality, which can only be resolved by social and technical means.&lt;/p&gt;
&lt;p&gt;When DevOps first emerged, it could be summed up as breaking down the silos between development and operations. This idea was further refined to align the goals of the two teams and encourage them to collaborate more effectively. Everyone was on board with this until a decade of research revealed the need for those intimidating technical elements, the necessity of transformational leadership, and the value of lean product management. When DevOps got too real, the desire to run away intensified.&lt;/p&gt;
&lt;p&gt;The rush from complex realities to simplifications is a mistake we repeatedly make. Putting it unkindly, the fall of all good methods is the result of managers fleeing in terror from things they don’t understand as well as they should.&lt;/p&gt;
&lt;h3 id=&quot;finding-the-real-remedy&quot;&gt;Finding The Real Remedy&lt;/h3&gt;
&lt;p&gt;The software industry’s snake oil problem isn’t that we have too many frameworks and practices; it’s that we have too few. It’s that we’ve lost the ability to think critically about them. We adopt wholesale when we should cherry-pick. We follow prescriptions when we should experiment.&lt;/p&gt;
&lt;p&gt;The most effective software teams aren’t the ones who’ve found the perfect framework. They’re the ones who’ve learned to extract value from imperfect ones, who understand that every practice is context-dependent, and who continuously question whether what they’re doing is actually helping.&lt;/p&gt;
&lt;p&gt;Snake oil taught us an important lesson, but it wasn’t the one we thought. It’s not that old remedies are worthless. It’s that we need to look past the marketing to understand what actually works. The same applies to software practices. Behind every framework, methodology, and best practice lies a kernel of insight that addresses a real problem.&lt;/p&gt;
&lt;p&gt;Our job isn’t to mindlessly follow or unthinkingly reject. It’s about understanding, extracting, and applying wisely.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/16738/snake-oil-rituals-and-why-were-wrong-to-burn-it-all-down</guid>
<pubDate>Tue, 05 May 2026 09:12:47 +0000</pubDate>
</item>
<item>
<title>I Built a Benchmark That Proves Most LLM Agents Are Statistically Blind And Why That Costs Companies Real Money</title>
<link>https://coderlegion.com/15952/built-benchmark-that-proves-agents-statistically-blind-that-costs-companies-real-money</link>
<description>&lt;p&gt;&lt;strong&gt;RealDataAgentBench forces agents to think like actual data scientists, not just copy answers. Here’s what I learned after running 163 experiments across 10 models.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Two months ago I got tired of watching LLM agents ace toy benchmarks but fall apart on real data science work.They could write code. They could get the final number right. &lt;/p&gt;
&lt;p&gt;But when it came to statistical validity  proper uncertainty reporting, avoiding data leakage, understanding confounding variables, or choosing the right method they were guessing.&lt;/p&gt;
&lt;p&gt;So I built &lt;strong&gt;RealDataAgentBench&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lsngks5zuqrpm5g1qor6.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;It is not another “does the model get the right answer?” benchmark. &lt;/p&gt;
&lt;p&gt;It is a test track that grades LLM agents on four dimensions that actually matter in production:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Correctness&lt;/strong&gt; - does it match ground truth? &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Quality&lt;/strong&gt; - is the code vectorized, readable, and professional?  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficiency&lt;/strong&gt; – how many tokens and dollars does it burn?  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Statistical Validity&lt;/strong&gt; – does it think like a careful statistician or just hallucinate confidence?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Every task uses fully reproducible seeded datasets. Every run is scored automatically. The leaderboard updates itself via GitHub Actions.&lt;/p&gt;
&lt;p&gt;I currently have 23 tasks across EDA, Feature Engineering, Modeling, Statistical Inference, and ML Engineering. I have run 163+ experiments across 10 models (Claude Sonnet, GPT-4o, GPT-4o-mini, Grok models, Gemini 2.5, Llama via Groq, and more).&lt;/p&gt;
&lt;p&gt;Some results surprised me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;GPT-4o and Claude Sonnet are extremely close in overall score.  &lt;/li&gt;
&lt;li&gt;GPT-4o is dramatically cheaper per task.  &lt;/li&gt;
&lt;li&gt;Groq Llama models are fast and cheap but sometimes skip statistical rigor.&lt;/li&gt;
&lt;li&gt;The biggest failures are not in correctness they are in statistical validity and code quality.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vbxqvx54m4qcqkf6ddd0.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;That is expensive for companies. Choosing the wrong model can easily waste thousands of dollars per month in API costs and produce analyses that look correct but are statistically flawed.How the benchmark actually works (real example.&lt;/p&gt;
&lt;p&gt;Take task eda_003 — E-Commerce Confounding Variable Detection (Hard).&lt;/p&gt;
&lt;p&gt;The agent is given sales data that exhibits Simpson’s Paradox. It must detect the confounding variable, compute partial correlation, and explain the result correctly.&lt;/p&gt;
&lt;p&gt;Most agents fail here. They report the aggregate correlation and confidently declare “positive relationship” while completely missing the reversal when you control for the confounder. My scoring engine catches that instantly in the Statistical Validity dimension.&lt;/p&gt;
&lt;p&gt;The agent also has to write clean, vectorized code and stay within the token budget.This single task reveals more about a model’s real capability than 50 simple math questions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why this matters for companies&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Small and medium companies cannot afford to test 10 different models manually. RealDataAgentBench lets them drop their own dataset in and get an immediate recommendation:&lt;/p&gt;
&lt;p&gt;“Use GPT-4o for this data best statistical validity at 60% lower cost than Claude Opus.”I added a budget flag so even tiny teams can test safely without surprise bills. Groq support makes the first tests completely free.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I learned building it&lt;/strong&gt; &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Different models need different system prompts. &lt;/li&gt;
&lt;li&gt;Claude loves strict instructions; Grok is creative but lazy on stats.  &lt;/li&gt;
&lt;li&gt;Reproducible seeded datasets are non-negotiable for fair comparison.  &lt;/li&gt;
&lt;li&gt;The hardest part was not the code it was making the scoring engine statistically honest. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Open-source done right (clean README, Makefile, .env.example, proper CI) gets you real contributors and stars.&lt;/p&gt;
&lt;p&gt;The project is 100% open source:&lt;br&gt;
→ &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/patibandlavenkatamanideep/RealDataAgentBench&quot;&gt;https://github.com/patibandlavenkatamanideep/RealDataAgentBench&lt;/a&gt;      &lt;/p&gt;
&lt;p&gt;leaderboard: &lt;a rel=&quot;nofollow&quot; href=&quot;https://patibandlavenkatamanideep.github.io/RealDataAgentBench/&quot;&gt;https://patibandlavenkatamanideep.github.io/RealDataAgentBench/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Try it yourself in under 5 minutes:bash&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;- git clone https://github.com/patibandlavenkatamanideep/RealDataAgentBench
- cd RealDataAgentBench
- pip install -e &quot;.[dev]&quot;
- cp .env.example .env
- dab run eda_001 --model groq --budget 0.05
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you work with data and LLMs, I would love your feedback. Star the repo, open an issue for a new task you want, or tell me which model surprised you the most.&lt;/p&gt;
&lt;p&gt;This is just the beginning. I am actively expanding the task suite and adding more enterprise features.&lt;/p&gt;
&lt;p&gt;What real data-science failure have you seen LLMs make lately? Drop it in the comments I might turn it into the next task.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/15952/built-benchmark-that-proves-agents-statistically-blind-that-costs-companies-real-money</guid>
<pubDate>Mon, 27 Apr 2026 08:08:58 +0000</pubDate>
</item>
<item>
<title>SprintPulse</title>
<link>https://coderlegion.com/10417/sprintpulse</link>
<description>&lt;p&gt;&lt;strong&gt;What are retrospectives and why do they matter?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A retrospective is a structured team meeting - typically held at the end of a project, sprint, or work cycle - where everyone reflects on what went well, what could have gone better, and what to try differently next time. It sounds simple, but done consistently, retrospectives are the single most effective practice for building teams that continuously improve. They create space for honest feedback, surface problems before they become crises, and give every team member a voice in shaping how work gets done. Research consistently shows that teams who run regular retrospectives ship better products, have higher morale, and retain talent longer - because people want to work somewhere their input actually matters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why I built SprintPulse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Despite their proven value, most retrospectives fail to deliver. Feedback gets scribbled on sticky notes and forgotten. The same issues come up sprint after sprint with no resolution. Action items are assigned but never tracked. Enterprise tools promise solutions but cost a fortune and come bloated with features no small team needs. I built SprintPulse because I was tired of running retrospectives that felt productive in the moment but led nowhere. I wanted a tool that would capture honest feedback, surface real priorities, and - most importantly - ensure follow-through. Something designed for teams that actually ship, not committees that meet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How SprintPulse makes retrospectives actually work&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SprintPulse combines a clean, modern interface with genuinely useful AI features. Anonymous submissions create psychological safety so people say what they really think. Real-time collaboration means everyone participates simultaneously - no waiting turns, no lost momentum. Live voting surfaces the issues the team truly cares about, not just whoever speaks loudest. The AI is woven throughout the workflow: it suggests merging similar feedback so you are not discussing the same point three times, generates polished summaries the moment you finish, proposes concrete action items based on your actual discussion, and tracks recurring topics across retrospectives to spot patterns you would otherwise miss. Sentiment analysis shows how team morale trends over time, giving you early warning signs when something is off.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Give your team the retrospective experience they deserve&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The difference between a useful retrospective and a forgettable one is follow-through. SprintPulse assigns action items to specific people with real deadlines, tracks them across sprints, and surfaces them at the start of each new session so nothing falls through the cracks. One-click exports send summaries straight to Slack or stakeholder inboxes without manual copy-pasting. All of this runs on EU-hosted infrastructure with GDPR compliance, at pricing designed for real teams - not enterprise budgets. If you have ever walked out of a retrospective knowing good ideas were shared but doubting anything would change, SprintPulse is built for you. Give your team a tool that turns reflection into results, and watch what happens when honest feedback actually leads somewhere.&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/10417/sprintpulse</guid>
<pubDate>Sun, 25 Jan 2026 06:02:08 +0000</pubDate>
</item>
<item>
<title>Micro-Frontends: What They Are and Why You Should Use Them</title>
<link>https://coderlegion.com/10030/micro-frontends-what-they-are-and-why-you-should-use-them</link>
<description>&lt;h5 id=&quot;in-this-continuing-hackathon-coverage-article-we-explore-how-the-team-is-progressing-in-building-an-ai-powered-travel-agent-app-using-micro-frontends-module-federation-and-other-modern-tools-&quot;&gt;&lt;strong&gt;In this continuing hackathon coverage article, we explore how the team is progressing in building an AI-powered travel agent app using micro-frontends, Module Federation, and other modern tools!&lt;/strong&gt;&lt;/h5&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6cfp269id7yi3ycr3qa.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;about-the-hackathon&quot;&gt;About The Hackathon&lt;/h4&gt;
&lt;p&gt;This hackathon, hosted by Shashi Lo’s Gridiron Survivor apprenticeship program, brings together developers for a fast-paced challenge: building an AI-powered travel app entirely from scratch. Taking place in the first quarter of 2026, two rival teams are competing, with each group working on their own unique project. The event offers not only prizes, but also a great opportunity to build skills, collaborate in a real-world setting, and share progress with the community. While there’s a competitive edge, the main focus is on learning, teamwork, and gaining hands-on development experience.&lt;/p&gt;
&lt;p&gt;To follow our journey, ask questions, and share your feedback in real time, subscribe to the &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/@codingwithshashi&quot;&gt;Coding with Shashi YouTube channel&lt;/a&gt; and turn on notifications to stay updated on all the latest events.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hackathon/Gridiron Survivor Team Members:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Alex Appleget &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cody Epstein  &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hector Suazo &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will Cooley &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dominic J. Monaco &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jennifer Tieu &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;David Terzano &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Larocca&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tony Briely &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Aman Lokhande &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bradley Diep &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parys G Khazaie &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kerilne Moncy &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Calypso Hernandez MFA CSM &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jeremy Fischer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mike Chen &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nicktaylor &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shashi Lo&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-are-micro-frontends&quot;&gt;What Are Micro-Frontends&lt;/h4&gt;
&lt;p&gt;Micro-frontends are a way of building a large website by breaking it into smaller, independent sections—each one like its own mini-app, often managed by different teams. Instead of everyone working in one giant codebase, each section focuses on a specific feature, such as search, a shopping cart, or your profile. Teams can build, update, and deploy their own part without waiting for everyone else, using the tools and frameworks they prefer. When you visit the site, a main app brings all these pieces together, so everything feels like one smooth, unified website.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;why-use-micro-frontends&quot;&gt;Why Use Micro-Frontends&lt;/h4&gt;
&lt;p&gt;Why use micro-frontends? As websites grow more complex, it becomes harder for teams to work together in the same codebase without things getting overwhelming. Micro-frontends make it easy to split up the work so teams can focus on just their part of the site. This means updates and new features can go live faster, since teams aren’t waiting on each other. It’s also easier to find and fix problems because everything is broken down into smaller, more manageable pieces. Plus, teams get the freedom to choose the best tools for their section, making everyone’s job simpler and more enjoyable. In the end, micro-frontends help teams move quickly, stay organized, and keep big websites running smoothly.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-module-federation&quot;&gt;What Is Module Federation&lt;/h4&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://module-federation.io/&quot;&gt;Module Federation&lt;/a&gt; is a tool that lets different parts of a website—like micro-frontends—share code and features with each other, even if they’re built and deployed separately. Think of it like connecting LEGO sets: each team can build their own section of the site, but Module Federation makes it possible to snap those pieces together and even share special bricks (like buttons or menus) without having to copy them everywhere.&lt;/p&gt;
&lt;p&gt;With Module Federation, teams can update or add features to their section without affecting the rest of the site. It also means they can use the same tools or libraries just once, instead of loading multiple copies—keeping things fast and efficient. For micro-frontends, this is a game-changer: it allows true independence for teams, while still making sure everything works together smoothly for users. In short, Module Federation is the magic that helps all the mini-apps &quot;talk&quot; to each other and play nicely as one big app.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;personal-reflection&quot;&gt;Personal Reflection&lt;/h4&gt;
&lt;p&gt;Micro-frontends and Module Federation work together to let teams build complex apps in a smarter, more flexible way. For our hackathon project, this meant we could split our travel app into separate sections—each with its own team and features—while still keeping everything connected. Module Federation was the glue that let us share code and release updates independently, without breaking the rest of the app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting hands-on with these tools during the hackathon showed me just how practical and powerful this approach is. Here’s what I discovered:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At first, I did not grasp the concept or understand the benefits of a micro-frontend—it just sounded like standard React to me, where components can be worked on separately by team members. The “Team Champs” divided their TripWeave app into three parts: Pre-Trip, Itinerary, and During Trip, and each part is set up as a micro-frontend.&lt;/p&gt;
&lt;p&gt;With this micro-frontend approach, each part of the app can be worked on independently, without launching the entire app. This allows for a streamlined development process that benefits the team as a whole. For example, the “During Trip” part of the app—an AI-powered travel assistant—is being worked on independently and can even be launched on its own, without having to launch the entire app.&lt;/p&gt;
&lt;p&gt;Micro-frontends also let teams share things like components or helper functions, so you don’t have to copy and paste the same code everywhere. This helps keep things simple and follows the “Don’t Repeat Yourself” (DRY) principle. The Module Federation tool works alongside micro-frontends to make this kind of sharing possible, so teams can work independently and still use each other's code when needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here are a few more things I learned along the way:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Incremental Adoption:&lt;/strong&gt; You don’t have to switch to micro-frontends all at once—just add them piece by piece.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Independent Releases:&lt;/strong&gt; Teams can deploy updates to their micro-frontend whenever they’re ready, without waiting for the entire app to be finished.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent User Experience:&lt;/strong&gt; It’s important for the entire team to work together on things like design and navigation, so the app still feels seamless for users, even though different teams built different parts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Overall, learning about micro-frontends opened my eyes to new ways teams can build better apps together. This was my first experience working with micro-frontends, and although it was admittedly a bit challenging to grasp and set up, I now see the value and benefits they bring to team-based projects.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j1auulown8qh1wksyczr.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;h6 id=&quot;team-champs-tripweave-app-in-progress&quot;&gt;&lt;strong&gt;Team Champs TripWeave app in progress&lt;/strong&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;how-we-use-micro-frontends-in-the-hackathon&quot;&gt;How We Use Micro-Frontends in the Hackathon&lt;/h4&gt;
&lt;p&gt;For the Trip-Weave hackathon project, as previously mentioned, one team of 10 members took on the challenge of building the app. This team was further divided into smaller groups, with each group responsible for one section: Pre-Trip, Itinerary, or During Trip (with a few senior members supporting all three micro-frontends). This setup made it much easier for the groups to build, test, and update their section independently, without worrying about breaking the rest of the app.&lt;/p&gt;
&lt;p&gt;To organize and connect all the pieces, the team used a tool called Rsbuild. Rsbuild is a super-fast build tool—think of it as a high-speed publisher for your app—that turns code into something the browser can use. Each micro-frontend had its own setup, so groups could work independently and development was much faster. The main app, called the &quot;shell,&quot; could then pull in each micro-frontend on demand, similar to plugging in different game cartridges. Rsbuild was chosen because it's fast, supports sharing key libraries like React as singletons (so only one copy runs at a time), and works well with the team's deployment setup.&lt;/p&gt;
&lt;p&gt;To help everything work smoothly together, Module Federation was also used. This allowed the team to share code and features between sections, so there was no need to copy and paste the same things everywhere. Zephyr (one of this Hackathon’s sponsors) was also brought in to help automatically check and share code safely between the groups, making collaboration even easier. Zephyr is a platform and set of tools that helps deploy, manage, and connect micro-frontends in the cloud. It also helps generate TypeScript types for shared code, making sure everything fits together and reducing mistakes. In addition, Zephyr was used to deploy the app to the cloud, streamlining the launch process for the entire team.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;iframe width=&quot;991&quot; height=&quot;555&quot; src=&quot;https://www.youtube.com/embed/BG7HjHaezl4&quot; title=&quot;Gridiron Survivor Hackathon&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;gridiron-survivor-hackathon-amp-zephyr-cloud&quot;&gt;Gridiron Survivor Hackathon &amp;amp; Zephyr Cloud&lt;/h4&gt;
&lt;p&gt;This video introduces the Gridiron Survivor’s Hackathon, sponsored by Zephyr Cloud, with a focus on AI and building specialized agents. Zach Chapel, CEO and co-founder of Zephyr Cloud, discusses the launch of Zephyr Agency—a platform designed to create powerful, purpose-driven AI agents that go beyond generic tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Highlights from the video:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Specialized AI Agents:&lt;/strong&gt; The benefits of building agents with specific skills and human-like attributes, making them more effective than generalist AIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hackathon Project Ideas:&lt;/strong&gt; Potential projects include travel agents or websites using these specialized agents to provide tailored experiences.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Micro-Frontends &amp;amp; Module Federation:&lt;/strong&gt; How breaking apps into smaller, independent pieces lets teams work faster and deliver a seamless user experience. Zephyr Cloud streamlines this process with efficient deployment tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Junior Developers &amp;amp; AI:&lt;/strong&gt; The value of junior developers who are eager to learn and adopt new AI technologies, often adapting faster than more experienced developers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Watch the video to learn more about how AI and modern web development tools are shaping the future of collaborative projects!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;further-learning&quot;&gt;Further Learning&lt;/h4&gt;
&lt;p&gt;For an in-depth dive into Micro-Frontends, check out Jack Herrington’s excellent freeCodeCamp YouTube course: &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/watch?v=lKKsjpH09dU&quot;&gt;Micro Frontends Course – Beginner to Expert&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This course covers foundational concepts and advanced techniques, making it a great resource for both beginners and experienced devs!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;iframe width=&quot;1090&quot; height=&quot;613&quot; src=&quot;https://www.youtube.com/embed/lKKsjpH09dU&quot; title=&quot;Micro-Frontends Course - Beginner to Expert&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hl5utsb5wqfqla4i9kp7.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;gridiron-survivor-sponsors&quot;&gt;&lt;strong&gt;Gridiron Survivor Sponsors&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A very special thanks to our sponsors!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.gitkraken.com/&quot;&gt;GitKraken&lt;/a&gt;: &lt;em&gt;A popular Git client that provides a graphical interface to manage Git repositories. It is known for its user-friendly design and features that simplify version control, making it easier for developers to collaborate and manage their code.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.frontendmentor.io/&quot;&gt;Frontend Mentor&lt;/a&gt;: &lt;em&gt;An online platform that offers front-end coding challenges. It helps developers improve their skills by providing real-world projects to work on and a supportive community for feedback and learning.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://zephyr-cloud.io/&quot;&gt;Zephyr Cloud&lt;/a&gt;: &lt;em&gt;A Module Federation platform that accelerates micro-frontend development by providing instant deployment, intelligent dependency resolution, and seamless version management—all while remaining cloud agnostic, framework agnostic, and bundler agnostic.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/83ohbbmanprf0ne2imbj.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;be-sure-to-listen-to-the-html-all-the-things-podcast-&quot;&gt;&lt;strong&gt;Be sure to listen to the HTML All The Things Podcast!&lt;/strong&gt;&lt;/h4&gt;
&lt;h4 id=&quot;-i-also-write-articles-for-the-html-all-the-things-podcast-which-you-can-read-on-their-website-https-www-htmlallthethings-com-&quot;&gt;&lt;strong&gt;???? &lt;em&gt;I also write articles for the HTML All The Things Podcast, which you can read on their website:&lt;/em&gt;&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/&quot;&gt;&lt;strong&gt;https://www.htmlallthethings.com/&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;h4 id=&quot;be-sure-to-check-out-html-all-the-things-on-socials-&quot;&gt;&lt;strong&gt;Be sure to check out HTML All The Things on socials!&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/htmleverything&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/company/html-all-the-things/&quot;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.tiktok.com/@htmlallthethings&quot;&gt;TikTok&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.instagram.com/htmlallthethings/&quot;&gt;Instagram&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6fidnslhobwmgb1atl3.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;h6 id=&quot;i-m-excited-to-announce-that-i-m-now-a-torc-ambassador-as-part-of-this-global-community-i-ll-be-sharing-valuable-insights-from-torc-s-virtual-events-lessons-from-my-own-tech-journey-and-real-world-perspectives-on-how-teams-are-hiring-and-working-today-i-ll-be-active-in-the-torc-community-through-posts-events-q-amp-a-sessions-and-more-so-stay-tuned-for-updates-and-opportunities-to-connect-whether-you-re-looking-to-advance-your-tech-career-or-simply-stay-informed-i-hope-the-insights-i-share-will-support-and-inspire-you-on-your-journey-&quot;&gt;&lt;strong&gt;I’m excited to announce that I’m now a Torc Ambassador! As part of this global community, I’ll be sharing valuable insights from Torc’s virtual events, lessons from my own tech journey, and real-world perspectives on how teams are hiring and working today. I’ll be active in the Torc community through posts, events, Q&amp;amp;A sessions, and more—so stay tuned for updates and opportunities to connect. Whether you’re looking to advance your tech career or simply stay informed, I hope the insights I share will support and inspire you on your journey!&lt;/strong&gt;&lt;/h6&gt;
&lt;h6 id=&quot;torc-is-an-ai-powered-platform-and-vibrant-global-network-that-connects-skilled-professionals-with-top-opportunities-and-forward-thinking-companies-if-you-re-interested-in-joining-you-can-create-a-free-profile-using-my-referral-link-https-platform-torc-dev-r-b5qz7k5h-cp&quot;&gt;&lt;em&gt;Torc is an AI-powered platform and vibrant global network that connects skilled professionals with top opportunities and forward-thinking companies. If you’re interested in joining, you can create a free profile using my referral link:&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://platform.torc.dev/#/r/b5QZ7k5h/cp&quot;&gt;https://platform.torc.dev/#/r/b5QZ7k5h/cp&lt;/a&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;affiliate-amp-discount-links-&quot;&gt;Affiliate &amp;amp; Discount Links!&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h2p8wuudurmccwy6xeuc.jpg&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;With CodeMonkey, learning can be all fun and games!&lt;/strong&gt; CodeMonkey transforms education into an engaging experience, enabling children to evolve from tech consumers to creators. Use CodeMonkey's &lt;strong&gt;FREE trial&lt;/strong&gt; to unlock the incredible potential of young tech creators!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;With a structured learning path tailored for various age groups, kids progress from block coding to more advanced topics like data science and artificial intelligence, using languages such as CoffeeScript and Python. The platform includes features for parents and teachers to track progress, making integrating coding into home and classroom settings easy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Through fun games, hands-on projects, and community interaction, CodeMonkey helps young learners build teamwork skills and receive recognition for their achievements. It fosters a love for coding and prepares children for future career opportunities in an ever-evolving tech landscape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;To learn more about CodeMonkey, you can read my detailed&lt;/em&gt;&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/02-25/inspiring-young-coders-how-codemonkey-turns-kids-into-tech-creators/&quot;&gt;review article&lt;/a&gt;&lt;strong&gt;&lt;em&gt;!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Affiliate Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919057/12259&quot;&gt;Sign Up for Parents&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919060/12259&quot;&gt;Sign Up for Teachers&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jhallvitnzz5eihznpnh.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;advance-your-career-with-a-20-discount-on-scrimba-pro-using-this-affiliate-link-&quot;&gt;Advance your career with a 20% discount on Scrimba Pro using this &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;affiliate link&lt;/a&gt;!&lt;/h4&gt;
&lt;p&gt;Become a hireable developer with Scrimba Pro! Discover a world of coding knowledge with full access to all courses, hands-on projects, and a vibrant community. You can &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2021/06-21/06-07-21/&quot;&gt;read my article&lt;/a&gt; to learn more about my exceptional experiences with Scrimba and how it helps many become confident, well-prepared web developers!&lt;/p&gt;
&lt;h6 id=&quot;important-this-discount-is-for-new-accounts-only-if-a-higher-discount-is-currently-available-it-will-be-applied-automatically-&quot;&gt;&lt;strong&gt;&lt;em&gt;Important: This discount is for new accounts only. If a higher discount is currently available, it will be applied automatically.&lt;/em&gt;&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;How to Claim Your Discount:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;the link&lt;/a&gt; to explore the new Scrimba 2.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade to Pro; the 20% discount will automatically apply.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id=&quot;disclosure-this-article-contains-affiliate-links-i-will-earn-a-commission-from-any-purchases-made-through-these-links-at-no-extra-cost-to-you-your-support-helps-me-continue-creating-valuable-content-thank-you-&quot;&gt;&lt;strong&gt;&lt;em&gt;Disclosure: This article contains affiliate links. I will earn a commission from any purchases made through these links at no extra cost to you. Your support helps me continue creating valuable content. Thank you!&lt;/em&gt;&lt;/strong&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;Instead of building one giant website, micro-frontends let teams split the project into smaller, independent sections, almost like mini-apps. Each team can focus on specific features and work in parallel. This approach makes big projects easier to manage, speeds up updates, and helps teams avoid stepping on each other’s toes. It also allows for more flexibility and a smoother user experience.&lt;/p&gt;
&lt;p&gt;Module Federation is the secret sauce that lets these separate parts share code and work together seamlessly, even if they’re built and deployed independently.&lt;/p&gt;
&lt;p&gt;Working hands-on with micro-frontends and Module Federation during the hackathon changed the way I think about building apps. I saw firsthand how these tools help teams collaborate, experiment, and release updates faster, all while keeping everything organized and connected. Whether you’re building a big project with a team or just curious about new ways to structure your apps, these tools are definitely worth a look!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Let’s connect! I’m active on&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/michaeljudelarocca/&quot;&gt;LinkedIn&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/MikeJudeLarocca&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd3788jkbd6zedpn7urn.jpg&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h6 id=&quot;are-you-now-curious-about-building-apps-with-micro-frontends-and-module-federation-are-you-considering-using-these-tools-in-your-next-project-please-share-the-article-and-comment-&quot;&gt;&lt;em&gt;Are you now curious about building apps with micro-frontends and Module Federation? Are you considering using these tools in your next project? Please share the article and comment!&lt;/em&gt;&lt;/h6&gt;
&lt;hr&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/10030/micro-frontends-what-they-are-and-why-you-should-use-them</guid>
<pubDate>Mon, 19 Jan 2026 21:01:26 +0000</pubDate>
</item>
<item>
<title>Why you should adopt Continuous Delivery</title>
<link>https://coderlegion.com/7742/why-you-should-adopt-continuous-delivery</link>
<description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/continuous-delivery/&quot;&gt;Continuous Delivery&lt;/a&gt; (CD) often requires significant up-front investment and it takes time to create a high-performance &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/continuous-delivery/what-is-a-deployment-pipeline/&quot;&gt;deployment pipeline&lt;/a&gt;. You need to put tools in place to maximize the impact of Continuous Delivery on your software delivery performance. At times, it might seem like it’s too difficult without enough tangible benefits.&lt;/p&gt;
&lt;p&gt;On this page we explain why you should adopt Continuous Delivery, the pain it removes, and the concrete benefits you can expect in return. We show you a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reinvestment strategy you can use to create a self-funding continuous improvement budget  &lt;/li&gt;
&lt;li&gt;Model that shows you’re likely to make the returns faster than you might think&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;reasons-to-adopt-continuous-delivery&quot;&gt;Reasons to adopt Continuous Delivery&lt;/h3&gt;
&lt;p&gt;Here are some common scenarios that cause friction for teams. Building the team’s Continuous Delivery skills will help remove this friction.&lt;/p&gt;
&lt;h3 id=&quot;painful-deployments&quot;&gt;Painful deployments&lt;/h3&gt;
&lt;p&gt;You’re not alone if your deployment process causes a sense of fear or anxiety. There are many signs your deployments are more challenging than they should be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Manual deployments: You follow a checklist or document to perform the deployment, and sometimes miss steps or perform them out of order.  &lt;/li&gt;
&lt;li&gt;Long deployments: Your deployment process takes more than a couple of minutes, sometimes hours.  &lt;/li&gt;
&lt;li&gt;Out-of-hours deployments: Your deployments must happen during unsociable hours and sometimes take all night.  &lt;/li&gt;
&lt;li&gt;Infrequent deployments: You only deploy once a month, quarter, or even less frequently.  &lt;/li&gt;
&lt;li&gt;Change freezes: You can’t deploy during the peak season, usually because of a past blow up.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Repeatable, reliable, and predictable deployments remove this pain, helping you focus on making the best software you can, without dreading deployment time.&lt;/p&gt;
&lt;h3 id=&quot;painful-onboarding&quot;&gt;Painful onboarding&lt;/h3&gt;
&lt;p&gt;When new developers join a team, they can feel accomplishment and relief by making their first change to an application. If they can’t start quickly by getting the latest version of the code from source control, the day-one nerves continue until they feel productive.&lt;/p&gt;
&lt;p&gt;Some signs that your onboarding is painful include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Needing to install tools, frameworks, and dependencies on their local machine  &lt;/li&gt;
&lt;li&gt;Having to check out and run other services locally that your application depends on  &lt;/li&gt;
&lt;li&gt;Needing to restore a database locally that contains test data, or sharing a development database that keeps changing  &lt;/li&gt;
&lt;li&gt;Needing to update the version-controlled config files to reflect their local environment  &lt;/li&gt;
&lt;li&gt;Waiting for weeks or months for their first change to go live&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;painful-pre-live-environments&quot;&gt;Painful pre-live environments&lt;/h3&gt;
&lt;p&gt;Pre-live environments often present several kinds of pain. There’s often contention over who uses an environment at any given time, and they can often be very different to production infrastructure.&lt;/p&gt;
&lt;p&gt;For example, it’s common to find applications designed to scale horizontally, with many instances of the application deployed to handle the load. If the pre-live environment doesn’t represent this, there are whole classes of faults you can’t detect until you go live.&lt;/p&gt;
&lt;p&gt;Testers often find they can’t use a new software version due to a critical issue, like the sign-in page not working. They sometimes have to wait in a queue for an environment or get surprised by a new version of the software that another tester deployed while they were still testing a previous version.&lt;/p&gt;
&lt;p&gt;Making it possible for testers to pull a version of the software on-demand to a temporary environment created only for their use is a much better solution.&lt;/p&gt;
&lt;h3 id=&quot;painful-batches-of-work&quot;&gt;Painful batches of work&lt;/h3&gt;
&lt;p&gt;Often made worse by infrequent deployments, batches of work can quickly become painful as &lt;em&gt;good&lt;/em&gt; changes get stuck when they’re in the same software version as &lt;em&gt;bad&lt;/em&gt; changes.&lt;/p&gt;
&lt;p&gt;If you continue to add changes while you wait for fixes, you often add a new &lt;em&gt;bad&lt;/em&gt; change while resolving a previous one. This usually gets so bad the organization declares a change freeze where developers can only fix those bugs.&lt;/p&gt;
&lt;p&gt;One sign of painful batches is a list of known faults arranged into categories. These show whether they’ll get fixed before the software deploys.&lt;/p&gt;
&lt;p&gt;A better approach is for each change to the software to create a new version. The new version flows through the deployment pipeline independently, making it possible to fix issues for a single change when detected.&lt;/p&gt;
&lt;h3 id=&quot;painful-operations&quot;&gt;Painful operations&lt;/h3&gt;
&lt;p&gt;Operations tasks tend to become painful over time. Configuring infrastructure might be easy initially, but keeping the configuration in sync across environments and services becomes more challenging as things scale. The application architecture may become more complex as the organization grows, making it difficult to understand the impact of infrastructure changes.&lt;/p&gt;
&lt;p&gt;You can detect operations pain by looking for signs like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Manual changes to infrastructure either by accessing machines directly or through web portals (often called &lt;em&gt;ClickOps&lt;/em&gt;)  &lt;/li&gt;
&lt;li&gt;Problems managing configuration and configuration drift  &lt;/li&gt;
&lt;li&gt;Bugs caused by subtle configuration differences between environments or instances  &lt;/li&gt;
&lt;li&gt;Infrastructure changes take a long time, as you need to repeat them many times  &lt;/li&gt;
&lt;li&gt;No way to roll back to a previous infrastructure configuration  &lt;/li&gt;
&lt;li&gt;Emergency changes to resolve a live issue, followed by wondering which of many speculative changes fixed the fault&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A better approach is to version control infrastructure and configuration the same way you control software versions. That way you can quickly review changes and automatically deploy specific versions.&lt;/p&gt;
&lt;h3 id=&quot;painful-process&quot;&gt;Painful process&lt;/h3&gt;
&lt;p&gt;Often caused by other pains, things can go terribly wrong in software delivery. A common reaction to past hurt is to introduce bureaucratic stages to prevent the problems happening again. Change freezes, sign-offs, and advance deployment scheduling are all signs someone tried to reduce other sources of pain.&lt;/p&gt;
&lt;p&gt;The problem is these interventions bloat processes without improving software delivery performance. Any stage that delays software releases tends to increase the batch size of the deployment, making it more likely things will go wrong.&lt;/p&gt;
&lt;h3 id=&quot;benefits-of-continuous-delivery&quot;&gt;Benefits of Continuous Delivery&lt;/h3&gt;
&lt;p&gt;Continuous Delivery solves these common software delivery pains. By building a deployment pipeline with an appropriate set of tools and automation, you can create a release process that’s repeatable, reliable, and predictable.&lt;/p&gt;
&lt;p&gt;You can make work easier and more fulfilling across all roles involved in software delivery.&lt;/p&gt;
&lt;p&gt;Alongside the reduction of pain, there are also several benefits.&lt;/p&gt;
&lt;h3 id=&quot;human-benefits&quot;&gt;Human benefits&lt;/h3&gt;
&lt;p&gt;There’s far less stress once a solid deployment pipeline and related practices are in place. Deployments no longer create widespread anxiety, and the organization has confidence the team can deliver software safely and reliably.&lt;/p&gt;
&lt;p&gt;Frequent high-quality releases are the best way to increase trust between development, operations, and the rest of the business.&lt;/p&gt;
&lt;p&gt;When deployments are no big deal, everyone can relax and focus on doing their best work.&lt;/p&gt;
&lt;h3 id=&quot;software-delivery-benefits&quot;&gt;Software delivery benefits&lt;/h3&gt;
&lt;p&gt;In terms of software delivery, the lead time for changes will be shorter. You can deliver features and bug fixes sooner. You have fewer merge conflicts, and small batch sizes will stop changes cyclically blocking each other.&lt;/p&gt;
&lt;p&gt;Automation reduces configuration and deployment errors. Your deployment automation ensures the correct code version deploys using the proper process. You miss no steps and those you perform have no errors, and your infrastructure will be in the right state.&lt;/p&gt;
&lt;p&gt;You can handle issues by creating an environment with the suspect software version to recreate the problem quickly.&lt;/p&gt;
&lt;p&gt;Learn more in our detailed guide to &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/continuous-delivery/continuous-delivery-tools/&quot;&gt;Continuous Delivery tools&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;business-benefits&quot;&gt;Business benefits&lt;/h3&gt;
&lt;p&gt;Continuous Delivery provides tangible business benefits, with organizations using the tools and practices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2x more likely to meet or exceed commercial goals  &lt;/li&gt;
&lt;li&gt;2x more likely to meet or exceed non-commercial goals  &lt;/li&gt;
&lt;li&gt;2.2x more likely to be recommended as a good place to work  &lt;/li&gt;
&lt;li&gt;Growing their market cap 50% higher&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Press enter or click to view image in full size&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=2330930759870120758&quot; alt=&quot;High performers get great outcomes&quot;&gt;&lt;/p&gt;
&lt;p&gt;Teams using Continuous Delivery spend more time on features and less time on bug fixes. They deploy more often, and their software is more reliable.&lt;/p&gt;
&lt;h3 id=&quot;challenges-of-adopting-continuous-delivery&quot;&gt;Challenges of adopting Continuous Delivery&lt;/h3&gt;
&lt;p&gt;Adopting Continuous Delivery provides both technical and cultural challenges. Both are equally important. You may also want to form a strategy for how you invest in the work needed to build the deployment pipeline.&lt;/p&gt;
&lt;h3 id=&quot;technical-challenges&quot;&gt;Technical challenges&lt;/h3&gt;
&lt;p&gt;Although you will likely already some necessary tools, you need to identify gaps. Get the missing tools and related skills to create a reliable and automated deployment pipeline.&lt;/p&gt;
&lt;p&gt;Most teams have version control and a build server, but you may need to use the more advanced features of these tools to test and package the software. You need to look at artifact repositories, deployment automation, infrastructure automation, and monitoring and alerting.&lt;/p&gt;
&lt;p&gt;As well as tools, the technical practices of Continuous Integration, test automation, architecture, security, and observability may represent areas you need to strengthen.&lt;/p&gt;
&lt;h3 id=&quot;cultural-challenges&quot;&gt;Cultural challenges&lt;/h3&gt;
&lt;p&gt;You may need to make cultural challenges. If your operations team is at arm’s length from your development team, you need to resolve some classic development and operations conflicts so the teams can work together on Continuous Delivery. Culture is one of the critical capabilities of &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/&quot;&gt;DevOps&lt;/a&gt;, and there’s plenty of evidence that links positive culture to actual business outcomes.&lt;/p&gt;
&lt;p&gt;For example, if your ops team won’t allow automated deployments to the production infrastructure, you’re unlikely to get the full benefit of Continuous Delivery. You still get some benefits, like automated on-demand deployments to other environments, but you find the live deployments remain difficult and infrequent.&lt;/p&gt;
&lt;p&gt;You could avoid this challenge by proving the benefits to stakeholders in pre-live environments, but the operations team will likely see this as a move to undermine them. Instead, collaborate with the operations team and take the time to build trust.&lt;/p&gt;
&lt;p&gt;It’s best to tackle cultural issues head-on as early as possible.&lt;/p&gt;
&lt;h3 id=&quot;an-investment-strategy&quot;&gt;An investment strategy&lt;/h3&gt;
&lt;p&gt;The main challenge is investing the time into building your deployment pipeline. You will gain this time back quickly as you reduce the manual effort involved in deployments. We recommend a reinvestment model to resolve this challenge.&lt;/p&gt;
&lt;p&gt;Invest a fixed amount of time in automating one part of your deployment pipeline. Use the time saved by this automation to create a weekly budget for further automation.&lt;/p&gt;
&lt;p&gt;Each time you automate another part of your Continuous Delivery pipeline, you create more time in your automation budget. This limits the spending to whatever fixed period you originally invested.&lt;/p&gt;
&lt;h3 id=&quot;cost-benefit-analysis-of-continuous-delivery&quot;&gt;Cost-benefit analysis of Continuous Delivery&lt;/h3&gt;
&lt;p&gt;Google Cloud, along with DevOps Research and Assessment (DORA), created a &lt;a rel=&quot;nofollow&quot; href=&quot;https://services.google.com/fh/files/misc/whitepaper_roi_of_devops_transformation_2020_google_cloud.pdf&quot;&gt;model for investment&lt;/a&gt; in DevOps transformation. By accounting for several factors across business sizes, their model demonstrated that it’s possible to pay back investment within a month of completing the transformation. The total return can be ten times the original investment.&lt;/p&gt;
&lt;p&gt;With this in mind, you may want to accelerate your investment in building your deployment pipeline and adopting Continuous Delivery practices. These are key DevOps capabilities.&lt;/p&gt;
&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;/h3&gt;
&lt;p&gt;Continuous Delivery removes a great deal of pain from your software delivery process. Along with other &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/&quot;&gt;DevOps&lt;/a&gt; practices, it can bring high-impact benefits, not just for your software but for your whole organization.&lt;/p&gt;
&lt;h3 id=&quot;further-reading&quot;&gt;Further reading&lt;/h3&gt;
&lt;p&gt;These resources will help you find out more about Continuous Delivery:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous Delivery by Jez Humble and Dave Farley (2011)  &lt;/li&gt;
&lt;li&gt;Continuous Delivery Pipelines by Dave Farley (2021)  &lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/whitepapers/lv-the-importance-of-continuous-delivery&quot;&gt;The importance of Continuous Delivery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>CI/CD Pipelines</category>
<guid isPermaLink="true">https://coderlegion.com/7742/why-you-should-adopt-continuous-delivery</guid>
<pubDate>Mon, 24 Nov 2025 15:38:06 +0000</pubDate>
</item>
<item>
<title>Git Basics: A Beginner's Guide to Branches</title>
<link>https://coderlegion.com/7212/git-basics-a-beginners-guide-to-branches</link>
<description>&lt;h5 id=&quot;this-article-explores-git-branches-and-their-role-in-version-control-you-ll-learn-about-team-practices-of-creating-merging-and-managing-branches-gaining-essential-skills-for-collaborative-projects-&quot;&gt;This article explores Git branches and their role in version control. You'll learn about team practices of creating, merging, and managing branches, gaining essential skills for collaborative projects!&lt;/h5&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1762817008465/2fbf2984-19a6-4d23-b41c-7d804d10346e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-version-control-&quot;&gt;What is Version Control?&lt;/h4&gt;
&lt;p&gt;Version control is a system that helps track changes to files over time. It allows multiple people to collaborate on a project, keeping a history of modifications, so you can revert to previous versions if needed. This is especially useful in software development, where teams collaborate on code, ensuring everyone is on the same page and changes are managed efficiently.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-are-git-branches-&quot;&gt;What are Git Branches?&lt;/h4&gt;
&lt;p&gt;In the context of version control, Git branches are like separate workspaces within a project. They allow you to work on different features or fixes without affecting the main codebase. Each branch can be developed independently, and once the work is complete, it can be merged back into the main branch. This system enables teams to collaborate efficiently, allowing multiple people to work on different tasks simultaneously without interfering with each other's work.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;merge-develop-into-the-master-branch&quot;&gt;Merge Develop into the Master Branch&lt;/h4&gt;
&lt;p&gt;When working alone, you'll likely build your projects directly on the default master (main) branch. Even when you start to create individual branches, they will be made from the master branch and be merged back into it. However, when working on a team project, there is usually a development (develop) branch in addition to the master branch, and it is vital to understand how to work with them.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In my recent experience, when implementing a professional Agile workflow in my personal project, I finally understood the concept of having both a develop and master branch. Now that I was creating individual branches for each of my issues, each time I pushed to the default master branch, a deployment was triggered (though Netlify). So I initially thought, “Why am I bothering to make new branches, since I am not working in isolation?” Then I realized that is precisely what the develop branch is for. The purpose of the develop branch is to serve as an integration branch for features before they are ready for production.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In a team-based environment, once you have finished working on your individual issue branch, push and merge it into the develop branch (not the master branch). When all the individual issue branches are merged into the develop branch, yours and presumably those of fellow team members, it is the “develop branch” that gets merged into the “master branch,” which will then trigger a deployment if configured to do so. The master branch is typically the production-ready branch, which is why merging into it triggers deployment.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;By following this workflow, you and other team members can confidently work on your own individual branches, contributing to the project simultaneously. Then, when all of the branches are accepted and merged into the develop branch, the team’s work will be deployed to the project once the develop branch is merged into the master branch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Note:&lt;/strong&gt; &lt;em&gt;When working on issue branches, it is essential to follow a team-based Agile workflow, which includes testing and code review to ensure quality before merging them into the develop branch.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;make-your-issue-branch-from-develop&quot;&gt;Make Your Issue Branch from Develop&lt;/h4&gt;
&lt;p&gt;As I am sure you know, it's crucial to pull all changes from the remote branches first to ensure all files are updated with the latest versions. If you've been working alone for a long time, it might take some time to get used to pulling changes first.&lt;/p&gt;
&lt;p&gt;When working on a team project, you'll need to create branches to address individual issues. Generally, these issue branches are created from the develop branch rather than the master branch. So, be sure that you clarify with your team which branch to use as the base for your issue branches.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Note:&lt;/strong&gt; &lt;em&gt;To maintain consistency and avoid conflicts, it's essential to pull changes from both the master and develop branches regularly. This practice ensures that your branch is synchronized with the latest updates from the main codebase and the develop branch. By doing so, you minimize the risk of merge conflicts and ensure a smoother integration process when your work is ready to be merged back into the main branches.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;agile-development&quot;&gt;Agile Development&lt;/h4&gt;
&lt;p&gt;Having covered the overall concept of working with branches, it's important to note that there are specific conventions and workflows for creating them. These conventions are often guided by Agile development principles, which emphasize flexibility, collaboration, and iterative progress in software projects —principles that my team follows.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Members of the&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;&lt;em&gt;Gridiron Survivor apprenticeship program&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, of which I am a part, work on individual issue branches of our current project,&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/LetsGetTechnical/elecretanta&quot;&gt;&lt;em&gt;Elfgorithm&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, a&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://elfgorithm.vercel.app/&quot;&gt;&lt;em&gt;Secret Santa-style gift exchange app&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. We use naming conventions for the branches and organize our work into Sprints, which are time-boxed periods during which specific tasks or features are developed. Each individual issue branch undergoes review and testing to ensure quality and functionality.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The naming conventions we use for branches include the programmer’s name, issue number, type (the kind of work), and a short description of the branch’s purpose:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;\[YourName\]/\[IssueNumber\]-\[type\]-\[IssueDescription\]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using naming conventions for branches enhances project organization and efficiency, allowing branches to be quickly identified and facilitating collaboration.&lt;/p&gt;
&lt;p&gt;These conventions also improve Git automation. Scripts can recognize branch patterns to trigger actions, such as tests or notifications, resulting in reduced manual effort and ensuring consistency. Linking Sprint ticket numbers to issue branches connects the code to project management tools, simplifying progress tracking and aligning work with tasks.&lt;/p&gt;
&lt;p&gt;Overall, structured naming conventions improve organization, communication, and workflow efficiency in software development.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;deleting-with-an-individual-issue-branch&quot;&gt;Deleting with an Individual Issue Branch&lt;/h4&gt;
&lt;p&gt;Once your individual issue branch is accepted and merged into the develop, it is then safe to delete it. GitHub provides a “Delete Branch“ button for easy removal on the remote repository. You will also need to delete your issue branch in your local repository.&lt;/p&gt;
&lt;p&gt;Once your issue branch is deleted from both the remote and local repositories, remember to pull the changes from the master and the newly merged develop branch. This ensures your local repository is up-to-date with the latest changes. Afterward, you can use &lt;code&gt;git fetch --prune&lt;/code&gt; to clean up your local repository by removing any remote-tracking references that no longer exist on the remote.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;merge-conflicts&quot;&gt;Merge Conflicts&lt;/h4&gt;
&lt;p&gt;Dealing with merge conflicts deserves its own article, but it’s important to understand, so I will provide a brief overview.&lt;/p&gt;
&lt;p&gt;A merge conflict occurs when Git is unable to resolve differences in code between two branches automatically. This typically happens when two team members make changes to the same part of a file. For example, imagine two team members both update the README file and change the same line. Git doesn't know which change to keep, so it flags this as a conflict.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To fix a merge conflict, you'll need to manually review the conflicting changes and decide which version to keep. Here's a simple way to handle it:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identify the Conflict&lt;/strong&gt;: When you try to merge, Git will notify you of the conflict and mark the conflicting areas in the file. You'll see markers like &lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/code&gt;, &lt;code&gt;=======&lt;/code&gt;, and &lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt; indicating the different changes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resolve the Conflict&lt;/strong&gt;: Open the file in a text editor and look for these markers. Decide which changes to keep or if you need to combine them. Remove the markers and ensure the file appears as you want it to.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mark as Resolved&lt;/strong&gt;: Once you've resolved the conflict, save the file and use &lt;code&gt;git add &amp;lt;file&amp;gt;&lt;/code&gt; to mark it as resolved.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complete the Merge&lt;/strong&gt;: Finally, commit the changes with &lt;code&gt;git commit&lt;/code&gt; to complete the merge process.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By understanding and resolving merge conflicts, you ensure that your team's work is integrated smoothly and accurately!&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;about-us&quot;&gt;About Us&lt;/h4&gt;
&lt;h5 id=&quot;what-is-gridiron-survivor-&quot;&gt;What is Gridiron Survivor?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;&lt;em&gt;Gridiron Survivor&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an apprenticeship program created by Shashi Lo, a Senior UX Engineer at Microsoft. It aims to provide developers entering the tech industry with vital work experience. The program focuses on practical training in project management, coding practices, and team collaboration, offering mentorship and skills essential for success in their initial tech roles.&lt;/em&gt;&lt;/p&gt;
&lt;h5 id=&quot;what-is-the-elfgorithm-app-&quot;&gt;What is the Elfgorithm App?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/LetsGetTechnical/elecretanta&quot;&gt;&lt;em&gt;Elfgorithm&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an AI-driven Secret Santa app set to launch in winter 2025. It streamlines gift exchanges by removing the guesswork from Secret Santa activities. The app manages gift-giving details and provides personalized gift suggestions, ensuring you find the perfect presents for everyone.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1762879391246/c68671cf-87e7-49a2-af0e-ca5d3f3ac7cf.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;gridiron-survivor-sponsors-1&quot;&gt;Gridiron Survivor Sponsors&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A very special thanks to our sponsors!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.gitkraken.com/&quot;&gt;GitKraken&lt;/a&gt;: &lt;em&gt;A popular Git client that provides a graphical interface to manage Git repositories. It is known for its user-friendly design and features that simplify version control, making it easier for developers to collaborate and manage their code.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.frontendmentor.io/&quot;&gt;Frontend Mentor&lt;/a&gt;: &lt;em&gt;An online platform that offers front-end coding challenges. It helps developers improve their skills by providing real-world projects to work on, along with a supportive community for feedback and learning.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://vercel.com/&quot;&gt;Vercel&lt;/a&gt;: &lt;em&gt;A cloud platform for static sites and serverless functions. It is designed to optimize the workflow of developers by providing tools for building, deploying, and scaling modern web applications with ease. Vercel is known for its seamless integration with frameworks like Next.js.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;my-other-related-articles&quot;&gt;My other related articles&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/11-25/git-basics-a-beginners-guide-to-naming-conventions/&quot;&gt;Git Basics: A Beginner's Guide to Naming Conventions&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/10-25/sprint-workflow-a-beginners-guide-to-agile-development/&quot;&gt;Sprint Workflow: A Beginner's Guide to Agile Development&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;Bridging the Skills Gap: Empowering Junior Developers Through Apprenticeship Programs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/04-25/gridiron-survivor's-elfgorithm-introduction-and-team-installation/&quot;&gt;Gridiron Survivor's Elfgorithm: Introduction and Team Installation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/software-versioning-a-developers-guide-to-semantic-and-github-releases/&quot;&gt;Software Versioning: A Developer's Guide to Semantic and GitHub Releases&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/creating-cohesive-design-systems-with-atomic-design-principles/&quot;&gt;Creating Cohesive Design Systems with Atomic Design Principles&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168177634/1ff578a9-5d03-4800-9c0c-9092e4e60c4f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;be-sure-to-listen-to-the-html-all-the-things-podcast--1&quot;&gt;&lt;strong&gt;Be sure to listen to the HTML All The Things Podcast!&lt;/strong&gt;&lt;/h4&gt;
&lt;h5 id=&quot;i-also-write-articles-for-the-html-all-the-things-podcast-which-you-can-read-on-their-website-https-www-htmlallthethings-com-&quot;&gt;&lt;em&gt;I also write articles for the HTML All The Things Podcast, which you can read on their website:&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/&quot;&gt;&lt;em&gt;https://www.htmlallthethings.com/&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/h5&gt;
&lt;h5 id=&quot;be-sure-to-check-out-html-all-the-things-on-socials--1&quot;&gt;&lt;strong&gt;Be sure to check out HTML All The Things on socials!&lt;/strong&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/htmleverything&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/company/html-all-the-things/&quot;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.tiktok.com/@htmlallthethings&quot;&gt;TikTok&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.instagram.com/htmlallthethings/&quot;&gt;Instagram&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;affiliate-amp-discount-links--1&quot;&gt;Affiliate &amp;amp; Discount Links!&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168473785/c85789c9-1594-4000-aa2f-43e842f9825f.jpeg&amp;quot;&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;With CodeMonkey, learning can be all fun and games!&lt;/strong&gt; CodeMonkey transforms education into an engaging experience, enabling children to evolve from tech consumers to creators. Use CodeMonkey's &lt;strong&gt;FREE trial&lt;/strong&gt; to unlock the incredible potential of young tech creators!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;With a structured learning path tailored for various age groups, kids progress from block coding to more advanced topics like data science and artificial intelligence, using languages such as CoffeeScript and Python. The platform includes features for parents and teachers to track progress, making integrating coding into home and classroom settings easy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Through fun games, hands-on projects, and community interaction, CodeMonkey helps young learners build teamwork skills and receive recognition for their achievements. It fosters a love for coding and prepares children for future career opportunities in an ever-evolving tech landscape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;To learn more about CodeMonkey, you can read my detailed&lt;/em&gt;&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/02-25/inspiring-young-coders-how-codemonkey-turns-kids-into-tech-creators/&quot;&gt;&lt;strong&gt;&lt;em&gt;review article&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Affiliate Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919057/12259&quot;&gt;Sign Up for Parents&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919060/12259&quot;&gt;Sign Up for Teachers&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740169191630/ac8c5360-d1c5-4c85-8504-18b9c755841e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;advance-your-career-with-a-20-discount-on-scrimba-pro-using-this-affiliate-link--1&quot;&gt;Advance your career with a 20% discount on Scrimba Pro using this &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;affiliate link&lt;/a&gt;!&lt;/h4&gt;
&lt;p&gt;Become a hireable developer with Scrimba Pro! Discover a world of coding knowledge with full access to all courses, hands-on projects, and a vibrant community. You can &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2021/06-21/06-07-21/&quot;&gt;read my article&lt;/a&gt; to learn more about my exceptional experiences with Scrimba and how it helps many become confident, well-prepared web developers!&lt;/p&gt;
&lt;h6 id=&quot;important-this-discount-is-for-new-accounts-only-if-a-higher-discount-is-currently-available-it-will-be-applied-automatically--1&quot;&gt;&lt;strong&gt;&lt;em&gt;Important:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This discount is for new accounts only. If a higher discount is currently available, it will be applied automatically.&lt;/em&gt;&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;How to Claim Your Discount:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;the link&lt;/a&gt; to explore the new Scrimba 2.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade to Pro; the 20% discount will automatically apply.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id=&quot;disclosure-this-article-contains-affiliate-links-i-will-earn-a-commission-from-any-purchases-made-through-these-links-at-no-extra-cost-to-you-your-support-helps-me-continue-creating-valuable-content-thank-you--1&quot;&gt;&lt;strong&gt;&lt;em&gt;Disclosure:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This article contains affiliate links. I will earn a commission from any purchases made through these links at no extra cost to you. Your support helps me continue creating valuable content. Thank you!&lt;/em&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;conclusion-1&quot;&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;Version control is a system that tracks changes to files over time, enabling multiple people to collaborate on a project and revert to previous versions if necessary. In development, branches provide separate workspaces within a project, enabling the independent development of features or fixes without affecting the main codebase. In a team project, there are typically both a development branch and a master branch. The team works on the development branch, which is eventually merged into the master branch.&lt;/p&gt;
&lt;p&gt;Individual issue branches are created from the development branch. Once a team member completes an issue branch, it undergoes review and testing as part of Agile development practices before being merged back into the development branch. These issue branches are deleted from both the remote and local repositories after they are merged to maintain a clean codebase.&lt;/p&gt;
&lt;p&gt;When working with a team, merge conflicts happen when multiple developers change the same part of a file in different branches. You need to manually resolve these conflicts by reviewing the changes, deciding which ones to keep, and removing the conflict markers. Handling merge conflicts effectively is crucial for maintaining a smooth workflow and ensuring the accurate integration of team members' work.&lt;/p&gt;
&lt;p&gt;Practicing is the best way to learn! Even if you're working solo, you can apply Agile workflows to your personal projects by creating, merging, and managing branches. This approach will help you develop marketable skills as you learn and implement Agile workflows!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Let’s connect! I’m active on&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/michaeljudelarocca/&quot;&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/MikeJudeLarocca&quot;&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://miro.medium.com/v2/resize:fit:700/0*WkkMi-AgjubeODf8.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h6 id=&quot;are-you-now-confident-in-managing-git-branches-for-collaborative-projects-do-you-have-other-tips-for-handling-merge-conflicts-effectively-please-share-the-article-and-comment-&quot;&gt;&lt;em&gt;Are you now confident in managing Git branches for collaborative projects? Do you have other tips for handling merge conflicts effectively? Please share the article and comment!&lt;/em&gt;&lt;/h6&gt;
&lt;hr&gt;
</description>
<category>GitHub</category>
<guid isPermaLink="true">https://coderlegion.com/7212/git-basics-a-beginners-guide-to-branches</guid>
<pubDate>Tue, 11 Nov 2025 21:49:11 +0000</pubDate>
</item>
<item>
<title>Sprint Workflow: A Beginner's Guide to Agile Development</title>
<link>https://coderlegion.com/6925/sprint-workflow-a-beginners-guide-to-agile-development</link>
<description>&lt;h5 id=&quot;in-this-article-we-explore-the-sprint-process-in-software-development-you-ll-learn-to-manage-tasks-using-a-sprint-board-track-progress-and-enhance-team-efficiency-for-successful-project-deliveries-&quot;&gt;In this article, we explore the sprint process in software development. You'll learn to manage tasks using a sprint board, track progress, and enhance team efficiency for successful project deliveries!&lt;/h5&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1761590638908/431e8cea-bb7e-4398-a6cb-81748b603bb0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-a-sprint-&quot;&gt;What Is a Sprint?&lt;/h4&gt;
&lt;p&gt;A sprint is a short, focused period of work during which a development team tackles specific tasks or goals (for my team, it’s two-week periods). In modern software projects, sprints help teams stay organized, track progress, and deliver updates efficiently.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-agile-development&quot;&gt;What is Agile Development&lt;/h4&gt;
&lt;p&gt;Agile development is a way of building software that focuses on flexibility, teamwork, and continuous improvement. Instead of planning everything up front, teams work in short sprints to deliver small, usable project pieces. After each sprint, the team reviews what went well and what can be improved, making it easier to adapt to changes and deliver better results. Agile helps teams stay organized, respond quickly to feedback, and progress projects.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-a-sprint-board-amp-ticket-&quot;&gt;What is a Sprint Board &amp;amp; Ticket?&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;I like explaining a ticket by analogy—think of a ticket as an index card pinned to a corkboard (Sprint Board). In the following example, the corkboard has five column headers labeled as follows:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To Do&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Progress&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Review&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Done&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;The index card lists tasks and moves through each column of the corkboard as the tasks are completed.&lt;/em&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;To Do &lt;/th&gt;&lt;th&gt;In Progress &lt;/th&gt;&lt;th&gt;In Review &lt;/th&gt;&lt;th&gt;Testing &lt;/th&gt;&lt;th&gt;Done&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;(TICKET) &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id=&quot;to-do&quot;&gt;To Do&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;Let’s write two tasks on the imagined index card:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Update the README file to include the new login feature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a URL link to the deployed project.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;The provided index card (sprint ticket) will have an auto-generated number; let’s say it’s 12.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now, I will assign YOU to complete ticket number 12. After reviewing the assigned tasks, you will let the team know how long it will take you to complete. This is done using a point system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A point represents a time variable that can differ among teams. Our team’s point system is as follows:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;point-0: within 2 hours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-1: within 1/2 day&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-3: within 1 day&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-5: within 3 days&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-8: within 1 week&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is your first ticket, a full day will be acceptable for the task as you will need time to write documentation for the new login procedure and add a URL to the project. Therefore, you should mark your ticket with 3 points (which represents a day).&lt;/p&gt;
&lt;h5 id=&quot;in-progress&quot;&gt;In Progress&lt;/h5&gt;
&lt;p&gt;Once you start working on your assigned ticket, you move it to the “&lt;strong&gt;In Progress&lt;/strong&gt;“ column. When you complete it, you move it to the “In Review“ column and notify your team.&lt;/p&gt;
&lt;h5 id=&quot;in-review&quot;&gt;In Review&lt;/h5&gt;
&lt;p&gt;The review phase of your ticket involves an assigned team member reviewing it to ensure that all of the assigned tasks were completed. In this demonstration, you needed to write documentation in the README file detailing the new login procedure and adding a URL to the project.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;⚠ &lt;strong&gt;Important:&lt;/strong&gt; &lt;em&gt;You are NOT to go beyond the tasks on your ticket! For example, you would not add additional information to the README file regarding other aspects of the project. Although your intentions are good, since it goes beyond the scope of the ticket, it will be refused because it will cause confusion and disorganization. Further README file updates should be added to new future tickets.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h5 id=&quot;testing&quot;&gt;Testing&lt;/h5&gt;
&lt;p&gt;Once the ticket passes the review stage, it is moved to testing to ensure the code functions properly; in this simple example, the project link must be clickable and direct to the correct URL. If your ticket passes the testing phase, it is closed and moved to the “Done“ column.&lt;/p&gt;
&lt;h5 id=&quot;done&quot;&gt;Done&lt;/h5&gt;
&lt;p&gt;The done column is filled with completed tickets, showcasing all of the project's updates. Great work on completing your ticket and properly maintaining a professional team workflow using a sprint ticket and a sprint board!&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;additional-sprint-tasks&quot;&gt;Additional Sprint Tasks&lt;/h4&gt;
&lt;p&gt;Now that we have covered a simple version of a sprint ticket and a sprint board, I can offer you more details of my team’s process.&lt;/p&gt;
&lt;h5 id=&quot;additional-sprint-board-columns-&quot;&gt;Additional Sprint Board Columns:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Status:&lt;/strong&gt; Tasks or tickets that haven’t been assigned a workflow stage yet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Back Log:&lt;/strong&gt; A list of tasks or ideas waiting to be worked on in future sprints.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Epics:&lt;/strong&gt; Large, high-level tasks or projects broken down into smaller tickets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blocked:&lt;/strong&gt; Tasks that cannot move forward due to an issue or dependency.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Leftover Tickets&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What do we do with leftover tickets that weren’t completed during the sprint? They are usually moved back to the backlog or carried over to the next sprint for further work. Reviewing leftover tickets helps the team understand what caused delays and improves future planning, ensuring that important tasks aren’t forgotten.&lt;/p&gt;
&lt;h5 id=&quot;team-meetings&quot;&gt;Team Meetings&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stand-ups:&lt;/strong&gt; Short daily meetings where team members share progress, plans, and blockers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Weekly Meetings:&lt;/strong&gt; Longer meetings held once a week to review progress, plan upcoming work, and discuss any issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One-on-one:&lt;/strong&gt; Private meetings between two team members (often a manager and developer) to discuss individual goals, feedback, or concerns.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;future-sprint-planning&quot;&gt;Future Sprint Planning&lt;/h5&gt;
&lt;p&gt;Sprint planning is the meeting where the team decides which tasks or tickets will be tackled in the upcoming sprint. During this session, team members review the backlog, estimate the effort required for each item, and agree on the sprint goals. The result is a clear plan that outlines what will be accomplished and who is responsible for each task, helping everyone stay focused and aligned throughout the sprint.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;about-us-1&quot;&gt;About Us&lt;/h4&gt;
&lt;h5 id=&quot;what-is-gridiron-survivor--1&quot;&gt;What is Gridiron Survivor?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;&lt;em&gt;Gridiron Survivor&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an apprenticeship program created by Shashi Lo, a Senior UX Engineer at Microsoft. It aims to provide developers entering the tech industry with vital work experience. The program focuses on practical training in project management, coding practices, and team collaboration, offering mentorship and skills essential for success in their initial tech roles.&lt;/em&gt;&lt;/p&gt;
&lt;h5 id=&quot;what-is-the-elfgorithm-app--1&quot;&gt;What is the Elfgorithm App?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/LetsGetTechnical/elecretanta&quot;&gt;&lt;em&gt;Elfgorithm&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an AI-driven Secret Santa app set to launch in winter 2025. It streamlines gift exchanges by removing the guesswork from Secret Santa activities. The app manages gift-giving details and provides personalized gift suggestions, ensuring you find the perfect presents for everyone.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1761580852525/b77a17c5-e6ce-4d24-a142-ea4c65dbc9de.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;gridiron-survivor-sponsors-2&quot;&gt;Gridiron Survivor Sponsors&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A very special thanks to our sponsors!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.gitkraken.com/&quot;&gt;GitKraken&lt;/a&gt;: &lt;em&gt;A popular Git client that provides a graphical interface to manage Git repositories. It is known for its user-friendly design and features that simplify version control, making it easier for developers to collaborate and manage their code.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.frontendmentor.io/&quot;&gt;Frontend Mentor&lt;/a&gt;: &lt;em&gt;An online platform that offers front-end coding challenges. It helps developers improve their skills by providing real-world projects to work on, along with a supportive community for feedback and learning.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://vercel.com/&quot;&gt;Vercel&lt;/a&gt;: &lt;em&gt;A cloud platform for static sites and serverless functions. It is designed to optimize the workflow of developers by providing tools for building, deploying, and scaling modern web applications with ease. Vercel is known for its seamless integration with frameworks like Next.js.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;my-other-related-articles-1&quot;&gt;My other related articles&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;Bridging the Skills Gap: Empowering Junior Developers Through Apprenticeship Programs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/04-25/gridiron-survivor's-elfgorithm-introduction-and-team-installation/&quot;&gt;Gridiron Survivor's Elfgorithm: Introduction and Team Installation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/software-versioning-a-developers-guide-to-semantic-and-github-releases/&quot;&gt;Software Versioning: A Developer's Guide to Semantic and GitHub Releases&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/creating-cohesive-design-systems-with-atomic-design-principles/&quot;&gt;Creating Cohesive Design Systems with Atomic Design Principles&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168177634/1ff578a9-5d03-4800-9c0c-9092e4e60c4f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;be-sure-to-listen-to-the-html-all-the-things-podcast--2&quot;&gt;&lt;strong&gt;Be sure to listen to the HTML All The Things Podcast!&lt;/strong&gt;&lt;/h4&gt;
&lt;h5 id=&quot;-i-also-write-articles-for-the-html-all-the-things-podcast-which-you-can-read-on-their-website-https-www-htmlallthethings-com--1&quot;&gt;???? &lt;em&gt;I also write articles for the HTML All The Things Podcast, which you can read on their website:&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/&quot;&gt;&lt;em&gt;https://www.htmlallthethings.com/&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/h5&gt;
&lt;h5 id=&quot;be-sure-to-check-out-html-all-the-things-on-socials--2&quot;&gt;&lt;strong&gt;Be sure to check out HTML All The Things on socials!&lt;/strong&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/htmleverything&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/company/html-all-the-things/&quot;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.tiktok.com/@htmlallthethings&quot;&gt;TikTok&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.instagram.com/htmlallthethings/&quot;&gt;Instagram&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;affiliate-amp-discount-links--2&quot;&gt;Affiliate &amp;amp; Discount Links!&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168473785/c85789c9-1594-4000-aa2f-43e842f9825f.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;With CodeMonkey, learning can be all fun and games!&lt;/strong&gt; CodeMonkey transforms education into an engaging experience, enabling children to evolve from tech consumers to creators. Use CodeMonkey's &lt;strong&gt;FREE trial&lt;/strong&gt; to unlock the incredible potential of young tech creators!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;With a structured learning path tailored for various age groups, kids progress from block coding to more advanced topics like data science and artificial intelligence, using languages such as CoffeeScript and Python. The platform includes features for parents and teachers to track progress, making integrating coding into home and classroom settings easy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Through fun games, hands-on projects, and community interaction, CodeMonkey helps young learners build teamwork skills and receive recognition for their achievements. It fosters a love for coding and prepares children for future career opportunities in an ever-evolving tech landscape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;To learn more about CodeMonkey, you can read my detailed&lt;/em&gt;&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/02-25/inspiring-young-coders-how-codemonkey-turns-kids-into-tech-creators/&quot;&gt;&lt;strong&gt;&lt;em&gt;review article&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Affiliate Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919057/12259&quot;&gt;Sign Up for Parents&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919060/12259&quot;&gt;Sign Up for Teachers&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740169191630/ac8c5360-d1c5-4c85-8504-18b9c755841e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;advance-your-career-with-a-20-discount-on-scrimba-pro-using-this-affiliate-link--2&quot;&gt;Advance your career with a 20% discount on Scrimba Pro using this &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;affiliate link&lt;/a&gt;!&lt;/h4&gt;
&lt;p&gt;Become a hireable developer with Scrimba Pro! Discover a world of coding knowledge with full access to all courses, hands-on projects, and a vibrant community. You can &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2021/06-21/06-07-21/&quot;&gt;read my article&lt;/a&gt; to learn more about my exceptional experiences with Scrimba and how it helps many become confident, well-prepared web developers!&lt;/p&gt;
&lt;h6 id=&quot;important-this-discount-is-for-new-accounts-only-if-a-higher-discount-is-currently-available-it-will-be-applied-automatically--2&quot;&gt;&lt;strong&gt;&lt;em&gt;Important:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This discount is for new accounts only. If a higher discount is currently available, it will be applied automatically.&lt;/em&gt;&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;How to Claim Your Discount:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;the link&lt;/a&gt; to explore the new Scrimba 2.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade to Pro; the 20% discount will automatically apply.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id=&quot;disclosure-this-article-contains-affiliate-links-i-will-earn-a-commission-from-any-purchases-made-through-these-links-at-no-extra-cost-to-you-your-support-helps-me-continue-creating-valuable-content-thank-you--2&quot;&gt;&lt;strong&gt;&lt;em&gt;Disclosure:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This article contains affiliate links. I will earn a commission from any purchases made through these links at no extra cost to you. Your support helps me continue creating valuable content. Thank you!&lt;/em&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;conclusion-2&quot;&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;A sprint is a short, focused period of work during which a development team completes specific tasks or goals. Sprints are an essential part of Agile development, a method of software creation that stresses flexibility, teamwork, and continuous improvement.&lt;/p&gt;
&lt;p&gt;Sprint tasks are tracked using tickets that include detailed instructions. As work progresses, these tickets are moved across titled columns on a Sprint Board—To Do, In Progress, In Review, Testing, and Done, among others. Each ticket is assigned an estimated completion time by the assignee using a point system. Points represent time intervals that can differ between teams, such as point-1 for half a day, point-3 for one day, and point-5 for three days. Leftover tickets that weren’t completed during a sprint are typically moved back to the backlog or carried over to the next sprint for further work.&lt;/p&gt;
&lt;p&gt;Regular team meetings keep everyone aligned and productive. Daily stand-ups help share progress and blockers, weekly meetings review progress and plan ahead, and one-on-ones focus on individual goals and feedback. Future sprint planning prepares the team for the next cycle by reviewing the backlog, estimating tasks, and setting clear goals. This ongoing process helps teams stay organized, adaptable, and successful.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ready to implement Agile? Begin planning your next sprint and discover how this workflow can enhance your team’s productivity and project success!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Let’s connect! I’m active on&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/michaeljudelarocca/&quot;&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/MikeJudeLarocca&quot;&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://miro.medium.com/v2/resize:fit:700/0*WkkMi-AgjubeODf8.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h6 id=&quot;do-you-now-feel-confident-in-managing-tasks-using-a-sprint-board-are-you-ready-to-enhance-your-team-s-efficiency-with-agile-development-please-share-the-article-and-comment-&quot;&gt;&lt;em&gt;Do you now feel confident in managing tasks using a sprint board? Are you ready to enhance your team's efficiency with agile development? Please share the article and comment!&lt;/em&gt;&lt;/h6&gt;
</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://coderlegion.com/6925/sprint-workflow-a-beginners-guide-to-agile-development</guid>
<pubDate>Tue, 28 Oct 2025 09:33:28 +0000</pubDate>
</item>
<item>
<title>Sprint Workflow: A Beginner's Guide to Agile Development</title>
<link>https://coderlegion.com/6924/sprint-workflow-a-beginners-guide-to-agile-development</link>
<description>&lt;h5 id=&quot;in-this-article-we-explore-the-sprint-process-in-software-development-you-ll-learn-to-manage-tasks-using-a-sprint-board-track-progress-and-enhance-team-efficiency-for-successful-project-deliveries--1&quot;&gt;In this article, we explore the sprint process in software development. You'll learn to manage tasks using a sprint board, track progress, and enhance team efficiency for successful project deliveries!&lt;/h5&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1761590638908/431e8cea-bb7e-4398-a6cb-81748b603bb0.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-a-sprint--1&quot;&gt;What Is a Sprint?&lt;/h4&gt;
&lt;p&gt;A sprint is a short, focused period of work during which a development team tackles specific tasks or goals (for my team, it’s two-week periods). In modern software projects, sprints help teams stay organized, track progress, and deliver updates efficiently.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-agile-development-1&quot;&gt;What is Agile Development&lt;/h4&gt;
&lt;p&gt;Agile development is a way of building software that focuses on flexibility, teamwork, and continuous improvement. Instead of planning everything up front, teams work in short sprints to deliver small, usable project pieces. After each sprint, the team reviews what went well and what can be improved, making it easier to adapt to changes and deliver better results. Agile helps teams stay organized, respond quickly to feedback, and progress projects.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;what-is-a-sprint-board-amp-ticket--1&quot;&gt;What is a Sprint Board &amp;amp; Ticket?&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;I like explaining a ticket by analogy—think of a ticket as an index card pinned to a corkboard (Sprint Board). In the following example, the corkboard has five column headers labeled as follows:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To Do&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Progress&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Review&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Done&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;The index card lists tasks and moves through each column of the corkboard as the tasks are completed.&lt;/em&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;To Do &lt;/th&gt;&lt;th&gt;In Progress &lt;/th&gt;&lt;th&gt;In Review &lt;/th&gt;&lt;th&gt;Testing &lt;/th&gt;&lt;th&gt;Done&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;(TICKET) &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id=&quot;to-do-1&quot;&gt;To Do&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;Let’s write two tasks on the imagined index card:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Update the README file to include the new login feature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a URL link to the deployed project.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;The provided index card (sprint ticket) will have an auto-generated number; let’s say it’s 12.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now, I will assign YOU to complete ticket number 12. After reviewing the assigned tasks, you will let the team know how long it will take you to complete. This is done using a point system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A point represents a time variable that can differ among teams. Our team’s point system is as follows:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;point-0: within 2 hours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-1: within 1/2 day&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-3: within 1 day&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-5: within 3 days&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;point-8: within 1 week&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is your first ticket, a full day will be acceptable for the task as you will need time to write documentation for the new login procedure and add a URL to the project. Therefore, you should mark your ticket with 3 points (which represents a day).&lt;/p&gt;
&lt;h5 id=&quot;in-progress-1&quot;&gt;In Progress&lt;/h5&gt;
&lt;p&gt;Once you start working on your assigned ticket, you move it to the “&lt;strong&gt;In Progress&lt;/strong&gt;“ column. When you complete it, you move it to the “In Review“ column and notify your team.&lt;/p&gt;
&lt;h5 id=&quot;in-review-1&quot;&gt;In Review&lt;/h5&gt;
&lt;p&gt;The review phase of your ticket involves an assigned team member reviewing it to ensure that all of the assigned tasks were completed. In this demonstration, you needed to write documentation in the README file detailing the new login procedure and adding a URL to the project.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;⚠ &lt;strong&gt;Important:&lt;/strong&gt; &lt;em&gt;You are NOT to go beyond the tasks on your ticket! For example, you would not add additional information to the README file regarding other aspects of the project. Although your intentions are good, since it goes beyond the scope of the ticket, it will be refused because it will cause confusion and disorganization. Further README file updates should be added to new future tickets.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h5 id=&quot;testing-1&quot;&gt;Testing&lt;/h5&gt;
&lt;p&gt;Once the ticket passes the review stage, it is moved to testing to ensure the code functions properly; in this simple example, the project link must be clickable and direct to the correct URL. If your ticket passes the testing phase, it is closed and moved to the “Done“ column.&lt;/p&gt;
&lt;h5 id=&quot;done-1&quot;&gt;Done&lt;/h5&gt;
&lt;p&gt;The done column is filled with completed tickets, showcasing all of the project's updates. Great work on completing your ticket and properly maintaining a professional team workflow using a sprint ticket and a sprint board!&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;additional-sprint-tasks-1&quot;&gt;Additional Sprint Tasks&lt;/h4&gt;
&lt;p&gt;Now that we have covered a simple version of a sprint ticket and a sprint board, I can offer you more details of my team’s process.&lt;/p&gt;
&lt;h5 id=&quot;additional-sprint-board-columns--1&quot;&gt;Additional Sprint Board Columns:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Status:&lt;/strong&gt; Tasks or tickets that haven’t been assigned a workflow stage yet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Back Log:&lt;/strong&gt; A list of tasks or ideas waiting to be worked on in future sprints.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Epics:&lt;/strong&gt; Large, high-level tasks or projects broken down into smaller tickets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blocked:&lt;/strong&gt; Tasks that cannot move forward due to an issue or dependency.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Leftover Tickets&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What do we do with leftover tickets that weren’t completed during the sprint? They are usually moved back to the backlog or carried over to the next sprint for further work. Reviewing leftover tickets helps the team understand what caused delays and improves future planning, ensuring that important tasks aren’t forgotten.&lt;/p&gt;
&lt;h5 id=&quot;team-meetings-1&quot;&gt;Team Meetings&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stand-ups:&lt;/strong&gt; Short daily meetings where team members share progress, plans, and blockers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Weekly Meetings:&lt;/strong&gt; Longer meetings held once a week to review progress, plan upcoming work, and discuss any issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One-on-one:&lt;/strong&gt; Private meetings between two team members (often a manager and developer) to discuss individual goals, feedback, or concerns.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;future-sprint-planning-1&quot;&gt;Future Sprint Planning&lt;/h5&gt;
&lt;p&gt;Sprint planning is the meeting where the team decides which tasks or tickets will be tackled in the upcoming sprint. During this session, team members review the backlog, estimate the effort required for each item, and agree on the sprint goals. The result is a clear plan that outlines what will be accomplished and who is responsible for each task, helping everyone stay focused and aligned throughout the sprint.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;about-us-2&quot;&gt;About Us&lt;/h4&gt;
&lt;h5 id=&quot;what-is-gridiron-survivor--2&quot;&gt;What is Gridiron Survivor?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;&lt;em&gt;Gridiron Survivor&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an apprenticeship program created by Shashi Lo, a Senior UX Engineer at Microsoft. It aims to provide developers entering the tech industry with vital work experience. The program focuses on practical training in project management, coding practices, and team collaboration, offering mentorship and skills essential for success in their initial tech roles.&lt;/em&gt;&lt;/p&gt;
&lt;h5 id=&quot;what-is-the-elfgorithm-app--2&quot;&gt;What is the Elfgorithm App?&lt;/h5&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/LetsGetTechnical/elecretanta&quot;&gt;&lt;em&gt;Elfgorithm&lt;/em&gt;&lt;/a&gt; &lt;em&gt;is an AI-driven Secret Santa app set to launch in winter 2025. It streamlines gift exchanges by removing the guesswork from Secret Santa activities. The app manages gift-giving details and provides personalized gift suggestions, ensuring you find the perfect presents for everyone.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1761580852525/b77a17c5-e6ce-4d24-a142-ea4c65dbc9de.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;gridiron-survivor-sponsors-3&quot;&gt;Gridiron Survivor Sponsors&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A very special thanks to our sponsors!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.gitkraken.com/&quot;&gt;GitKraken&lt;/a&gt;: &lt;em&gt;A popular Git client that provides a graphical interface to manage Git repositories. It is known for its user-friendly design and features that simplify version control, making it easier for developers to collaborate and manage their code.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.frontendmentor.io/&quot;&gt;Frontend Mentor&lt;/a&gt;: &lt;em&gt;An online platform that offers front-end coding challenges. It helps developers improve their skills by providing real-world projects to work on, along with a supportive community for feedback and learning.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://vercel.com/&quot;&gt;Vercel&lt;/a&gt;: &lt;em&gt;A cloud platform for static sites and serverless functions. It is designed to optimize the workflow of developers by providing tools for building, deploying, and scaling modern web applications with ease. Vercel is known for its seamless integration with frameworks like Next.js.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;my-other-related-articles-2&quot;&gt;My other related articles&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/blog-posts/bridging-the-skills-gap-empowering-junior-developers-through-apprenticeship-programs&quot;&gt;Bridging the Skills Gap: Empowering Junior Developers Through Apprenticeship Programs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/04-25/gridiron-survivor's-elfgorithm-introduction-and-team-installation/&quot;&gt;Gridiron Survivor's Elfgorithm: Introduction and Team Installation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/software-versioning-a-developers-guide-to-semantic-and-github-releases/&quot;&gt;Software Versioning: A Developer's Guide to Semantic and GitHub Releases&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/05-25/creating-cohesive-design-systems-with-atomic-design-principles/&quot;&gt;Creating Cohesive Design Systems with Atomic Design Principles&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168177634/1ff578a9-5d03-4800-9c0c-9092e4e60c4f.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;be-sure-to-listen-to-the-html-all-the-things-podcast--3&quot;&gt;&lt;strong&gt;Be sure to listen to the HTML All The Things Podcast!&lt;/strong&gt;&lt;/h4&gt;
&lt;h5 id=&quot;i-also-write-articles-for-the-html-all-the-things-podcast-which-you-can-read-on-their-website-https-www-htmlallthethings-com--1&quot;&gt;&lt;em&gt;I also write articles for the HTML All The Things Podcast, which you can read on their website:&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.htmlallthethings.com/&quot;&gt;&lt;em&gt;https://www.htmlallthethings.com/&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/h5&gt;
&lt;h5 id=&quot;be-sure-to-check-out-html-all-the-things-on-socials--3&quot;&gt;&lt;strong&gt;Be sure to check out HTML All The Things on socials!&lt;/strong&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/htmleverything&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/company/html-all-the-things/&quot;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.tiktok.com/@htmlallthethings&quot;&gt;TikTok&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.instagram.com/htmlallthethings/&quot;&gt;Instagram&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;affiliate-amp-discount-links--3&quot;&gt;Affiliate &amp;amp; Discount Links!&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740168473785/c85789c9-1594-4000-aa2f-43e842f9825f.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;With CodeMonkey, learning can be all fun and games!&lt;/strong&gt; CodeMonkey transforms education into an engaging experience, enabling children to evolve from tech consumers to creators. Use CodeMonkey's &lt;strong&gt;FREE trial&lt;/strong&gt; to unlock the incredible potential of young tech creators!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;With a structured learning path tailored for various age groups, kids progress from block coding to more advanced topics like data science and artificial intelligence, using languages such as CoffeeScript and Python. The platform includes features for parents and teachers to track progress, making integrating coding into home and classroom settings easy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Through fun games, hands-on projects, and community interaction, CodeMonkey helps young learners build teamwork skills and receive recognition for their achievements. It fosters a love for coding and prepares children for future career opportunities in an ever-evolving tech landscape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;To learn more about CodeMonkey, you can read my detailed&lt;/em&gt;&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2025/02-25/inspiring-young-coders-how-codemonkey-turns-kids-into-tech-creators/&quot;&gt;&lt;strong&gt;&lt;em&gt;review article&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Affiliate Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919057/12259&quot;&gt;Sign Up for Parents&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codemonkey.sjv.io/c/5987452/919060/12259&quot;&gt;Sign Up for Teachers&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.hashnode.com/res/hashnode/image/upload/v1740169191630/ac8c5360-d1c5-4c85-8504-18b9c755841e.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;advance-your-career-with-a-20-discount-on-scrimba-pro-using-this-affiliate-link--3&quot;&gt;Advance your career with a 20% discount on Scrimba Pro using this &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;affiliate link&lt;/a&gt;!&lt;/h4&gt;
&lt;p&gt;Become a hireable developer with Scrimba Pro! Discover a world of coding knowledge with full access to all courses, hands-on projects, and a vibrant community. You can &lt;a rel=&quot;nofollow&quot; href=&quot;https://selftaughttxg.com/2021/06-21/06-07-21/&quot;&gt;read my article&lt;/a&gt; to learn more about my exceptional experiences with Scrimba and how it helps many become confident, well-prepared web developers!&lt;/p&gt;
&lt;h6 id=&quot;important-this-discount-is-for-new-accounts-only-if-a-higher-discount-is-currently-available-it-will-be-applied-automatically--3&quot;&gt;&lt;strong&gt;&lt;em&gt;Important:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This discount is for new accounts only. If a higher discount is currently available, it will be applied automatically.&lt;/em&gt;&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;How to Claim Your Discount:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click &lt;a rel=&quot;nofollow&quot; href=&quot;https://scrimba.com/?via=MichaelLarocca&quot;&gt;the link&lt;/a&gt; to explore the new Scrimba 2.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a new account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade to Pro; the 20% discount will automatically apply.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id=&quot;disclosure-this-article-contains-affiliate-links-i-will-earn-a-commission-from-any-purchases-made-through-these-links-at-no-extra-cost-to-you-your-support-helps-me-continue-creating-valuable-content-thank-you--3&quot;&gt;&lt;strong&gt;&lt;em&gt;Disclosure:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;This article contains affiliate links. I will earn a commission from any purchases made through these links at no extra cost to you. Your support helps me continue creating valuable content. Thank you!&lt;/em&gt;&lt;/h6&gt;
&lt;hr&gt;
&lt;h4 id=&quot;conclusion-3&quot;&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;A sprint is a short, focused period of work during which a development team completes specific tasks or goals. Sprints are an essential part of Agile development, a method of software creation that stresses flexibility, teamwork, and continuous improvement.&lt;/p&gt;
&lt;p&gt;Sprint tasks are tracked using tickets that include detailed instructions. As work progresses, these tickets are moved across titled columns on a Sprint Board—To Do, In Progress, In Review, Testing, and Done, among others. Each ticket is assigned an estimated completion time by the assignee using a point system. Points represent time intervals that can differ between teams, such as point-1 for half a day, point-3 for one day, and point-5 for three days. Leftover tickets that weren’t completed during a sprint are typically moved back to the backlog or carried over to the next sprint for further work.&lt;/p&gt;
&lt;p&gt;Regular team meetings keep everyone aligned and productive. Daily stand-ups help share progress and blockers, weekly meetings review progress and plan ahead, and one-on-ones focus on individual goals and feedback. Future sprint planning prepares the team for the next cycle by reviewing the backlog, estimating tasks, and setting clear goals. This ongoing process helps teams stay organized, adaptable, and successful.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ready to implement Agile? Begin planning your next sprint and discover how this workflow can enhance your team’s productivity and project success!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Let’s connect! I’m active on&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/michaeljudelarocca/&quot;&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/MikeJudeLarocca&quot;&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://miro.medium.com/v2/resize:fit:700/0*WkkMi-AgjubeODf8.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h6 id=&quot;do-you-now-feel-confident-in-managing-tasks-using-a-sprint-board-are-you-ready-to-enhance-your-team-s-efficiency-with-agile-development-please-share-the-article-and-comment--1&quot;&gt;&lt;em&gt;Do you now feel confident in managing tasks using a sprint board? Are you ready to enhance your team's efficiency with agile development? Please share the article and comment!&lt;/em&gt;&lt;/h6&gt;
</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://coderlegion.com/6924/sprint-workflow-a-beginners-guide-to-agile-development</guid>
<pubDate>Tue, 28 Oct 2025 00:09:50 +0000</pubDate>
</item>
<item>
<title>Comparing Lean, Agile, and Continuous Delivery</title>
<link>https://coderlegion.com/6212/comparing-lean-agile-and-continuous-delivery</link>
<description>&lt;p&gt;With DevOps and &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/continuous-delivery/&quot;&gt;Continuous Delivery&lt;/a&gt; gaining traction, are the principles behind Lean and Agile still relevant? How do they compare to the 5 Continuous Delivery principles, and what do any differences mean for software development teams?&lt;/p&gt;
&lt;h3 id=&quot;-the-beginnings-of-lightweight-software-delivery&quot;&gt; The beginnings of lightweight software delivery&lt;/h3&gt;
&lt;p&gt;Throughout the 1990s, a revolution was brewing in the software development industry. The early phased models divided the delivery process into skill-based steps, with designs and documents used to run approval processes to control a project.&lt;/p&gt;
&lt;p&gt;The process for delivering software was heavyweight and slow, with little indication that the overheads reduced the risks they tried to mitigate.&lt;/p&gt;
&lt;p&gt;A collection of lightweight methods emerged, designed to generate fast feedback and iteratively adapt the plan based on new information. Rather than controls and approvals, developers used small batches to manage the risk and provide frequent opportunities to change direction.&lt;/p&gt;
&lt;p&gt;The Agile Manifesto emerged from this adaptive and lightweight methods community in 2001, with Lean Software Development arriving a couple of years later.&lt;/p&gt;
&lt;p&gt;Agile and Lean provided a values and principles based approach to software development. You could test whether an approach was Agile or Lean by testing it against a set of core statements defining each method’s philosophy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=13949577533645696249&quot; alt=&quot;Continuous Delivery is more like Extreme Programming than Scrum&quot;&gt;&lt;/p&gt;
&lt;p&gt;Continuous Delivery emerged from the Lean and Agile communities, providing the most concrete practices and capabilities to achieve frequent and safe software delivery. Apart from Extreme Programming, most software development methods deal with requirements management and communication structures. Continuous Delivery takes on the rest of the value stream and provides a pathway to an efficient and reliable delivery pipeline.&lt;/p&gt;
&lt;p&gt;InfoQ publishes an annual report on software development culture and methods. They style the report after Geoffrey Moore’s Crossing the Chasm concept. Moore famously visualizes a technology adoption lifecycle as a bell curve spread across 3 standard deviations.&lt;/p&gt;
&lt;p&gt;The chart is divided into 5 groups with different attitudes to new technology:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Innovators (-3)&lt;/li&gt;
&lt;li&gt;Early adopters (-2)&lt;/li&gt;
&lt;li&gt;Early majority (-1)&lt;/li&gt;
&lt;li&gt;Late majority (+1)&lt;/li&gt;
&lt;li&gt;Laggards (+3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The early majority and late majority represent two-thirds of the adoption lifecycle. Still, for new technology (or, in the case of InfoQ, a new idea) to move into the majority, it must cross the chasm from the early adopters to the mainstream majorities.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=6338706692059381381&quot; alt=&quot;InfoQ software development culture and methods adoption map&quot;&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.infoq.com/articles/culture-trends-2022/&quot;&gt;InfoQ Software Development Culture and Methods 2022&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While adaptive modes of software delivery are embedded in the late majority, the capabilities needed for continuous modes of delivery are still making their way across the chasm. Some practices (such as DevSecOps) have made the leap, while other key elements, like team topologies and empowered teams, remain at the early adopter stage.&lt;/p&gt;
&lt;p&gt;So, with DevOps and Continuous Delivery gaining traction, it’s a great time to compare the 5 principles of Continuous Delivery with the 12 Agile principles and the 7 Lean principles.&lt;/p&gt;
&lt;h3 id=&quot;comparing-agile-lean-and-continuous-delivery-principles&quot;&gt;Comparing Agile, Lean, and Continuous Delivery principles&lt;/h3&gt;
&lt;p&gt;Agile, Lean, and Continuous Delivery each provide a set of principles. This helps us compare their fundamental structures.&lt;/p&gt;
&lt;p&gt;There are other techniques and capabilities in Lean and Continuous Delivery that don’t have comparable elements in Agile. The Agile Manifesto was intended to be a broad litmus test of the agility of other specific methods, such as Extreme Programming, Scrum, and Disciplined Agile, so it didn’t define further details.&lt;/p&gt;
&lt;p&gt;Lean expands on its principles by describing techniques covering the whole software development process with advice on planning, design, testing, and maintenance.&lt;/p&gt;
&lt;p&gt;Continuous Delivery uses the deployment pipeline to focus efforts on improving the flow of change, from the code commit to the software running in production. Specific technical capabilities are described in detail to enable the &lt;em&gt;early and continuous delivery of valuable software&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The principles are the only directly comparable elements of these 3 approaches.&lt;/p&gt;
&lt;h3 id=&quot;continuous-delivery-principles&quot;&gt;Continuous Delivery principles&lt;/h3&gt;
&lt;p&gt;There are 5 principles of Continuous Delivery:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build quality in&lt;/li&gt;
&lt;li&gt;Work in small batches&lt;/li&gt;
&lt;li&gt;Computers perform repetitive tasks, and people solve problems&lt;/li&gt;
&lt;li&gt;Relentlessly pursue continuous improvement&lt;/li&gt;
&lt;li&gt;Everyone is responsible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=1907318290719495196&quot; alt=&quot;The principles feed back into the relentless improvement one at the heart of CD&quot;&gt;&lt;/p&gt;
&lt;p&gt;The principles can be arranged into a reinforcing relationship, where the first 3 principles act as drivers of continuous improvement, for which everyone involved is responsible.&lt;/p&gt;
&lt;h3 id=&quot;agile-principles-comparison&quot;&gt;Agile principles comparison&lt;/h3&gt;
&lt;p&gt;In general, Continuous Delivery principles are consistent with The Agile Manifesto.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=8923390326990842554&quot; alt=&quot;There's a lot of crossover between Agile and CD principles&quot;&gt;&lt;/p&gt;
&lt;p&gt;For example, working in small batches is widely understood to help achieve several of the Agile principles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&lt;/li&gt;
&lt;li&gt;Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.&lt;/li&gt;
&lt;li&gt;Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.&lt;/li&gt;
&lt;li&gt;Working software is the primary measure of progress.&lt;/li&gt;
&lt;li&gt;Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.&lt;/li&gt;
&lt;li&gt;Simplicity — the art of maximizing the amount of work not done — is essential.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The phrasing of the principle “work in small batches” is concise and easy to follow in practice. This Continuous Delivery principle contributes to the attainment of half of the Agile principles.&lt;/p&gt;
&lt;p&gt;There is also an amplification effect when you combine the 5 principles. To “deliver working software frequently”, you need to work in small batches, increase automation, and build quality in.&lt;/p&gt;
&lt;p&gt;Two Agile principles are not covered by Continuous Delivery:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business people and developers must work together daily throughout the project.&lt;/li&gt;
&lt;li&gt;The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Continuous Delivery is centered on the delivery pipeline, which means the process of identification, inception, and initiation aren’t a direct concern of Continuous Delivery. Additionally, in the front matter of the Continuous Delivery book, the authors highlight that the book was created according to the ideas it contained. The contributors and editors worked using different tools and from separate locations. They used version control and automated builds to form a delivery pipeline for the book. They didn’t work together daily or convey information face-to-face.&lt;/p&gt;
&lt;p&gt;As an industry, many organizations who hadn’t attempted to work remotely are now ready to experiment with distributed working. This will further challenge the need for real-time face-to-face coordination as asynchronous communication becomes more common and familiar.&lt;/p&gt;
&lt;p&gt;Regarding word counts, Continuous Delivery principles are conveyed in 21 words, rather than 180 words for Agile principles. A combination of hindsight and incisive editing has given us a compass to check our direction, with the detail provided in the specific practices of Continuous Delivery.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;It’s easy to get bogged down in the details of implementing Continuous Delivery — CD tools, architecture, practices, politics — if you find yourself lost, try revisiting these principles and you may find it helps you re-focus on what’s important.” — Jez Humble&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You don’t have to throw out The Agile Manifesto to move forwards; it’s part of the geography that Continuous Delivery and DevOps are building on. The industry will continue to discover new and better ways of developing software. It’s increasingly evident that technical practices and cultural capabilities are vital.&lt;/p&gt;
&lt;h3 id=&quot;lean-principles-comparison&quot;&gt;Lean principles comparison&lt;/h3&gt;
&lt;p&gt;The Lean principles are already brief and actionable. There’s complete alignment between Lean and Continuous Delivery, with no un-mapped areas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=7671076576981233490&quot; alt=&quot;There's strong crossover of Lean and CD principles&quot;&gt;&lt;/p&gt;
&lt;p&gt;With Agile, Continuous Delivery offered a concise alternative to 10 Agile principles. In the case of Lean, Continuous Delivery aligns entirely with the principles. Each approach provides a different perspective that applies to various organization segments.&lt;/p&gt;
&lt;p&gt;In an organization that has fully adopted both Lean and Continuous Delivery, the respective principles are helpful to different groups. Lean principles and techniques are leadership tools, while Continuous Delivery provides an approach specific to the individual contributors’ delivery efforts.&lt;/p&gt;
&lt;p&gt;For example, automation is a practical attack vector for eliminating waste, delivering quickly, and building integrity into the system with Continuous Delivery.&lt;/p&gt;
&lt;h3 id=&quot;conclusion-4&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Continuous Delivery provides a concise set of principles that align with 10 of the 12 Agile principles and complement Lean, providing a different perspective on achieving similar goals.&lt;/p&gt;
&lt;p&gt;All 3 sets of principles are consistent with modern management philosophy and provide different ways to review and re-focus your software delivery efforts.&lt;/p&gt;
&lt;p&gt;You can use the &lt;a rel=&quot;nofollow&quot; href=&quot;https://octopus.com/devops/continuous-delivery/&quot;&gt;Continuous Delivery principles&lt;/a&gt; to guide your software delivery efforts and refer back to Agile and Lean principles to find further inspiration for your improvement efforts.&lt;/p&gt;
</description>
<category>Proj Mgmt Tools</category>
<guid isPermaLink="true">https://coderlegion.com/6212/comparing-lean-agile-and-continuous-delivery</guid>
<pubDate>Wed, 08 Oct 2025 14:46:30 +0000</pubDate>
</item>
<item>
<title>Scrum Must Die ☠️</title>
<link>https://coderlegion.com/4828/scrum-must-die</link>
<description>&lt;p&gt;Scrum was born as the savior of development teams.&lt;br&gt;
Now, in too many companies, it’s turned into a &lt;strong&gt;corporate religion with more sermons than miracles&lt;/strong&gt;.&lt;br&gt;
And like any bureaucratic religion... it either reforms, or it dies.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;scrum-from-agile-revolution-to-organizational-theater&quot;&gt;Scrum: from agile revolution to organizational theater&lt;/h3&gt;
&lt;p&gt;Years ago, when someone said &quot;we're agile,&quot; people smiled.&lt;br&gt;
Today, it means: &quot;brace yourself for more meetings, more metrics, and more PowerPoints.&quot;  &lt;/p&gt;
&lt;p&gt;Once, companies hired Scrum Masters and Agile Coaches like rare Pokémon.&lt;br&gt;
Now? They're laying them off, merging their roles, or keeping them as ceremony police.  &lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-slow-death-of-technical-excellence-&quot;&gt;The slow death of technical excellence ⚰️&lt;/h3&gt;
&lt;p&gt;Scrum &lt;strong&gt;doesn't ship technical practices out of the box&lt;/strong&gt;.&lt;br&gt;
Without a strong engineering commitment — tests, CI/CD, TDD, living architecture — the framework becomes &lt;strong&gt;a conveyor belt of broken features&lt;/strong&gt;.  &lt;/p&gt;
&lt;p&gt;The result:  &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code that ages worse than a banana forgotten in a drawer.  &lt;/li&gt;
&lt;li&gt;Deadlines that dictate more than quality.  &lt;/li&gt;
&lt;li&gt;Developers stuck in chronic burnout.  &lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-mutant-scrum-master&quot;&gt;The mutant Scrum Master&lt;/h3&gt;
&lt;p&gt;In too many organizations, the Scrum Master is gone.&lt;br&gt;
Instead, we have the &lt;strong&gt;Scrum-PM-Dev-Tester-CoffeeMaker&lt;/strong&gt;: a hybrid creature that doesn't lead or serve, just survives.  &lt;/p&gt;
&lt;p&gt;A role meant to protect agility now spends the day filling spreadsheets and chasing tickets instead of empowering teams.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;management-overload-and-the-cost-of-ignorance&quot;&gt;Management overload and the cost of ignorance&lt;/h3&gt;
&lt;p&gt;There's a growing &lt;strong&gt;management overload&lt;/strong&gt; in many &quot;agile&quot; organizations: too many decision-makers with &lt;strong&gt;too little technical background&lt;/strong&gt;.  &lt;/p&gt;
&lt;p&gt;This creates a dangerous loop:  &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decisions are made without understanding the engineering impact.  &lt;/li&gt;
&lt;li&gt;Expensive mistakes are repeated in the name of &quot;delivery&quot;.  &lt;/li&gt;
&lt;li&gt;Teams feel they're being managed, not led.  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When non-technical managers dictate technical priorities, the result is often waste, rework, and long-term pain disguised as &quot;progress&quot;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-agile-industrial-complex&quot;&gt;The Agile Industrial Complex&lt;/h3&gt;
&lt;p&gt;Agility has been packaged into certifications, workshops, and consulting packages that promise transformation but deliver &lt;strong&gt;empty mechanics&lt;/strong&gt;.  &lt;/p&gt;
&lt;p&gt;Scrum becomes a theater where everything is done &quot;by the book&quot; but &lt;strong&gt;without soul, values, or real continuous improvement&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;reform-it-or-throw-it-overboard-&quot;&gt;Reform it or throw it overboard?&lt;/h3&gt;
&lt;p&gt;If you still want to rescue Scrum, here's the recipe:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How Scrum could improve:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Less ceremony, more value&lt;/strong&gt;: if the daily stand-up lasts 20 minutes, something's broken.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrate technical practices&lt;/strong&gt;: TDD, CI/CD, Pair Programming… without this, forget about quality.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clear roles&lt;/strong&gt;: a Scrum Master is not your Project Manager, boss, or on-call developer.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real autonomy&lt;/strong&gt;: the team decides, not the hierarchy.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Technical literacy in management&lt;/strong&gt;: decision-makers must understand the cost and complexity of engineering work.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Alternatives that might shine brighter:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kanban&lt;/strong&gt;: flows like water, no forced iterations.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extreme Programming (XP)&lt;/strong&gt;: hardcore engineering, quality above all.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lean&lt;/strong&gt;: less waste, more focus on what matters.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mix &amp;amp; Match&lt;/strong&gt;: take what works, drop what doesn't — like a good buffet.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;conclusion-scrum-isn-t-the-enemy-but-your-implementation-might-be&quot;&gt;Conclusion: Scrum isn't the enemy... but your implementation might be&lt;/h3&gt;
&lt;p&gt;Scrum doesn't have to die, but &lt;strong&gt;the zombie, bureaucratic, tech-agnostic Scrum&lt;/strong&gt; we see in too many companies... that one should be buried.&lt;br&gt;
Preferably with one last retrospective... and no sticky notes.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/4828/scrum-must-die</guid>
<pubDate>Tue, 19 Aug 2025 14:32:03 +0000</pubDate>
</item>
<item>
<title>A guide to deciding what ,why and when To Pivot or to Persevere?</title>
<link>https://coderlegion.com/4277/a-guide-to-deciding-what-why-and-when-to-pivot-or-to-persevere</link>
<description>&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=277891092724356139&quot; alt=&quot;&quot;&gt;#The Founder's Dilemma: To Pivot or to Persevere?&lt;/p&gt;
&lt;p&gt;When you're building something new, whether it's a startup or a project, you'll face a big question over and over: should you stick with your original plan, or is it time for a change? This is the classic choice between pivoting and persevering, a key idea in modern product development that comes from popular methods like the Lean Startup and Agile.&lt;/p&gt;
&lt;h3 id=&quot;what-does-it-mean-to-pivot-or-persevere-&quot;&gt;What Does it Mean to Pivot or Persevere?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Persevering&lt;/strong&gt; is all about sticking to your guns. It means you believe in your current plan and are committed to seeing it through, even when things get tough. You have faith that your idea is the right one, and you're willing to put in the time and effort to make it work.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;pivot&lt;/strong&gt;, on the other hand, is a major change in direction. It's not just a small adjustment; it's a deliberate decision to try a new approach because the old one isn't working. You're essentially admitting that your initial idea needs a rethink to find a path to success.&lt;/p&gt;
&lt;p&gt;The main difference is the size of the change. Persevering is about improving your current path, while pivoting is about finding a new one.&lt;/p&gt;
&lt;h3 id=&quot;making-the-call-why-when-and-what-to-do-&quot;&gt;Making the Call: Why, When, and What to Do?&lt;/h3&gt;
&lt;p&gt;Deciding whether to pivot or persevere is one of the most important decisions a team can make. The wrong choice can cost you time, money, and even the entire project.&lt;/p&gt;
&lt;h4 id=&quot;why-is-this-decision-so-important-&quot;&gt;Why is this decision so important?&lt;/h4&gt;
&lt;p&gt;This choice affects everything. It shapes how you use your resources, keeps your team focused, and determines if your product will ever be a hit with customers. A smart pivot can rescue a failing company, and determined perseverance can turn a good idea into a great one.&lt;/p&gt;
&lt;h4 id=&quot;when-should-you-consider-a-pivot-&quot;&gt;When should you consider a pivot?&lt;/h4&gt;
&lt;p&gt;Knowing when to pivot is tricky, but here are some signs to look for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stagnant Metrics:&lt;/strong&gt; If your key performance indicators (KPIs) are flat or declining despite your best efforts, it might be time to reconsider your strategy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Negative Customer Feedback:&lt;/strong&gt; If your target audience is consistently telling you that your product doesn't solve their problem or that they wouldn't pay for it, you need to listen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &quot;Get Out of the Building&quot; Test:&lt;/strong&gt; As advocated by the Lean Startup methodology, if your interactions with real customers reveal that your initial assumptions were wrong, a pivot is likely necessary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A better opportunity appears:&lt;/strong&gt; Sometimes, you'll discover a bigger and better idea while working on your original one. It might be worth pivoting to chase it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;how-to-decide-which-path-to-take-&quot;&gt;How to decide which path to take?&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data-Driven Decisions:&lt;/strong&gt; Rely on metrics and qualitative feedback, not just gut feelings. Use agile feedback loops to gather data continuously.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set &quot;Pivot or Persevere&quot; Meetings:&lt;/strong&gt; Hold regular, dedicated meetings to evaluate progress against goals and openly discuss the possibility of a pivot. This makes the decision a part of the process, rather than a reaction to a crisis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Know what you're testing:&lt;/strong&gt; Be clear about the assumptions you're making. This will help you know if your ideas are being proven right or wrong.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;real-world-scenarios&quot;&gt;Real-World Scenarios&lt;/h3&gt;
&lt;h4 id=&quot;the-pivot-hall-of-fame&quot;&gt;The Pivot Hall of Fame&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Slack:&lt;/strong&gt; Originally a gaming company called Tiny Speck working on a game called &lt;em&gt;Glitch&lt;/em&gt;, the team built an internal communication tool to collaborate. When the game failed to gain traction, they realized their communication tool was the more valuable product. They pivoted to focus on it, and Slack was born.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YouTube:&lt;/strong&gt; Started as a video dating site called &quot;Tune In Hook Up.&quot; When that idea failed to take off, the founders noticed that users were uploading all kinds of videos, not just dating profiles. They pivoted to a general video-sharing platform, and the rest is history.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instagram:&lt;/strong&gt; Initially a location-based social network called Burbn, it was cluttered with features. The founders noticed that the photo-sharing feature was the most popular. They stripped away everything else and focused solely on photos, filters, and sharing. This pivot created the Instagram we know today.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;the-power-of-perseverance&quot;&gt;The Power of Perseverance&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Amazon:&lt;/strong&gt; Jeff Bezos's vision for Amazon was always to be &quot;the everything store.&quot; In the early days, many doubted that an online bookstore could succeed, let alone expand into countless other categories. Amazon persevered through the dot-com bust and years of unprofitability, staying true to its long-term vision.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Netflix:&lt;/strong&gt; From its beginnings as a DVD-by-mail service, Netflix faced intense competition from Blockbuster. They persevered, believing in the convenience of their model. Later, they made the monumental decision to cannibalize their own successful business by moving into streaming, a move that required immense perseverance through technical challenges and licensing negotiations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;conclusion-5&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Building something new is never a straight line. It's about learning, experimenting, and making smart changes along the way. Knowing when to stick with your plan and when to make a change is what sets successful projects apart. By using data and being open to change, you can make the right call and give your ideas the best chance to succeed&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/4277/a-guide-to-deciding-what-why-and-when-to-pivot-or-to-persevere</guid>
<pubDate>Sat, 26 Jul 2025 07:58:17 +0000</pubDate>
</item>
<item>
<title>Understanding Tech Debt</title>
<link>https://coderlegion.com/3938/understanding-tech-debt</link>
<description>&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#understanding-tech-debt&quot;&gt;Understanding Tech Debt&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#what-is-tech-debt-in-software-development&quot;&gt;What is Tech Debt in Software Development?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#what-is-tech-debt-in-agile-and-scrum&quot;&gt;What is Tech Debt in Agile and Scrum?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#common-examples-of-tech-debt&quot;&gt;Common Examples of Tech Debt&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#code-level-debt&quot;&gt;Code-Level Debt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#database-debt&quot;&gt;Database Debt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#architecture-and-infrastructure-debt&quot;&gt;Architecture and Infrastructure Debt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;understanding-tech-debt&quot;&gt;Understanding Tech Debt&lt;/h2&gt;
&lt;h3 id=&quot;what-is-tech-debt-in-software-development-&quot;&gt;What is Tech Debt in Software Development?&lt;/h3&gt;
&lt;p&gt;Think of technical debt (or tech debt) as taking a shortcut when writing code. You choose a quick and easy solution for now, knowing that you'll have to come back and fix it properly later. It's like borrowing money. You get something now, but you have to pay it back later, and often with &quot;interest.&quot; This &quot;interest&quot; means that making changes to your software in the future will be slower and more difficult because of the shortcut you took.&lt;/p&gt;
&lt;h3 id=&quot;what-is-tech-debt-in-agile-and-scrum-&quot;&gt;What is Tech Debt in Agile and Scrum?&lt;/h3&gt;
&lt;p&gt;In agile development, where the goal is to release software in short cycles (sprints), teams can easily create tech debt. The pressure to finish work within a sprint might lead them to cut corners.&lt;/p&gt;
&lt;p&gt;Here are some things to watch out for in agile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Meeting Deadlines:&lt;/strong&gt; Rushing to meet a sprint deadline can lead to messy code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changing Plans:&lt;/strong&gt; When project needs change, the old code might not be a good fit anymore.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What &quot;Done&quot; Means:&lt;/strong&gt; A good team agrees on what it means for work to be truly &quot;done.&quot; This should include writing clean code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Making it a Task:&lt;/strong&gt; The best way to handle tech debt is to add it as a task in the project plan. This way, it doesn't get forgotten.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;common-examples-of-tech-debt&quot;&gt;Common Examples of Tech Debt&lt;/h3&gt;
&lt;p&gt;Tech debt can show up in many ways. Here are a few common examples:&lt;/p&gt;
&lt;h4 id=&quot;code-level-debt&quot;&gt;Code-Level Debt&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Instructions:&lt;/strong&gt; Code without comments or documentation is hard for others (or your future self) to understand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not Enough Testing:&lt;/strong&gt; Without good tests, fixing one thing can accidentally break something else.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy-Pasting Code:&lt;/strong&gt; Writing the same code in multiple places instead of making one version that can be reused.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mysterious Numbers:&lt;/strong&gt; Using numbers in code without explaining what they are for.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;database-debt&quot;&gt;Database Debt&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Poor Normalization:&lt;/strong&gt; Storing the same piece of information in multiple places. For example, having a customer's address stored with every order they make instead of in a separate customer table. This makes updates difficult and can lead to inconsistent data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconsistent Naming:&lt;/strong&gt; Using different names for the same kind of data in different tables (e.g., &lt;code&gt;CustomerID&lt;/code&gt; in one table and &lt;code&gt;Cust_ID&lt;/code&gt; in another). This makes writing queries confusing and error-prone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Missing Indexes:&lt;/strong&gt; A database index helps find data quickly. Without a proper index, the database has to search through every row to find what it's looking for, which can be very slow, especially with large amounts of data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ignoring Data Types:&lt;/strong&gt; Storing data in a generic type (like a text field) when a more specific type (like a date or number) would be better. This can lead to bad data and makes it harder to work with.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;architecture-and-infrastructure-debt&quot;&gt;Architecture and Infrastructure Debt&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tightly Coupled Components:&lt;/strong&gt; Creating parts of the system that are so dependent on each other that changing one part requires changing many others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outdated Dependencies:&lt;/strong&gt; Using old libraries or frameworks with known security holes or performance issues.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lack of Automation:&lt;/strong&gt; Manually deploying code or running tests when these processes could be automated. This is slower and increases the chance of human error.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;conclusion-6&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Tech debt happens in almost every software project. Sometimes, taking shortcuts is necessary to get things done quickly. But it's important to keep track of these shortcuts and plan to fix them. If you don't, your software will become hard to work with over time. The best approach is to deal with tech debt regularly to keep your code clean and easy to maintain.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/3938/understanding-tech-debt</guid>
<pubDate>Sun, 13 Jul 2025 07:21:40 +0000</pubDate>
</item>
<item>
<title>Two Ways to Reduce Bottlenecks with the Theory of Constraints</title>
<link>https://coderlegion.com/3663/two-ways-to-reduce-bottlenecks-with-the-theory-of-constraints</link>
<description>&lt;p&gt;&lt;strong&gt;Working out how to apply Theory of Constraints in real-world situations can be hard, but there are two simple ways to kickstart it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A chain is only as strong as its weakest link. That’s the idea behind the Theory of Constraints. Just a few weak links will limit any system, but you can improve the whole system’s performance by focusing on improving those links.&lt;/p&gt;
&lt;p&gt;Whether your system is a software delivery process, a large production line or your household chores, the only way to improve the whole system is to work at the bottlenecks.&lt;/p&gt;
&lt;h3 id=&quot;-theory-is-great-in-theory&quot;&gt; Theory Is Great, in Theory&lt;/h3&gt;
&lt;p&gt;There are two ways to learn about the &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.tocinstitute.org/theory-of-constraints.html&quot;&gt;Theory of Constraints&lt;/a&gt;. You can read Eliyahu Goldratt’s business novel, The Goal, or read the accompanying handbook, Theory of Constraints.&lt;/p&gt;
&lt;p&gt;Either option explains the set of focusing steps you use to apply the theory.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Identify the system’s constraint.&lt;/li&gt;
&lt;li&gt;Decide how to exploit the constraint.&lt;/li&gt;
&lt;li&gt;Subordinate everything else to this decision.&lt;/li&gt;
&lt;li&gt;Elevate the constraint.&lt;/li&gt;
&lt;li&gt;If the constraint resolves, go back to step one.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The theory is wide-reaching. It can be applied to any system. For example, a production line in a factory, managing software delivery or a group of Scouts trying to hike to their destination with their equipment. Because of this, the language is likely to be a little abstract for your real-world situation.&lt;/p&gt;
&lt;p&gt;Specifically, the terms exploit, subordinate and elevate might be unclear.&lt;/p&gt;
&lt;p&gt;Let’s simplify the language a little, then look at two practical ways to apply the Theory of Constraints to your work.&lt;/p&gt;
&lt;h3 id=&quot;-exploit-subordinate-and-elevate&quot;&gt; Exploit, Subordinate and Elevate&lt;/h3&gt;
&lt;p&gt;A “constraint” in the Theory of Constraints is essentially a bottleneck. You are trying to flow work to completion to get some value, and many steps are involved, possibly many people. If you look closely at this flow of work, you’ll find there is one stage where things get stuck.&lt;/p&gt;
&lt;p&gt;You might be making computers and have a pile of almost finished products stacked, waiting for someone to install a graphics card. Well, the graphics card stage is your bottleneck or constraint.&lt;/p&gt;
&lt;p&gt;You can spot this problem thanks to the pile of computers sitting in front of the graphics card workstation, but you’ll also notice workstations after the bottleneck are starved of work while those ahead of it are producing more laptops that only add to the size of the queue.&lt;/p&gt;
&lt;p&gt;If your work is less physically visible, having a visual system like a Kanban board can show you the problem. Seeing work items stuck in a queue in front of a specific task shows you ther’s a bottleneck.&lt;/p&gt;
&lt;p&gt;When you can see this bottleneck, you’re ready to apply the three mystical terms.&lt;/p&gt;
&lt;p&gt;You can exploit the constraint by improving it with existing people and resources. If you can transfer someone to work at the constraint, your overall production (finished laptops, software features or clean clothes) will increase.&lt;/p&gt;
&lt;p&gt;You then subordinate everything else to the pace of your constraint. That means setting the speed of the upstream process to match the speed of the bottleneck. If you can fit 10 graphics cards into laptops in a day, you can assemble only 10 laptops a day. Everything from start to finish runs at the pace of the stage with the bottleneck.&lt;/p&gt;
&lt;p&gt;Once the system is running at a matched speed, you look at ways to elevate the constraint. That means finding ways to increase the throughput from 10 graphics cards daily to something more than 10. Assuming you’re not using existing people and resources to elevate the constraint, you’ll need to look at the costs and benefits of increasing throughput. If you doubled the size of the team or introduced tools to support the process to increase throughput to 20 graphics cards a day, how much would you invest to get those extra sales?&lt;/p&gt;
&lt;p&gt;You continue to apply this three-stage process until the constraint moves. For example, you are producing 20 graphics a day while selling only 18 laptops a day. Now you apply the focusing steps to the sales stage instead.&lt;/p&gt;
&lt;p&gt;This theory can be applied to physical or knowledge work. Work is like water flowing down a canal with many locks. You can’t allow the water from higher stretches to flood the lower ones or allow a section of the canal to run dry.&lt;/p&gt;
&lt;p&gt;Let’s look at two practical ways to apply these focusing steps in real life.&lt;/p&gt;
&lt;h3 id=&quot;-start-on-the-right&quot;&gt; Start on the Right&lt;/h3&gt;
&lt;p&gt;In software development, work is usually visualized on a task board that follows work as it flows from left to right. The columns on the board represent queues and work stages, such as “waiting for testing” and “in test.”&lt;/p&gt;
&lt;p&gt;To apply the Theory of Constraints, first ensure the task board accurately represents every hand-off and queue in your process. Once you have represented the real flow of work, the board will quickly show you where bottlenecks are.&lt;/p&gt;
&lt;p&gt;You can apply the focusing steps to the bottleneck, but there’s a simpler option for cross-functional teams. Always work on the right-most work item before anything else. If a feature is ready to deploy to production, deploy that before testing the feature to the left.&lt;/p&gt;
&lt;p&gt;By always progressing the work closest to completion, you get the exploit and subordinate focusing steps with no effort. Your cross-functional team is self-leveling, even for dynamic bottlenecks. The speed of the system is automatic, and the team will apply their time flexibly to the tasks that require their attention.&lt;/p&gt;
&lt;p&gt;When using this approach, you just need to keep inertia out of your improvement process. You won’t have a stack of work telling you what needs to be improved, so you’ll need to pay attention to which tasks must be improved — or elevated, in Theory of Constraints terminology.&lt;/p&gt;
&lt;p&gt;Sometimes, the simplicity of this approach is what makes it so powerful.&lt;/p&gt;
&lt;h3 id=&quot;schedule-to-the-bottleneck&quot;&gt;Schedule to the Bottleneck&lt;/h3&gt;
&lt;p&gt;If you don’t have a cross-functional team, you can schedule to the bottleneck. For example, if you have a separate testing team, you should produce features only at the speed they can be tested without increasing the queue size.&lt;/p&gt;
&lt;p&gt;This is where adding work in process (WIP) limits to your task board can help. The most important WIP limit is the one for the queue in front of the bottleneck, but you may need to add limits to other columns to the left of the constraint. You don’t need limits after the bottleneck; if you find yourself adding WIP limits on the right, it means your constraint has moved.&lt;/p&gt;
&lt;p&gt;When you schedule to the bottleneck, ideally you want to provide work to the constraint just as they need the next task. However, most teams use a buffer to make sure the bottleneck is never idle.&lt;/p&gt;
&lt;p&gt;Scheduling to the bottleneck takes more effort than starting on the right. However, its one advantage is highlighting the constraint very clearly. Nobody on the team has any doubts where improvement efforts should be focused.&lt;/p&gt;
&lt;h3 id=&quot;the-powerful-aha-moment&quot;&gt;The Powerful “Aha” Moment&lt;/h3&gt;
&lt;p&gt;The reason the Theory of Constraints has such an impact is that it highlights how all the work you do above what your bottleneck can handle is wasted. In the laptop example, no amount of assembled laptops you produce makes a difference to how many you sell if you can’t complete them with a graphics card.&lt;/p&gt;
&lt;p&gt;The answer can be as simple as moving someone from assembly to graphics installation, or you may need better tools to support this stage in the process. The Theory of Constraints sets you on the right path and provides concrete motivation for improving the right thing.&lt;/p&gt;
</description>
<category>Proj Mgmt Tools</category>
<guid isPermaLink="true">https://coderlegion.com/3663/two-ways-to-reduce-bottlenecks-with-the-theory-of-constraints</guid>
<pubDate>Mon, 30 Jun 2025 12:26:04 +0000</pubDate>
</item>
<item>
<title>Why Maturity Models Are Fundamentally Broken</title>
<link>https://coderlegion.com/3296/why-maturity-models-are-fundamentally-broken</link>
<description>&lt;p&gt;&lt;strong&gt;Maturity models make complex things appear simple, but we need to acknowledge the circumstances behind them being imposed on so many organizations.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There’s a certain appeal to maturity models. They take a lot of complexity and arrange it neatly into simple steps called maturity levels. Just tick off everything in the first level to move on to the next.&lt;/p&gt;
&lt;p&gt;Maturity models owe their traction to the way they make complex things appear simple. In particular, they can take a subject and present it to someone with no expertise in the subject in a way that they can understand.&lt;/p&gt;
&lt;p&gt;The simplicity of the maturity model is also its greatest weakness. Still, if we’re to move past them, we need to acknowledge the circumstances that result in them being imposed on teams in so many organizations.&lt;/p&gt;
&lt;p&gt;Let’s quickly summarize why maturity models are fundamentally flawed, and then explore what you should do instead.&lt;/p&gt;
&lt;h3 id=&quot;-best-is-always-contextual&quot;&gt;‘Best’ Is Always Contextual&lt;/h3&gt;
&lt;p&gt;I worked for an organization in the health-care industry that needed to create a new software product. Thanks to an overzealous sales team, a suitable crisis had been created that meant the organization was willing to give the team whatever it needed to deliver the first version of the product.&lt;/p&gt;
&lt;p&gt;We formed a small team that included everyone needed to deliver the software, including a clinically trained nurse. We experimented with the process to enable a highly collaborative approach with single-piece flow and fast feedback loops. We used a retrospective process after each feature to fine-tune the process.&lt;/p&gt;
&lt;p&gt;After several iterations, we could deliver a feature every three hours. Over the course of six months, we delivered many working versions of the software with zero regression defects.&lt;/p&gt;
&lt;p&gt;Having the autonomy to devise our own process allowed the team of clinical and technical people to create a process that perfectly fits the complex and challenging environment. It was the best process we could have applied to the problem at hand.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=4843620287623988416&quot; alt=&quot;The CRANKED diagram&quot;&gt;&lt;/p&gt;
&lt;p&gt;When the managers in the organization saw how well this process worked, they couldn’t wait to roll it out to all the other software teams. There are several problems with this kind of standardization effort.&lt;/p&gt;
&lt;p&gt;The process and capabilities don’t bring the magic. It was a mixture of these practices and the close collaboration between the clinical and technical team members. We also had total commitment to the process because we created and adjusted it. The drivers for each change and the evidence of what worked and what didn’t meant we understood why we were working this way.&lt;/p&gt;
&lt;p&gt;The crucial factor that made this team so successful was autonomy.&lt;/p&gt;
&lt;p&gt;And this is the heart of the problem. The one thing that is so important in creating a successful team and a working process is the very thing a maturity model removes.&lt;/p&gt;
&lt;h3 id=&quot;maturity-models-only-work-in-the-lab&quot;&gt;Maturity Models Only Work in the Lab&lt;/h3&gt;
&lt;p&gt;Maturity models are not unreasonable. As statistician George Box once said, all models are wrong, but some are useful. They are based on specific starting and target conditions. Each model is created in response to an undesirable situation and a vision for a desired future state. They capture the steps to move between two defined points.&lt;/p&gt;
&lt;p&gt;If you have the same undesirable starting point, a maturity model will likely bring you the described outcomes. For example, the Software Capability Maturity Model (CMM) gained traction in the movement to bring professionalism to software development because so many organizations shared the same untenable starting position.&lt;/p&gt;
&lt;p&gt;Even with high traction, results are highly variable because organizations adopting maturity models have different contexts to those the model’s authors had experienced. Designing a single model that produces the same results in the face of different products, industries, people and organizational cultures is impossible.&lt;/p&gt;
&lt;p&gt;Many attempts to introduce maturity models fail in the change management process. Some managers drop copies of “Who Moved My Cheese” on every desk, letting employees know they are the problem. Others attempt to run an internal marketing campaign, which results in eye rolls and collective lethargy. No slogan written on a pen ever saved a company from self-destruction.&lt;/p&gt;
&lt;p&gt;When attention isn’t paid to the process of change, it fails. Because maturity models have “we know better than you” baked in, they are a disaster for transformational efforts.&lt;/p&gt;
&lt;p&gt;This brings us back to the key ingredient of a working software delivery process: autonomy.&lt;/p&gt;
&lt;p&gt;Instead of defining precisely how professional software developers work, they should be allowed to solve this problem themselves. Where there are constraints, developers will find creative ways to meet the needs of the business. If you are in a safety-critical or regulated industry, they will achieve the necessary conditions.&lt;/p&gt;
&lt;p&gt;The best process for the team and the organization will be the one they create. It will remain the best way to solve the problem if they regularly adapt the process to improve it.&lt;/p&gt;
&lt;p&gt;To counter George Box’s statement about models being wrong, we can turn to statisticians Peter McCullagh and John Nelder, who said:&lt;/p&gt;
&lt;p&gt;“All models are wrong; some, though, are better than others, and we can search for the better ones. At the same time, we must recognize that eternal truth is not within our grasp.”&lt;/p&gt;
&lt;h3 id=&quot;a-way-forward&quot;&gt;A Way Forward&lt;/h3&gt;
&lt;p&gt;If you measure the impact of each practice listed in a maturity model, you’d know whether they improved outcomes, made no difference to outcomes or made things worse. You’d end up not adopting all the practices, just the effective ones. This is the basis of a capability model.&lt;/p&gt;
&lt;p&gt;Capability models encourage continuous improvement. You can tailor the capability model to your context and adjust as circumstances change. Instead of applying a required set of practices, you look for capabilities that will improve outcomes.&lt;/p&gt;
&lt;p&gt;For software delivery, the best example of this is the &lt;a rel=&quot;nofollow&quot; href=&quot;https://dora.dev/research/&quot;&gt;DORA capability model&lt;/a&gt;. There are no maturity levels or sequence of steps. You don’t even have to adopt every item listed in the model.&lt;/p&gt;
&lt;p&gt;Instead, you reflect on your future desired state and use the model as a source of ideas. By tracking outcomes, you can avoid making things worse and spot potential problems. Throughput and stability metrics are common measurements, as they balance competing demands well.&lt;/p&gt;
&lt;p&gt;You may introduce additional metrics to track specific improvements. If you focus on making the deployment pipeline faster, you might track the time it takes to build or test the software. Any measurements you collect must be retired when they are no longer needed or converted into fitness functions that will alert you if a problem resurfaces.&lt;/p&gt;
&lt;p&gt;A capability model provides hints on practices that predict certain outcomes. You are encouraged to confirm that this relationship applies in your case, rather than applying capabilities on faith alone.&lt;/p&gt;
&lt;p&gt;You must also develop each skill rather than meeting a minimal evidentiary bar. Introducing a practice like test automation will likely slow things down for a while as the skills are developed. Once sufficient mastery is achieved, the difference becomes visible.&lt;/p&gt;
&lt;h3 id=&quot;stay-away-from-devops-maturity-models&quot;&gt;Stay Away from DevOps Maturity Models&lt;/h3&gt;
&lt;p&gt;Adopting a technique or practice requires some investment. Maturity models disregard the cost/benefit trade-off. While some models are based on academically rigorous research, it’s still essential to orient improvement efforts to the context of your team and organization.&lt;/p&gt;
&lt;p&gt;If someone offers you a DevOps maturity model based on the DORA research, remind them that many members of the DORA team, &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.youtube.com/watch?v=n2ppyuTJiPM&quot;&gt;including its co-founder Nicole Forsgren&lt;/a&gt;, have said it’s a bad idea.&lt;/p&gt;
</description>
<category>Proj Mgmt Tools</category>
<guid isPermaLink="true">https://coderlegion.com/3296/why-maturity-models-are-fundamentally-broken</guid>
<pubDate>Mon, 09 Jun 2025 07:57:57 +0000</pubDate>
</item>
</channel>
</rss>