The practice of delivering products continuously and frequently is very important to agile methods and can be considered a mantra among agile software developers. The agile methods state the development team should deliver a new version of the software at the end of each iteration. The Iteration Without a Deliverable smell is detected when an iteration does not have an associated deliverable product. The presence of this smell may indicate that the continuous and frequent delivery practice has been jeopardized.
Agile Methods: The smell is mentioned by five agile methods: Scrum, FDD, DSDM, ADS and OpenUp. For Scrum, it is desired that the team deliver a new version of the software at the end of each Sprint. In FDD, at least one new feature should be delivered at the end of an Iteration. A key factor for the success of the principle Deliver on Time in DSDM is that at the end of each iteration, the team shows a deliverable. In ADS, at least one new component should be delivered at the end of a Development Cycle. The practice Iterative Development in OpenUp defines that an iteration should not be extended without any software to be demonstrated.
Industry Perspective: All participants indicated - with different levels of relevance - that the smell is relevant. No additional comment was given.
Identification Strategy: A strategy to assess whether an iteration has a deliverable is to use a specific field to describe the deliverable of an iteration. With such field, the occurrence of this smell could be detected by assessing this field.
Parameters: A Tolerated Number of Consecutive Iterations Without Deliverable parameter could be used to specify a tolerable number of consecutive iterations without a deliverable.