subscribe via RSS

Recent Articles

  • Forecast Costs Responsibly

    I routinely encourage clients to resist forecasting project costs, especially at the detailed level of tasks, stories, features. I do this because I think they could spend their precious energy elsewhere more effectively and with greater benefit. Even so, project costs tend to stir up intense emotions, so people struggle mightily to set those concerns aside. If you insist on trying to forecast cost more accurately, then I’d like to point you towards helpful advice on doing that without tying yourself up in knots.

  • Slack's Role in Managing Software Projects: Revisited

    When I first read the “Slack” section of Extreme Programming Explained, nearly 20 years ago, it shocked me. It instantly repelled me. Over time, however, I have seen the wisdom of that approach and I’d like to share that wisdom with you.

  • Making Use of 'Silly' Advice: Part 2

    A simple substitution is all it takes to transform silly advice into something valuable! Here is an example that you can find just about everywhere on the internet.

  • Our Collective Struggle Over Technical Debt

    People have struggled to understand and make use of the concept of Technical Debt for over 20 years now. I offer one idea with the hopes of reducing even just a small amount of our collective suffering.

  • Making Use of 'Silly' Advice

    Some advice seems just silly: pointless, nitpicking, arbitrary. You could yell at it, complain about it, ignore it, or perhaps find a way to make use of it. I offer you an example of how to do that.

  • Giraffe Ears: An Example

    A practical example of how to use the “Giraffe Ears” concept from Nonviolent Communication, taken from conversations that programmers routinely have with their coworkers.

  • Two Simple Tools for Handling Open Loops

    Get things out of your head by combining sleep and say, or whatever those tools are called on your system. Schedule 30 minutes to investigate them and figure out how to use them.

  • How TDD Seems To Go Against Agility

    Yet another person yells absurd thoughts about TDD that seem ludicrously easy to debunk. But what if their absurd thoughts are perfectly sensible? What would that mean about TDD and its role in Lightweight Software Development or “agility”? If we put on our Giraffe Ears, we can see the situation differently and possibly even—shockingly—be helpful.

  • The Trouble With 'Readable' Code

    I routinely encounter programmers complaining about “unreadable” code, who then play games of refactoring tug-of-war in their code base. By describing more precisely what they don’t like about the code, they can agree with less effort and move on with their lives.

  • Not Only X, But Also Y

    Learning a new way doesn’t immediately invalidate the old way. Recommending one way doesn’t mean recommending against the alternatives.

  • Scarcity Mindset and Work In Process

    One very common trap that software professionals become stuck in: the positive feedback loop between feeling stressed for time and trying to do everything. Burnout follows for those who don’t find a way to break free of this trap.

  • Agility Creates Options, But Strategy Remains a Free Choice

    Many decision-makers are attracted to Lightweight/Agile ways of working because they believe it will help them deliver faster. Some proponents counter this by focusing on value and proposing a one-size-fits-all way to think about “business value”. I believe that these ways of working ultimately help us most by guiding us to create options so that we can spend less time catching up to our outdated plans and more time consciously executing our business strategy. And we don’t get to outsource our business strategy to “the framework”.