I was in a meeting last week where part of the discussion veered into ‘what corners can we cut’ territory. The carpenter’s mantra of measure twice, cut once came to mind.

Cutting corners is a quick way to accrue technical debt. But unlike some forms of technical debt, cut corner debt tends to be the toxic type. You know, the kind that pulls down economies.

So what corners get cut? Well, in my experience these are the easiest for management to cut…

  • Testing time allotment
  • Developer oriented testing
  • Upgrading tools and/or infrastructure
  • Internationalization
  • Fine-grained security
  • Testability

The first two are pretty self-explanatory I think. The next one is about improving the scaffolding your application is built on and the last three are really hard to shoe-horn back into a product.

Now, every time I’ve seen someone cutting a corner it is not out of some malicious desire to make a crappy product. It is often a time constraint being imposed by external factors, and having been in management roles before I appreciate and understand this. But you have to be sure, really, really sure that you have a good measurement of what you are cutting off before the saw comes out.