The art of pairing

By nature, the stereotype of a software developer is of an introvert, who likes to work alone. We know in theory that pairing and collaboration are powerful techniques, but in practice many developers can be hesitant or even resist, and I think this is often because...

Using estimates to guide delivery

It should go without saying, but estimates are by definition (and always will be!) a quantification of risk and effort based on imperfect knowledge. As I’ve mentioned before, in my opinion using estimates in a software project is a delicate balance, and in many...

A risk based approach to estimating

Estimates in software projects are neither always a good nor bad thing, but they can be very prone to abuse and helping dysfunctional behaviors to spread. The most obvious of these is with teams who are trying to adopt agile in the context of an organization that is...

Choosing databases

The recent explosion of database technologies gives teams a wide range of options, and the chance to tick off “NoSQL” on the buzzword bingo scorecard. Each paradigm, and each product, has its own set of features, that may or may not make it applicable to...

Coupling and Continuous Integration

Does your team have a “build server guy”, while everyone else stays away? Or worse still a separate “build server team”? I’ve certainly worked with a few development teams where I’ve seen these organizational anti-patterns – which...