Saturday, May 7, 2011

Conceptual Model of Agile Release and Iteration Scheduling

A conceptual model (or domain model) represents entities and relationships between them. The aim of a conceptual model is to express the meaning of terms and concepts used by domain experts to discuss the problem, and to find the correct relationships between different concepts.


In my article (titled: Conceptual scheduling model and optimized release scheduling for agile environments), I proposed a conceptual model of agile planning that defines a common language for experts of agile software development. The aim of the model to provide a global and common view for agile planning and to avoid the different interpretations that are used in the field. This model not only helps to identify and define the main notions but with its precise relationships it can also be used in the design of agile planning applications.



Our proposed conceptual model of agile release and iteration scheduling is visualized with UML notation in the figure below.




Generally, scheduling mandates defining who will realize what and when. Team, Feature and Release concepts answer to these questions in agile release scheduling. In this case, a Feature can be a Requirement or a DefectRepair; and a Release consists of several Iterations. Whereas, Developer, TechnicalTask and Iteration concepts answer to the previous questions in agile iteration scheduling. Due to the structural similarity of release and iteration scheduling,these concepts are expressed with Resource and Workproduct abstract concepts. 



Additionally, schedule constraint must also be defined: resource constraints can be expressed by iteration velocity or the number of developers, temporal constraints can be asserted as attributes (e.g. deadlines) or Precedence and Coupling dependencies. In the figure, shaded objects (like Developer and TechnicalTask) pertain to iteration scheduling only. Objects in italics point out abstract objects (cannot be instantiated), and the lower compartments of entities with double compartment give the list of attributes of each object.


If you are interested in the details, the whole article can be found in the Selected Publications page.