The term feature is not well defined in software. Wikipedia suggests “defining characteristic”. Webopedia says “notable property”.

Agile software development practise complicates this discussion by combining the idea of a feature as it exists when the software is finished with the details of building the feature. So agile developers often apply a multi-part test that says a feature must:

  1. Provide value
  2. estimatable
  3. small enough to fit in an iteration
  4. testable