Modelling the Seven Genes of Agile
The following section describes sections of the Agile Project Dynamics (APD) model pertaining to agile methods, and delves into the specifics of how each of the seven “agile genes” characteristics is modelled in its own view. Where possible, Scrum is used as an example and as the “reference methodology” when modelling certain aspects of Agile development.
Story/Feature Driven
We begin to model the Story/Feature driven nature of an Agile project by modifying the structure of the rework cycle to account for the stocks (or “buckets”) of features that are maintained as software capabilities are envisioned, planned, prioritized, developed, tested, and reworked.
This is better understood when considering that in Scrum, the following stocks of work exist:
· Product Backlog: A backlog exists and evolves over the lifetime of the product; it is the product road map. At any point, the Product Backlog is the single, definitive view of “everything that could be done by the Team ever, in order of priority”. The Product Backlog is continuously updated to reflect changes in the needs of the customer, new ideas or insights, moves by the competition, technical hurdles that appear, and so forth. (Deemer et al. 2009)
· Release Backlog: The subset of the Product Backlog that is intended for the upcoming release of the software. This is the result of planning and prioritization to select which features in the product backlog need to be implemented in the next cycle. - Sprint Backlog: The list of tasks/work that the development team must address during the next sprint. It consists of a set of tasks required to complete the features selected for a subset of the Release.
Note that the features in the Product Backlog and Release Backlog, in Scrum, would typically be sized using “story points,” an estimate of the effort that will be required to complete them, whereas the Sprint Backlog is a collection of tasks. Therefore all of these backlogs can be modelled as stocks of fungible “tasks” in our APD model. These structures of the model are shown in Figure 40:
A project begins with an initial amount of work (in unit of “tasks”) in the Product Backlog. A subset of those tasks is moved into the Release Backlog at the start of a release cycle. Each sprint in turn takes a subset of the Release Backlog into the Sprint Backlog to begin development work.
Work within a sprint follows the dynamics of the Rework Cycle, described in section 4.2. The sprint rework cycle in our APD model is shown below in Figure 41 - Sprint Rework Cycle.
Also, as part of this gene, we assume that the recipient of the software product is willing to accept the delivery of software releases as integrated “feature sets” or sets of client-valued functionality.