2007-08-17

When is a feature done?

Far too often a new feature is considered done at an incomplete state. This is my suggested checklist for when to consider a feature DONE:
  1. It's checked in to source control
  2. It compiles
  3. It passes its unit tests (no, not having unit tests does not count)
  4. It doesn't break any other unit tests
  5. It increases the overall test coverage for the module
  6. The continuous integration server passes the build
  7. It's integration tested with other features and / or modules it pertains to
  8. It's documented in the release notes and / or product documentation
  9. The feature does what it's supposed to do (as defined by the specifications for the feature)
If you answer no to any of these questions, you're not done. Furthermore, if you answer N/A to any of them you should ask yourself whether the feature should be implemented at all. The last point is perhaps the most difficult to assess, unless you have executable specifications in form of FIT tests or something similar. Furthermore, if you're using Scrum, the feature must be demonstrated on the end-of-iteration demo to be considered done.

2 kommentarer: