Notes from the delivery floor.
Frameworks, anti-patterns, and the recurring shapes I see when teams have stopped shipping at the rate their business needs. Updated as things come up.
All writing.
Agile, Scrum, Tech-debt—how did these ideas, meant to help, become your daily headache?
How did Agile, Scrum, and tech debt go from helpful ideas to daily headaches? Discover why this happens and how incremental development can fix it.
From Late-Night “What If…?” to AI Code Foundry
Why I’m launching a live, community-driven lab for coding with AI
AI Exposed the Cracks. Now What?
AI is accelerating your engineers, but it’s also surfacing every flaw in your software delivery process — and the real skill now is building a team that can continuously find and fix the next bottleneck.
Architecting for Ambiguity [ELC Talk]
We write software for an uncertain world. From agile development to progressive delivery, we've built software delivery practices around the assumption that we'll build the wrong thing and we'll build it wrong. We optimize for fast feedback and adjust on the fly. But how do you architect a system...
🎃 This Halloween, Beware the Terrifying Gantt Chart! 📊
Wanted to post something truly scary on this spooky day, and what’s the most terrifying thing I could think of? A Gantt chart. 😱
Blow up your Staging Environments
Bottlenecks to Breakthroughs
I'm excited to share some news with you. I'm launching a brand new course called "Bottlenecks to Breakthroughs: Master Effective Software Delivery". This is a fresh adventure for me, and while I'm super thrilled, I won't lie, there's a bit of butterflies-in-the-stomach feeling too.
Busting Bottlenecks with Constraints Theory
Engineers that are 100% busy are killing your team's effectiveness
✅ Checklists: Friend Or Foe?
I once owned a Cessna R182 🛩️ . It was a 4-seater plane, capable of 150 knots, equipped with countless knobs and switches. Flying it was a ton of fun, and it came with a myriad of checklists: preflight, run-up, take-off, climbing, landing, emergencies, and more.
Congrats! You’ve become a software company—without ever wanting to.
Stuck with software headaches? Learn how to turn your tech team from a blocker into a competitive advantage with practical strategies.
Decoding Sprint Failures: It's Not The Specs
Once upon a time, in the midst of a sprint gone sideways, a debate arose 📣. One voice attributed the chaos to not having detailed enough specs. Another argued for tighter sprint acceptance criteria. 👉 But here's the thing: these are often just surface symptoms of deeper, more complex challenges.
The universe is out to get you (and how to fight back)
The universe is out to get you, and entropy is your enemy. Things decay and change, and you must keep up with the world. Entropy will keep increasing on you. You have to construct the systems to hold everything together.
📖 Documentation Superpowers
Ever feel like writing documentation is a chore? Think again! It's a hidden gem in our workflow, and here's why...
Done Means Shipped, Not Just Coded
Writing code is only half the battle. If it’s not shipped, tested, and performing in production, it’s not done. Value comes from delivery.
Is Debugging Teams Similar to Debugging Code?
Evaluating Organizational Cultures: Is Your Organization Pathological, Bureaucratic, or Generative?
Embarking on the DevOps journey often brings many into contact with Westrum’s typology of organizational cultures—a compelling framework that sheds light on how different organizations respond to failure. The paper is a must-read and you can find it linked below.
Fostering Autonomy?
If you're aiming for your teams to deliver value rapidly, fostering their autonomy is key. Consider this: frequent cross-team meetings and decision-making processes can hinder swift progress. A logical starting point involves examining fundamental constraints...
The Conundrum Of Front-End Monoliths
Monoliths or Microservices? While there's no one-size-fits-all answer, countless articles and resources guide us in making that decision for our specific needs.
Game the 🤬 Metrics
Strategies on how to deal with this common objection on setting goals & targets.
Good Strategy, Bad Strategy
Thrilled to share my somewhat recent read - "Good Strategy, Bad Strategy" by Richard Rumelt: an insightful read that breaks down the intricacies of effective strategy formulation.
High Cognitive Load ➡️ Team Crusher
Understanding cognitive load is crucial in software engineering, yet its impact is often neglected .
Imprecise to Precise
How Much Duplication is OK in Software Development?
Every coder worth their salt knows the sacred mantra: DRY - "Do Not Repeat Yourself". It's chanted in nearly every coding guide, textbook, and even by those bearded coding wizards in the corner cubicle. While it's hailed as a cardinal rule, can one ever overdose on such wisdom?
My last week at Included Health
I'm writing this post with a heart full of gratitude and a mix of emotions, as I bid farewell to a place I've called my professional home for an incredible journey.
Navigating the Sprint Planning Trap
The True Undoing of a Project: It's Not Just the Critical Path
While the critical path is fundamental, it's not the sole factor that can derail a project. In fact, there's a two more silent saboteurs: dependencies and focus.
On Strong Typing
ORMs Bug Me 🐜
Today, I find myself thinking about #ORMs (Object-Relational Mappers). It's a complicated relationship, to say the least – love them or hate them? - something akin to a roller coaster of emotions. 🎢
You Cannot Have More Priorities Than Arms!
Ever felt that even two priorities can feel overwhelming? Setting priorities isn't just about listing what you're actively focusing on ✅. It's equally about recognizing and accepting what you're deliberately putting on hold ‼️.
🖥️ Pull Request Mystery
While reviewing a pull request recently, I encountered an interesting scenario: The pull request seemed pretty routine...
Quick Book Review: Tidy First
📘 Every software engineer should read Kent Beck's new book, "Tidy First". Here's why...
Rational Astrologies and the SDLC
“Rational Astrology” shows how we adopt flawed security and dev practices that feel safe but aren’t actually effective.
Release in Tiny Slices
📈 Rethinking Scalability: Beyond Transactions Per Second
In the realm of building scalable systems and architectures, a common focus is often on increasing transactions per second. However, this narrow perspective can occasionally lead us into a corner, especially when other dimensions of scalability demand attention.
Rethinking Technical Debt
Technical debt is often likened to a credit card 💳: borrow now, pay back later. The key notion is that tech debt is something you eventually pay back. But here's the catch: it's rarely repaid. 😮💨
💥 Rethinking the "Padding Game" in Software Development 🎯
I've developed a bit of an aversion to planning. A "five-year plan" seems laughable & even a one-year plan feels disconnected from reality. There are moments when looking ahead is necessary. How can we strike a balance? What are the strategies to navigate this challenge? Let's explore!
We don't rise to the level of our expectations. We fall to the level of our training.
A bit cynical? That was my first thought too when I stumbled upon this saying in a recent podcast. It struck a chord, and though it made me wince initially, I couldn't shake it off. It kept buzzing in my head, demanding attention. 🦟
Say No to “Low Code / No Code”
I've been observing the rising trend of Low Code/No Code solutions in software development. While these tools hold promise for certain applications, I've grown increasingly cautious about their limitations, especially for anything beyond the simplest engineering tasks.
Why You're Scared to Deploy on Fridays (And Why That’s a Problem)
Scared to deploy on Fridays? That fear signals deeper issues in your delivery system. Fix the root cause and make every day safe to ship.
Ship More, Stress Less: Embrace WIP Limits ✨
Discover productivity's open secret: WIP limits can elevate your team's efficiency to new levels. These limits aren't just about starting projects—they're about finishing them. 🛠
Signs You Development Teams is Overwhelmed
Is your team constantly grumpy? That’s a key sign of overload. Other symptoms? Slow features, unfinished tasks, bugs, complaints. Fix the basics first.
Build me a bathroom with software! 🚽
Ever heard the metaphor comparing software development to building a house? It's a common analogy, but here's my take on it:
🚀 Speed: The Essence of Quality
A CMU professor of mine once asked our class: "Is McDonald's considered 'quality food'?" 🍔 Now, before we dive into the great burger debate, let’s unpack what he really meant by 'quality....
♟️ Strategic Procrastination
There is a paradox in planning, where the most crucial decisions often need to be made early when you possess the least amount of information. 👉 “Strategic Procrastination” thus can be a counterintuitive yet effective strategy. Here's how it can work for you...
Stuck in Software Quicksand?
Finding your team or company limited by software development? How do you start getting unstuck?
🦍 Stupid Rules 🤯
Tackling Bottlenecks (one at a time)
Last time I was kiting, this past summer, my wetsuit legs were curling up and my legs were getting sunburned. It was a small problem, but it was there, nagging at the back of my mind. "If only this were fixed, everything would be just right."
Are Your Team Metrics Making Your Life Harder? (and what you can do about it)
How to start making progress towards an effective software engineering team by focusing on incremental, consistent output.
The Silent Team Killer: The Impact of Tech Debt.
Tech debt is like a boat with water; you slow down bailing water (fixing bugs) and even more plugging holes (refactoring). Measure it using proxy metrics (defects, outages, velocity) and ensure the team understands this model for better prioritization.
Tech investments can pay you back fast. ⚡️
I upgraded some tooling yesterday, and since it affected the code writing process (very far “left”), I was ~50% faster to getting my code to be good with the new tooling. Which leaves me wondering why I didn’t do that sooner… 🤯
Where do you start untangling the mess?
Constantly busy with your software project but seeing little progress? Focus on mastering iterations, quality, and scaling. Build momentum by fixing the real bottleneck.
Four reasons why platform team initiatives fail (and what you can do about it)
Four reasons why platform team initiatives fail (and what you can do about it)
🌟 Why You Should Love Frameworks 🌟
Simplification isn't just a convenience in our intricate world; it's a necessity for tackling complex issues. Frameworks are the strategic tools that help us make sense of chaos. They're not just theoretical—they're practical, insightful, and incredibly adaptable. Here’s how...
Withdrawals at the bank of tech debt
I'm back for another year of "Advent of Code" challenges! 🌟 If you haven't heard of it, it's a month-long coding frenzy where people tackle a fresh two-part problem every day. The thrill? Competing against your friends (or peers worldwide) for the speediest solution and bragging rights. 🏁
You’re Not That Special 🫶
Ever heard these statements in your team meetings? ➢ “For this project, it makes sense to have a long running branch because…” ➢ “It does not make sense to have automated tests for this code, because…” ➢ “We need to deploy this service manually because…” ...
🚨 You're Optimizing for the Wrong Thing 🚨
In the tech industry, we pride ourselves on optimization, but let's face it: we might be optimizing for the wrong thing. While traditional industries repeat tried-and-tested templates, in software development, there's no template for innovation.