agile > chapter 3 iterative and incremental execution and delivery > 6 detailing the content of the iteration

Detailing the Content of the Iteration

We need to have a definition of done for our requirements. When creating the list of tasks for each requirement, we can consider the preparing relevant documents and conducting appropriate tests as tasks.

A requirement can involve many documents:

Some tests we may conduct are:

Assigning hours to tasks

Now that we have an idea as to which tasks to include, we can decide on how long each task might take. Although planning poker is considered as a good practice by certain companies and agile leaders, it is wasteful especially for requirements with large numbers of tasks.

We can have technical experts in the work team advise us as to how long a task may take - someone who has built 100 website home page might know a thing or two as to how long its implementation takes.

Some teams used the PERT (Program Evaluation Review Technique) technique for estimating hours. In this technique we find the sum of each plausible timing multiplied by a weight determined by how probable it is. For a task that it 4 times as likely to take 10 hours in normal conditions, 6 hours given the appearance of an advantage and 2 times as likely to see a time of 12 hours in the case of an obstacle appearing, we get the estimate in hours as:

$$\frac{10\times 4+6\times 1+12\times 2}{4+1+2}=\frac{70}{7}=10$$

Technical expertise and PERT are superior alternatives to planning poker.

Refinement meetings

These are meetings between the work team and the product owner (the client) conducted with the purpose of resolving any misconceptions or doubts about the requirements. These meetings are short and should not break the flow of work. They are only conducted when there is need to gain information from the business - do not call a meeting if there is no need for clarification.