subscribe via RSS

Recent Articles

  • XP: My Greatest Misses, 2000-2009

    Instead of my greatest hits, this is a collection of my greatest misses: ten big mistakes that I made early in my career. I believe that I’ve learned from these mistakes. Perhaps you can relate to some of them. Perhaps you can learn from them, too.

  • Sometimes The Ax Is Sharp Enough

    “I am so busy splitting stories I have no time to talk with actual users”. This sounds like a problem, but how do you know? Don’t fall into the “best practices” trap.

  • TDD "Isn't About Testing" Revisited

    I’d written an article to my mailing list decrying the attitude of “TDD isn’t about testing, you idiot!” and a reader asked me a few things to clarify my position. In the process, they pointed me to an article that they considered a reasonable articulation of the issues involving the importance of writing tests first, then asked me what I think about it.

  • Choosing New Habits

    We have a limited amount of energy to invest in new habits, so how do we know which habits to try to form? I know two complementary strategies.

  • Avoiding Distractions While Programming

    If you have read Getting Things Done, then you can already guess what I’m about to write here: use your inbox. If you haven’t read Getting Things Done, then you need to know what I mean.

  • Flow Requires Focus, Not Time

    You’ve almost certainly heard about flow, an immersive state of intense focus during which a person often does their best, most effective, most rewarding work. I see many people use flow to justify recommending against certain working practices, like open workspaces, pair programming, and incremental delivery, arguing that people need long stretches of time to enter the flow state. Not only does working for long stretches not necessarily help me reach “the zone”, but by working in short bursts, I’ve conditioned myself to reach “the zone” quicker, and more often. I’d like to tell you what I do and how I think it might work.

  • What If We Forget To Write the Tests?

    When programmers forget to write tests for features, we might interpret that as a sign that their heart’s not in it. This easily leads one to look for ways to ensure compliance. Even if you’re well-intentioned, you’re probably barking up the wrong tree.

  • No, Estimates Are Not Evil

    No, estimates are not evil. I beg you not to limit yourself to trying to categorize estimates as entirely good or entirely evil. I don’t have the energy to argue with people who limit themselves to such superficial analysis. This nonsense tires and bores me, so please let’s move on.

  • Redirect Permanent

    Just a little note to tell you this blog has now completely moved to its new home. I hope you find it nicer, especially more mobile-friendly. Feel free to click here to tell me about any problems or annoyances and I’ll do what I can to improve things.

  • Do We Need A New Word For 'Velocity'?

    I don’t know whether we need a new word for “velocity”, but I would like to see more people using the concept of velocity for better purposes than merely to decide how big a stick to beat the programmers with. Given this behavior, I both understand and support the impulse to find a different word.