- lets the development team discuss with the product owners (or end users) the most pressing and important requirements that need to be delivered after a desired amount of time,
- allows the development team to share their thoughts about the work at hand – how much they think they can actually finish and what they need to accomplish the feat,
- forces the product owners to trust the programmers to do the work,
- gives the development team the responsibility to follow through on what they promised,
- provides the development team ample time to review their work, to experiment, to redo things in better ways if possible, to be challenged enough, to learn more,
- supplies the software tester enough time to check if the pieces of the puzzle are working on their own before fitting them together,
- keeps log of all things that happen as the software development process goes on, and
- helps everyone get to know their strengths and weaknesses, which eventually shows the team the road to being better.