Our Consumer Culture and What it Means for Software Craftsmanship

We have an old Kenwood Chef A701 that’s hardly out of use in our kitchen. A few days ago, the gearbox went. I bought a reconditioned one on Ebay for £23, and this morning I made the time to do the repair. As I tinkered away with my screwdriver, I reflected on how grateful I […]

BDD Training

Update: This training is now available as a public course, starting October 8th in London. Would you like to learn how Behaviour-Driven Development can help your company get better at software development? I’ve helped several teams learn BDD, and I’ve started to formalise the training I’ve been doing into a set of course modules. The […]

The Real Point of Planning Poker

It’s funny, you’d think, from reading about planning poker that the purpose of this exercise is to come up with accurate estimates. I think that’s missing the point. The estimates are a useful by-product, if your organisation values such things, but actually the most important benefit you get from planning poker is the conversation. As […]

Hi-Fidelity Project Management

If the only metric you use for measuring and forecasting your team’s progress is their iteration velocity, you’re missing out on a great deal of richer information that, for just a few extra minutes per day, you could easily be collecting. This is information that the team can use during the iteration to help spot […]

Random Notes from SPA2010

Usage-Centric Design Narrative Journey Maps Duncan Prefers the term Usage-Centred Design to User-Centric Design. There was a book reference here but I missed it. Narrative Journey Maps (NJM) are a way to model and visualise the steps a user has to follow as they try to achieve a goal. Each Step is decorated with: Comments […]

7 Reasons Why Pair Programming Makes Sense

Did I mention that I like pair programming? Here are some reasons why it’s good for you and your boss. More Trucks The higher the truck number of your team, the more resilient it is to losing people. Pair programming spreads knowledge of the code around the whole team meaning each team member has a […]

Debug Pair Programming with Me in London

I’ll be running a preview of my Agile 2009 workshop ‘Debugging Pair Programming’ at Skills Matter on Monday 10th August. If you’re on a team that’s using or trying to adopt pair programming, this is a great chance to explore and understand some of the complex reasons why this is such a difficult skill to […]

Don’t Confuse Estimates with Commitments

Estimate: an approximate calculation of quantity or degree or worth Commitment: the act of binding yourself (intellectually or emotionally) to a course of action Estimates are not commitments. Plans based only on estimates are bad plans. Commitments based only on estimates are at best foolish, at worst dishonest. Estimates are certainly a useful tool for […]

Acceptance Tests Trump Unit Tests

At work, we have been practising something approximating Acceptance Test Driven Development now for several months. This means that pretty much every feature of the system that a user would expect to be there, has an automated test to ensure that it really is. It has given me a whole new perspective on the value […]