Slow Is Smooth, And Smooth Is Fast

When time is tight, trying to go faster can be a mistake.

At times it feels like everything goes wrong at once, and often it chooses the worst possible time to do so. When time is tight, when the stakes are high and the deadline is looming, that's when the build fails, the server crashes, or showstopper bugs turn up on the main branch. Sometimes this is just happenstance, but often it's not coincidence, but a cascade failure, a chain of cause and effect beginning with your first problem - and in many cases, that first problem was the time constraint.


Becoming Agile: Last Things First

Sometimes, the best place to start is not at the beginning.

When you hear people talk about "Agile", what's the first thing you think of?


This Isn't A Production Line

Software engineering can learn from assembly lines - but not in the way you think.

Production lines are inspiring things; row upon row of machines moving in perfect synchronisation, churning out products with speed and precision. It's easy to see why it would be nice to have our software development process work the same way - fast, accurate and efficient. While there are useful lessons to be learned here, it's also important to remember the ways that building software is not like building cars, and to note the pitfalls inherent in trying to treat it as such.