Scrum assumes that a 2 to 4 week sprint can be planned in advance, with the work fully divided into 4 to 16 hour tasks. However, uncertain tasks cannot be estimated in practice, because they require an initial learning effort that comprises most of the actual effort.
uScrum (uncertainty Scrum) is an agile process distilled from the current practice at Altitude Software, where technical writing tasks are often uncertain. In uScrum, managers classify tasks into 4 orders of ignorance, depending on how much is unknown about them.
- In 0oi tasks, workers know everything needed to complete the tasks and managers have reliable estimates.
- In 1oi tasks, workers must gather information from others to complete the tasks. Managers can estimate the total effort, but the date of completion often depends on external events.
- In 2oi tasks, the work unfolds as workers follow a generic process and learn more about the task. Initial estimates of 2oi tasks often fail when workers uncover unexpected work.
- In 3oi tasks, workers face complex problems without any clear solution.
uScrum uses several strategies to manage uncertain tasks, leading to 4 different kinds of sprints.
- In a "get things done" sprint, workers are overbooked with a mix of 0oi and 1oi tasks, and then micro-manage their tasks to overcome obstacles. At the end of the sprint, workers completed some subset of the scheduled work.
- In a "try with fallback" sprint, workers advance 2oi tasks while using 0oi and 1oi tasks to fill any slack. At the end of the sprint, workers should have learned how to complete the 2oi task or, otherwise, why the task is difficult.
- In a "just try" sprint, workers advance a single 2oi task, hoping to understand the task better.
- In a "cannot go back" sprint, workers try to advance on complex tasks (2oi or 3oi). Managers must strive to integrate contributions from workers into a shared and evolving understanding of related problems.
Although managers facing uncertain tasks cannot be certain of sprint outcomes, they can schedule sprints that balance risk against expected outcomes.