Software engineering lap times

This is a critical path in software development.

Engineering cycle

Your average lap time controls the speed that you can create and improve your software. It's important that the everyone on the team is using the same process and getting the same results. A highly manual process where developers are posting privately created DLLs to individual test systems is fast but difficult to prove is error free. A weekly automated build and install is highly deterministic, but probably unduly slow. Some combination of the two approaches usually works best in reality.

Here are some tips for getting good lap times.

  • Don't test code that was built on the same machine it was developed on. (You need an automated build)
  • Make sure you have a detemistic setup process with something like WIX.
  • Make sure running regression tests is cheap.
  • Try to keep you whole process simple, but sacrifice simplicity for determinism when you have too.

Writing good software is a balancing act. Remember that it's your average lap that counts, not the fastest time. It's not good to be able to turn some fixes around in 10 minutes if the whole system is so fragile that it's prone to being out of action three days out of the week.