Avoiding growth by accretion

Software has a tendency to grow by accretion - a gradual build-up of material causing what was a small and simple nucleus to become a large, complex object with many layers. It's the same mechanism by which planets form. A small clump of particles attracts other particles, and this new »

The value of tests

A couple of things this week reminded me how important it is to have a decent set of tests for your code. The first came out of me being asked to add a piece of functionality to an application. It turned out that said functionality had always existed, but since »

No (more) heroes

A good development team has no heroes. There are three common "heroic" feats in software development: Hacking in features in a fraction of the time it should have taken. Pulling all-night hacking sessions to get a delayed project out the door. Fixing a hack that exploded in production and took »

Ownership: Technical Debt

Hands up who didn't see this one coming? Technical debt is one of those strangely taboo subjects in the development world. Everybody has it, but nobody wants to talk about it when it comes to sprint retrospective time. Which is strange, as one of the first things any group of »