Extending Agile Principles to Larger, Dynamic Software Projects: A Theoretical Assessment

Extending Agile Principles to Larger, Dynamic Software Projects: A Theoretical Assessment

Dinesh Batra, Debra VanderMeer, Kaushik Dutta
DOI: 10.4018/978-1-4666-2044-5.ch016
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

The article evaluates the feasibility of extending agile principles to larger, dynamic, and possibly distributed software development projects by uncovering the theoretical basis for agile values and principles for achieving agility. The extant literature focuses mainly on one theory – complex adaptive systems – to support agile methods, although recent research indicates that the control theory and the adaptive structuration theory are also applicable. This article proposes that at least three other theories exist that are highly relevant: transaction cost economics, social exchange theory, and expectancy theory. By employing these theories, a rigorous analysis of the Agile Manifesto is conducted. Certain agile values and principles find theoretical support and can be applied to enhance agility dynamic projects regardless of size; some agile principles find no theoretical support while others find limited support. Based on the analysis and the ensuing discussion, the authors propose a framework with five dimensions of agility: process, design, people, outcomes, and adaptation.
Chapter Preview
Top

Introduction

As business and technology environments change at an unprecedented rate, software development agility to respond to changing user requirements has become increasingly critical for software development performance (Lee & Xia, 2010). Software development agility is the ability of an information system development (ISD) method to create change, or proactively, reactively, or inherently embrace change in a timely manner, through its internal components and relationships with its environment (Conboy, 2009). Agility is an organization’s ability to sense and respond swiftly to technical changes and new business opportunities (Lyytinen & Rose, 2006). At its core, agility means to strip away as much of the heaviness, commonly associated with traditional software-development methodologies, as possible to promote quick response to changing environments, changes in user requirements, and accelerated project deadlines (Erickson, Lyytinen, & Siau, 2005). In response to the need for agility, lightweight agile software development methods have emerged as alternatives to process-heavy plan-based methodologies as organizations seek to deliver software more quickly (Abrahamsson, Conboy, & Wang, 2009), while simultaneously ensuring that the delivered software is of high quality and is closely aligned to the needs of the customer (Larman, 2003).

The call for such methods arose in 2001, with the publication of the Agile Manifesto (http://agilemanifesto.org/sign/display.cgi), while a 2008 survey by Dr. Dobb’s Digest suggests that up to 69% of responding organizations have adopted agile methods in some form, from pilot projects to full deployment of agile methods, and that respondents believe that their use of agile methods result in higher quality deliverables, more productive developers, and more satisfied stakeholders (Ambler, 2008).

Complete Chapter List

Search this Book:
Reset