Showing posts with label done. Show all posts
Showing posts with label done. Show all posts

Definition of DONE! 10 Point Checklist

Definition of DONE! 10 Point ChecklistA key principle of agile software development is "done means DONE!"

To be more specific, here's a 10 point checklist of what constitutes 'feature complete'...









  1. Code produced (all 'to do' items in code completed)
  2. Code commented, checked in and run against current version in source control
  3. Peer reviewed (or produced with pair programming) and meeting development standards
  4. Builds without errors
  5. Unit tests written and passing
  6. Deployed to system test environment and passed system tests
  7. Passed UAT (User Acceptance Testing) and signed off as meeting requirements
  8. Any build/deployment/configuration changes implemented/documented/communicated
  9. Relevant documentation/diagrams produced and/or updated
  10. Remaining hours for task set to zero and task closed

See also:
Agile Principle #7: done means DONE!
Agile Principle #6: Fast but not so furious!
10 Key Principles of Agile Software Development

Photo by saital

read more

Agile Principle #7: "Done" Means "DONE!"

In agile development, "done" should really mean "DONE!".

Features developed within an iteration (Sprint in Scrum), should be 100% complete by the end of the Sprint.

Too often in software development, "done" doesn't really mean "DONE!". It doesn't mean tested. It doesn't necessarily mean styled. And it certainly doesn't usually mean accepted by the product owner. It just means developed.

In an ideal situation, each iteration or Sprint should lead to a release of the product. Certainly that's the case on BAU (Business As Usual) changes to existing products. On projects it's not feasible to do a release after every Sprint, however completing each feature in turn enables a very precise view of progress and how far complete the overall project really is or isn't.

So, in agile development, make sure that each feature is fully developed, tested, styled, and accepted by the product owner before counting it as "DONE!". And if there's any doubt about what activities should or shouldn't be completed within the Sprint for each feature, "DONE!" should mean shippable.

The feature may rely on other features being completed before the product could really be shipped. But the feature on its own merit should be shippable. So if you're ever unsure if a feature is 'done enough', ask one simple question: "Is this feature ready to be shipped?".

It's also important to really complete each feature before moving on to the next...

Of course multiple features can be developed in parallel in a team situation. But within the work of each developer, do not move on to a new feature until the last one is shippable. This is important to ensure the overall product is in a shippable state at the end of the Sprint, not in a state where multiple features are 90% complete or untested, as is more usual in traditional development projects.

In agile development, "done" really should mean "DONE!".

See also:
10 Key Principles of Agile Software Development
Time waits for no man!
How d'you eat an elephant?
Fast but not so furious!

read more