Abstract for: Dynamics of Agile Software Development
Software projects have traditionally been problematic in terms of quality, cost and time. Researchers and practitioners have focused on agile software development as an alternative to overcome these problems. Agile methods employ iterative development cycles (typically 20 working-days), interspersed by user feedback. The key to agile projects is the sense of urgency created by the need to deliver at regular intervals. This paper examines this construct, i.e., schedule pressure. We investigate the relationship between the level of agility (length of the iterative cycle) and project outcomes. We argue that project outcomes may suffer either from a team being too inactive, e.g., in sequential or low levels of agility, or from a team being over-active over too long, a situation likely to occur in high levels of agility. We hypothesize that moderate levels of agility are likely to result in the best project outcomes. We test our hypothesis through simulation, and find a U-shaped pattern: performance is better when iteration lengths are 50 working-days, as opposed to 20 working-day cycles widely used in practice. Our analysis provides both theoretical insights into the dynamics of agile software development and practical suggestions for managing these projects.