Sprints work pretty well, but they can get messy when contributors start being involved, or when bugs overflow the time boundaries of a sprint (ie a bug was started near the end of a sprint, and isn't finished at the end of the sprint). Sometimes sprints can feel like "mini waterfalls". On the other hand, sprints have the advantage of letting PMs easily define what work should be done, and helping this information flow from PMs to developers. They also help timebox projects, so that we can say "this will be done during this two week cycle. This predictability is important. Surprised estimations are teh suck. It isn't fair to ask a developer to make an estimate on something that they haven't worked on before without time to do some research.
Goals:
- Reduce dependency on a fixed two week cycle.
- Maintain a level of predictability, within the error margins of estimation.
- Keep the amount of metawork to a minimum.
- Reduce the amount of "surprise estimations".