Title: Using Process Definitions to Support Reasoning about Satisfaction of Process Requirements
Publication Date: 7/8/2010
Conference: 4th International Conference on the Software Process (ICSP), Paderborn, Germany, July 2010.
This paper demonstrates how a precise definition of a soft- ware development process can be used to determine whether the process definition satisfies certain of its requirements. The paper presents a def- inition of a Scrum process written in the Little-JIL process definition language. The definition’s details facilitate understanding of this specific Scrum process (while also suggesting the possibility of many variants of the process). The paper also shows how these process details can support the use of analyzers to draw inferences that can then be compared to re- quirements specifications. Specifically the paper shows how finite state verification can be used to demonstrate that the process protects the team from requirements changes during a sprint, and how analysis of a fault tree derived from the Little-JIL Scrum definition can demonstrate the presence of a single point of failure in the process, suggesting that this particular Scrum process may fail to meet certain process robustness requirements. A new Scrum process variant is then presented and shown to be more robust in that it lacks the single of point failure.