What a great idea! What an insight! If only I’d thought of that, my development projects would never have been so hard :-)
Seriously though, there are a few key principles of agile software development that help with this step. Here they are…
‘done’ means DONE!
*Complete* each featurebefore moving on to the next. In agile development, ‘done’ means DONE!. All too often in software development, software is not in a shippable state. Having all the features 80% complete is of no use to anyone. However, 80% of features 100% complete might well be a perfectly shippable product. Hang on to this principle.
Time waits for no man!
Particularly on BAU (Business As Usual) product developments, you are usually in complete control of how many features, enhancements and bug fixes are in each release. If you hang on to the ‘done’ principle, you should be in a position to ship when your time is up.
All changes must be reversible
One of the key challenges in achieving this, is to ensure your software is always in a shippable state, even when you have multiple streams of development (e.g. live bug fixes alongside major project) on the go at the same time. To achieve this, all changes must be reversible.
Finish when you said you would
That’s it. *Complete* each feature before moving on to the next. Stick to the principle ‘done means DONE!’. Manage your code carefully so you can build a shippable product at any time. And even if it means varying the scope (that’s varying scope, not varying quality), finish when you said you would.
Finally, Step #10: Review, reflect, repeat…
How to implement Scrum in 10 easy steps:
- Step #1: Get your backlog in order!
- Step #2: How to estimate your product backlog
- Step #3: Sprint Planning/clarify requirements
- Step #4: Sprint Planning/estimate tasks
- Step #5: Create a collaborative workspace
- Step #6: Sprint!
- Step #7: Stand up and be counted!
- Step #8: Track progress with a daily burndown chart
- Step #9: Finish when you said you would
- Step #10: Review, reflect, repeat…