Iteration planning is an important success factor in agile methods. Normally an iteration plan is elaborated with the main stakeholders (developers and customer) that together decide what should be developed in the iteration. The Iteration Without an Iteration Planning smell is detected when there is no planning associated with a given iteration. The presence of this smell may indicate that the iterations are not being planned properly.
Agile Methods: Iteration planning is mentioned by all agile methods investigated. The Planning Game practice in XP promotes a close interaction between developers and customers. Developers estimate the effort for implementing customer stories and customers then decide about timing and scope of the iterations. Scrum proposes the Sprint Planning which is a meeting divided in two parts: in the first part, all stakeholders (customer, scrum master and developers) select the items that should be worked in the iteration. In the second part, the team discusses technical issues related to selected items and decides what features could be delivered in the iteration. Crystal methods define a planning meeting to decide the next increment of the system. In FDD, development is feature-oriented which includes the creation of a high-level plan where features are organized according to their priority. Before each iteration, customer and team decide together which features should be developed in the next iteration. In DSDM, the scope of an iteration is planned beforehand. Planning the cycles in ADS is part of the iterative process. ADS method also proposes Joint Application Development (JAD) sessions which are workshops where developers and customer representative discuss product features and decide the components that will be included in the next cycle. The Iteration Plan practice in OpenUp suggests planning an iteration in detail only when it is due to start. An iteration planning meeting should be held by the whole project team who decide the iteration scope.
Industry Perspective: All the participants considered the Iteration Planning relevant. One participant mentioned that, in some Projects, the Iteration Planning is divided in two parts (different from Scrum division mentioned above). In the first part (called Pre-Iteration Planning) a team representative (usually the most experienced) and a business analyst discuss details about the candidates iteration backlog items. The goal of the first part is to anticipate potential technical problems (inconsistent business rules, incomplete or hard-to-implement requirements, business processes not mapped, etc). In case a problem is detected, the issue should be resolved before the Iteration Planning.
Identification Strategy: We propose three strategies to verify the presence of the Iteration Without an Iteration Planning smell. The first strategy is to check if there is a task in the iteration plan that represents the Iteration Planning meeting. Another strategy is to verify if there is a task in the iteration plan that produces an Iteration Plan artifact. A third strategy is to check if all the tasks in the iteration plan are estimated before starting the iteration.
Parameters: No parameter was identified for the evaluation strategy.