Tasks are defined based on the requirements and design. Then the task duration
is estimated. All tasks with a duration of more than 3 days are split in smaller
parts, down to tasks of less than 3 days (or did you think you can do more than
3 days work in 5 days?). Then all the tasks are put
on the Candidates List. Now all these tasks must be prioritised.
Prioritising of tasks is done according to the following criteria:
- Most important requirements first
- Highest risks first
- At the end of the development you don't have time any more to cope with
problems
- At an earlier stage, you still have time to find a solution
- Requirements changes are a known risk. Don't suppress them.
Deal with it as soon as possible!
- Most educational or useful/supporting for development first, e.g.:
- Avoid wasting time on knowledge others can teach you faster than you
can find out yourself
- Automatic build functions
- Automatic test functions
- Synchronise with other developments, e.g.:
- Hardware may need test or verification software at a certain time
- Same for production
- Make sure hardware is available when the software needs it
- Every cycle delivers a useful, completed, working, functional product
- Define stakeholders for every delivery. Stakeholders may include yourself.
- Invite stakeholders to check the validity of the requirements and evoke
changes in the requirements. Changes will happen anyway.