What Does "Done" Mean?
Definition of "done"
To be complete with a new feature, you must have the following pieces completed:
- The actual code that performs the action, fixes the problem, etc. per bug report/specification
- One or more JUnit test cases that prove that your code is doing what you say it is.
- In the case of a bug fix, if there is an existing JUnit test case that covers the component, adding a new test that makes sure the bug doesn't re-appear.
- In the case of a new component, a whole new JUnit test case to test/exercise the component is required.
- You may need one or more Action Sequences to prove your component works as advertised.
- Your JUnit test cases must also demonstrate the components' ability to handle boundary cases (exceptions, invalid inputs, missing outputs, etc.)
- Documentation on the new feature
- In the case of a new component, you're required to document all the inputs and outputs of the component, what it produces, and what the boundary cases are.
- In UI tools, changes to the user interface need to be documented - field descriptions and interactions are required.
- For bug fixes, make sure that in existing documentation, the behavior that was fixed is explicitly called out.