01 January 2010

on bugs that make it all the way

Don't be too quick to declare that something is "done." It might be mostly done, all the major functionality is there... but take a little extra time and polish it and make sure that it's done right.

Some preliminary criteria for things that are "done right":

  • handle lots of likely errors gracefully
  • are fully integrated with the build system
  • have been tested, edge cases fleshed out, preferably in something automated

Pay careful attention to any differences between how you're testing the software (or how other people will test the software) and how the software will be used in production.

Do not assume that two similar scenarios are equivalent. If there's a difference between them, test them both.