You are on page 1of 13

CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

AGILE SOFTWARE
DEVELOPMENT: ADAPTIVE
SYSTEMS PRINCIPLES AND
BEST PRACTICES
PETER MESO,
assistant professor of
information systems at Peter Meso and Radhika Jain
Georgia State
University, earned his
Today’s environments of increasing business change require software development methodol-
Ph.D. degree in
ogies that are more adaptable. This article examines how complex adaptive systems (CAS) the-
information systems
ory can be used to increase our understanding of how agile software development practices
from Kent State
can be used to develop this capability. A mapping of agile practices to CAS principles and
University. His
three dimensions (product, process, and people) results in several recommendations for “best
research dealing with
practices” in systems development.
requirements and
software engineering,
the processes of system
development, and ODAY’S SOFTWARE DEVELOPMENT requirements from various sources has led to a
information systems in
underdeveloped
nations appears in
T units face old and new risks, including
shortfalls in real-time performance, ex-
growing interest in their application in devel-
oping large mission-critical software solutions
ternally performed tasks, externally fur- (Baskerville, Ramesh, Levine, Pries-Heje, &
several leading
journals.
nished components, unrealistic schedules and Slaughter, 2003).
budgets, development of wrong or unwanted In this article, we argue that complex adap-
RADHIKA JAIN is information systems (IS) solutions, obsolete tive systems (CAS) theory provides us with a
finishing up her features, and changes in requirements from theoretical lens for understanding how agile or
doctoral work in
multiple sources [including customers, tech- “Internet-speed” development of IS solutions
information systems at
nology, social factors, overhead, and competi- can be used to advantage in volatile business
Georgia State
University. In August
tion (Conboy, Fitzgerald, & Golden, 2005)] that environments. Specifically, we apply several
2006, she begins her need to be implemented at lightning speed principles of CAS theory (Anderson, 1999;
appointment as an (Kwak & Stoddard, 2004). Thus, organizations Highsmith, 1999; Kauffman, 1991) to develop
assistant professor at put a premium on software development ap- a better understanding of agile software devel-
the University of proaches that increase their responsiveness to opment methods. We then use this as a lens
Memphis. Her research business change. through which to develop a set of best practic-
interests include Agile software development methodologies es for software development to improve soft-
business process provide organizations with an ability to rapidly ware process and product quality. The Agile
management,
evolve IS solutions (Highsmith, 1999; Suther- Manifesto (http://agilemanifesto.org/) identi-
healthcare systems,
land & van den Heuvel, 2002). To date, these fies a set of values to improve overall software
software development,
and ubiquitous
methodologies have been employed primarily development. Although the principles driving
computing. Her work in Internet and Web software development these values overlap with the best practices
appears in several contexts (Glass, 2003; Paulk, 2001). However, identified in this article, this article goes a step
leading journals and the growing emphasis on these methodologies’ further to identify a more comprehensive set of
conferences. capabilities to respond to rapidly changing best practices that are grounded in theory and

I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
19
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

span across the three important aspects of soft- and organizational environment. Although ag-
ware development; namely, people, product, ile approaches are not a panacea or the silver
and process. bullet, practices promoted by them shed some
light on how adaptivity can be achieved in soft-
ware development (Paulk, 2001). And although
HEAVYWEIGHT AND LIGHTWEIGHT
lightweight and heavyweight methodologies

A s in the
SOFTWARE DEVELOPMENT
METHODOLOGIES
To bring about some discipline to what can
represent two extremes in software develop-
ment methodology, most development meth-
past with odologies used in organizations can be
otherwise be chaotic processes of software de- positioned between these two extremes
heavyweight velopment, many development methodologies (Bansler & Havn, 2003; Boehm, 2002).
methodologies, have been proposed and adopted in practice. Despite the diversity in their development
organizations These methodologies impose a disciplined pro- practices, agile methodologies in general can
cess on software development with the aim of be characterized as follows (Abrahamsson,
often develop making it more predictable and efficient.These Warsta, Siponen, & Ronkainen, 2003):
their own software development methodologies can be
classified as being either heavyweight or light- ❚ Incremental (small software releases with
customized rapid development cycles)
weight, based on the extent to which they em-
versions of phasize factors such as (1) planning and ❚ Cooperative (a close customer and devel-
these named documentation, (2) well-defined phases in the oper interaction)
development process, (3) composition of the ❚ Straightforward (easy to learn and modify
agile and are sufficiently documented)
development team, and (4) use of well-elabo-
development rated modeling and coding techniques to gen- ❚ Adaptive (an ability to make and react to last-
approaches erate software development artifacts, among moment changes)
to suit their others (Blum, 1996; Highsmith, 1999; Krutch- Table 1 presents a brief description of four
en, 2001). leading agile development methodologies.
development
❚ Heavyweight methodologies promote up-
needs and
front overall planning of the roles to be CAS THEORY AND SOFTWARE
organizational played, activities to be performed, and arti- DEVELOPMENT
environment. facts to be produced (Germain & Robillard, A complex adaptive system (CAS) is defined as
2005). Proponents of these methodologies one that is capable of adapting to its external
argue that planning leads to lower overall environment and its internal state so that it sur-
cost, timely product delivery, and better soft- vives despite the circumstances that befall it.
ware quality. Traditional methodologies such Studies of CAS are based on the holistic
as waterfall methodology and RUP (Rational premise that there is more to a holistic system
Unified Process) to some extent are classified than the sum of its components and linkages
in this category (Germain & Robillard, 2005). (Simon, 1996). CAS shows properties that are
❚ Lightweight or agile methodologies put truly emergent, irreducible to explanations that
extreme emphasis on delivering working take into account only those properties of its
code or product while downplaying the lower level components. From a review of CAS
importance of formal processes and compre- literature (Anderson, 1999; Arthur, Defillipp, &
hensive documentation. Proponents of these Lindsay, 2001; Chiva-Gomez, 2004; Cilliers,
methodologies argue that by putting more 1998, 2000; Eoyang, 1996; McKelvey, 1999,
emphasis on “actual working code,” software 2001; Rhodes & MacKechnie, 2003; Simon,
development processes can adapt and react 1996; Tan, Wen, & Awad, 2005), the major princi-
promptly to changes and demands imposed ples of CAS can be summarized as follows:
by their volatile development environment
1. Principle of open systems.A CAS is an open
(Krutchen, 2001).
system. It interacts with its environment. It
In addition to various named agile method- exchanges energy or information with its
ologies (such as eXtreme Programming [XP] environment and operates at conditions far
and Scrum), numerous homegrown agile meth- from equilibrium.
odologies belong to this category.As in the past 2. Principle of interactions and relationships.
with heavyweight methodologies, organiza- Constituent elements of a CAS interact
tions often develop their own customized ver- dynamically and exchange energy or infor-
sions of these named agile development mation with each other. Even if only spe-
approaches to suit their development needs cific elements interact with a few others,
20 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

TABLE 1 Leading Agile Development Methodologies

Methodology Description

Extreme programming A lightweight process targeted at development projects that are ill understood or
(XP) have rapidly changing requirements (Beck, 1999)
Empowers developers to confidently respond to changing customer requirements,
even late in the life cycle, emphasizing teamwork
Managers, customers, and developers are all part of a team dedicated to
delivering quality software
Improves a software project development process in four essential ways:
communication, simplicity, feedback, and courage
Its development process has various unique features such as requirements as
stories, pair programming, test-driven design, frequent unit testing, and
continuous integration
Primary activities in each XP iteration cycle include new design, error fix, and
refactoring (Alshayeb & Li, 2005)
Adaptive Software Places emphasis on production of high-value results emanating from the rapid
Development (ASD) adaptation to both external and internal events, rather than on the optimization
of process improvement techniques
Targets development teams in which competition creates extreme pressure (both
high-speed and high-change) on the delivery process
Adaptation is significantly more important than optimization (Highsmith, 1997,
1999)
Feature-Driven Uniquely sees very small blocks of client-valued functionality, called features,
Development (FDD) organizing them into business-related groupings
Focuses on producing working results every two weeks and facilitating
inspections; managers know what to plan and how to establish meaningful
milestones (Palmer & Felsing, 2002)
Reduces risk by emphasizing the frequent delivery of tangible working results
Provides for detailed planning and measurement guidance; promotes concurrent
development within each increment
Its motto is “design by feature, build by feature” (Coad, LeFebvre, & Luca, 2000)
Scrum A team-based approach for controlling the chaos of conflicting interests and needs
to iteratively, incrementally develop systems and products when requirements
are rapidly changing
Can improve communications and maximize cooperation
Is scalable from small single projects to entire organizations (Rising & Janoff,
2000)

effects of these interactions are propagated 4. Principle of emergent behavior. Because


throughout the CAS.The behavior of such a interactions among different entities of a
system is determined greatly by the nature CAS are rich, dynamic, nonlinear, and fed
of these interactions, and not simply by back, the behavior of the CAS as a whole
what is contained within these elements. cannot be predicted simply from an inspec-
3. Principle of transformative feedback loops. tion of its components. To understand the
Interactions across a CAS’s boundary result implications of these interactions and make
in many direct and indirect transforming predictions about a CAS’s behavior, the
feedback loops among the components of notion of “emergence” and “emergent
behavior” is needed. Unpredictable and
the system. Change in one part of the sys-
novel ideas may emerge (which may or may
tem is transmitted via its boundaries to
not be desirable) as a result of these interac-
other parts of the system, causing recipi-
tions, but by definition they are not an indi-
ents of feedback information to change or
cation of malfunction. These emerging
react in some fashion. These secondary ideas should not be censored simply
changes (reactions) are transmitted back to because they were unanticipated.
the originator, causing the originator to 5. Principle of distributed control.A CAS cannot
change again, and so on. Within an organi- thrive when there is too much central con-
zational context, feedback loops have the trol.This certainly does not imply that there
potential to spur continuous improvement should be no control; rather, control should
and provide a shared sense of community be distributed throughout the system.
involvement. However, one should not go overboard
I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
21
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

with notions of self-organization and dis- providing an argument for a complex adaptive
tributed control. view of software development, he states:
6. Principle of shallow structure. A CAS
… our old measures of product quality
works best with shallow structure. This
and process efficiency are always unre-
should be interpreted to suggest that a CAS
alistic and frequently destructive when
should have some structure, but only the

T
they are applied to development of
minimal amount of structure necessary for
his complex, adaptive software products …
it to effectively achieve its objectives.
we must change the way we look at the
implies that 7. Principle of growth and evolution. In a
world of software development and
agile methods CAS, survival is enhanced through continu-
business processes.
ous growth and evolution occurring in
used to foster minuscule increments as the system
organizational responds to emerging internal and external MAPPING CAS THEORY TO COMMON
environmental changes. This principle fos- AGILE DEVELOPMENT PRACTICES
adaptation
ters adaptation by allowing the CAS to pay In this section we describe seven commonly
must allow for immediate attention to the needs of its followed agile practices and how various CAS
dynamic and immediate surroundings. In doing so, the principles provide insights into each of them.
effective CAS reorients itself incrementally to more The process of developing IS solutions com-
distant/remote environmental conditions. prises interactions among three dimensions:
interplay Adaptation thus occurs in minuscule incre- 1. Stakeholders in a development project
among them. mental steps. (people)
2. Process-related rules/guidelines used to
CAS AND LIGHTWEIGHT provide a direction to the development
METHODOLOGIES effort (process)
Truex et al. (1999), Highsmith (1999), and 3. Software artifacts generated as a result of
Kauffman (1995) posit that enterprise informa- this development effort (product)
tion systems supporting today’s digital econo- Software development evolves through a
my are highly complex and exhibit a need to be myriad of complex interactions among these
adaptive. They also point out that developing three dimensions. This implies that agile meth-
and improving IS solutions is in itself a com- ods used to foster organizational adaptation
plex-adaptive task that exhibits the basic prop- must allow for dynamic and effective interplay
erties of a CAS. Although there is little among them. CAS theory provides an under-
published research on the application of CAS pinning for dynamic interplay among people,
theory in software development, there is an in- process, and product dimensions and informs
creasing consensus that CAS informs the shift how agile methods enable such interplay. The
toward agile software development methodol- result is a mapping of agile practices and CAS
ogies. For example, Gerber (2002) states: principles, as summarized in Table 2.
… by incorporating the principles of Note that the first CAS principle (open sys-
self-organization called isomorphies, tems) essentially applies to most of the agile
new methodologies … including ob- practices discussed below. As will be apparent
ject-orientation, eXtreme Programming from the following discussion, agile methodol-
(XP), and lightweight methodologies ogies place a heavy emphasis on open interac-
use some concepts and principles of tions among various stakeholders (including
natural complex systems … that’s why development team, management, and custom-
they produce better results than con- ers) to receive feedback and to manage the life
cycle of a development project. Agile software
ventional methodologies if they are ap-
development as a whole therefore exhibits this
plied in appropriate areas.
behavior of open systems, so this principle is
Highsmith (1999), in his book on adaptive not associated with any of the specific practic-
software development, suggests emergent or- es in Table 2. Similarly, the sixth CAS principle
der as an alternative to a belief in and a depen- (shallow structure) is not included in Table 2
dence on imposed order. By the same token, because it does not fit pragmatically in any one
Eoyang (1996) describes how CAS theory row or apply to any one agile practice. Rather,
helped unravel complicated issues that threat- it provides a framework for various agile prac-
ened to stymie a customer support system’s tices such as continuous frequent feedback,
GUI (graphical user interface) development. In minimalist design teams, etc. For example,
22 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

TABLE 2 Mapping Agile Practices along Three Dimensions (People, Process, and Product)

Best Practices
Agile Product Dimension Process Dimension People Dimension
# Practice CAS Principle (Artifact) (Development) (Software Team)

1. Frequent releases Principle of Develop the software artifact Reevaluate development Reevaluate team configuration
and continuous growth and iteratively, allowing it to methodology frequently. Best frequently, scaling and
integration evolution acquire increasing practice is to start simple and transforming team composition
complexity in size and modify methodology as the need and size as it progresses through
capability in each for advanced or different various stages of development.
succeeding iteration. processes and tools emerges.

2. Need for frequent Principle of Iteratively test and validate Time-box development efforts, use Pragmatically involve stakeholders
feedback transformative software artifact, making measurable process milestones, and fellow developers by
feedback loops necessary improvements to and evaluate process carefully seeking and listening to
it. effectiveness and efficiency their comments and concerns.
continuously.

3. Proactive handling Principle of Allow the solution being Allow actual process employed to Allow actual team configuration to
of changes to the emergent order developed to be responsive emerge or be determined by emerge or be determined by
project to the emerging changes in immediate local needs. In other immediate local needs.
requirements project requirements by words, process tailoring needs to
taking into account be done to take into account
feedback gained from the contextual factors.
exercise of frequent
releases and integration.

4. Loosely Principle of Strive for componentization Use iterative, time-boxed, and/or Delegate responsibility and
controlled distributed and loosely coupled modular development process. decision making to local
development control software artifacts. development units.
environment

5. Planning kept to a Principle of Minimal product planning Process planning done where and Minimal human resource and
minimum growth and done where and when when necessary; always some stakeholder involvement
evolution necessary; limited process assessment undertaken, planning, performed where and
emphasis on but in minimalist fashion. when necessary; regular
documentation, but some assessment of efficacy of project
documentation is required. team composition and size.

Principle of Let actual solution emerge Let actual process emerge Allow for team interactions and
emergent order naturally rather than from naturally rather than from heavy working patterns to emerge
heavy planning and planning and method naturally.
solution design. engineering.

6. Enhancing Principle of Allow for manageable Allow for manageable Involvement in agile development
continuous growth and experimentation in product experimentation with various effort enhances individual IS
learning and evolution design and for learning processes and for learning from development skills.
continuous from the mistakes made. mistakes made. Learning
improvement Learning results in better increases process effectiveness
quality product. and efficiency.

Principle of Allow for comparison of Allow for comparison of agile Allow for pairing or teaming up of
interactions and artifact solutions from methods/processes from current developers. Teamwork enhances
relationships current and past efforts. and past efforts. This fosters learning, increases competence,
Comparison fosters reuse reuse and enhances continuous and enhances communication.
and enhances continuous improvement of existing agile
improvement of previously methods.
developed solutions.

7. Emphasis on Principle of path Foster an environment that Let the process that is most Let the team configuration that
working of least effort simplifies and enhances the effective for rapid production of leads to the most rapid
software product (based on Zipf, delivery of a functional, a working solution prevail. production of an effective
1949) error-free IS solution. Emphasis on not fixing emergent working solution without
process if it remains effective. forceful centralized control
prevail.

I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
23
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

using minimal structure (i.e., teams without a seen as a way of increasing customer support
deep hierarchy), software development teams and satisfaction (Beedle et al., 2001).
are able to seek and receive feedback frequent- Best practices supported by the CAS princi-
ly and more quickly. ple of growth and evolution for this agile prac-
tice are thus:
❚ Develop the IS solution iteratively, with each
S uccessful
Frequent Releases and Continuous
Integration
Literature on agile software development sug-
iteration being focused on adding some well-
defined capability to the continuously evolv-
completion gests that for a complex systems development ing IS solution.
of each project to be successful it should be imple- ❚ Start with a simple set of development pro-
subsequent mented in small steps, each with a clear mea- cesses and tools and modify development
sure of successful achievement and with an strategy in successive iterations as the need
iteration
option of rolling back to a previous successful for more advanced procedures and tools
boosted the step upon failure (Larman & Basili, 2003). In becomes necessary.
development addition, conducting frequent releases is cru- ❚ Start with a minimalist development team
teams’ cial to accommodate constantly changing re- and scale up and/or reconfigure team’s struc-
quirements. Thus, adaptation needs to occur in ture and composition as the project grows in
confidence and miniscule, incremental steps. size and complexity.
helped to The CAS principle of growth and evolution
reduce the provides a theoretical backing for such behav- Need for Frequent Feedback
ior in agile software development. This is evi-
project risks. Software development by its nature involves in-
denced in the product dimension in the form teractions among stakeholders, development
of incremental development of artifacts. In the tools, software components in the solution be-
process dimension, it is evidenced in the form ing developed, and interactions of stakeholders
of time boxes — finite modular periods of de- with these tools, solution, or both. These inter-
velopment time — comprised of identifiable actions are message exchanges occurring be-
process steps and tools.These time boxes or it- tween entities related or interconnected in
erations become more intricate as the project some fashion to each other. Consequently,
matures due to the increasing complexity in feedback comes not only from clients and oth-
the artifact being developed. In the people di- er significant stakeholders but also from mes-
mension, this principle is evidenced as a finite sages (such as error messages) received from
configuration of development personnel, the the components that make up the IS solution,
composition and structure of which may radi- from development tools being employed,
cally alter as the project shifts from iteration to and/or from artifacts that document the devel-
iteration. opmental details within the process (High-
Grenning (2001) reported on a process-in- smith, 1999).
tensive company that introduced XP. After this When a development team establishes
company had launched XP, development teams transforming feedback loops across a boundary
carried out monthly releases and continuously that divides the team from users, other devel-
integrated new features into the existing prod- opment agents, and stakeholders, a complex
uct. Successful completion of each subsequent adaptive development environment is created.
iteration boosted the development teams’ con- In a bid to remain responsive, the development
fidence and helped to reduce the project risks. team frequently adjusts its focus, structure, and
Team members knew exactly what was hap- composition to best address these emerging re-
pening and had a good grasp of the progress quirements. The feedback loops also generate
made at all times in the course of development creative tension that propels the development
(Grenning, 2001). Cao et al. (2004) also ob- team toward developing novel IS solutions that
served that development teams employing are suited to addressing the emerging require-
agile software development methodologies fo- ments. To take advantage of feedback and to ac-
cused primarily on delivering production code commodate changes as a result of feedback,
that supports end-to-end functionalities rather software processes also need to be flexible and
than developing heavily integrated software easily changeable. These characteristics are a
modules. This practice was observed also at manifestation of the principle of transformative
two software giants, Netscape and Microsoft feedback loops in the people, product, and pro-
(MacCormack, Verganti, & Iansiti, 2001). It is cess dimensions of agile software development.
24 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

According to MacCormack et al.’s (2001) requirements allow software artifact to remain


study of IS development at Netscape and Mi- current and reflective of the changing business
crosoft, seeking feedback from various stake- environment.
holders was considered crucial to the fate of a One of the major attributes of agile soft-
project. Both organizations placed heavy em- ware development methodologies is that they
phasis on user feedback and carried out alpha embrace changes in requirements from various
I n a bid and beta testing to obtain feedback from poten-
tial users. These development teams had multi-
sources, even in later development phases
(Conboy, Fitzgerald, & Golden, 2005). This un-
to remain ple mechanisms to accommodate feedback derscores an emphasis of agile methods on
responsive, the from various stakeholders. One such mecha- willingness to embrace emergent requirements
development nism was to prioritize the elements of the re- and unanticipated changes regardless of when
team ceived feedback and incorporate them into they occur in a project’s lifetime. To ensure de-
subsequent iterations based on their criticality livery of a “nonobsolete” solution, it is impor-
frequently (MacCormack et al., 2001). Cao et al. (2004) re- tant that any changes to project requirements
adjusts port that when it was not possible to seek feed- are handled proactively by making necessary
its focus, back directly from the customers, the adjustments to the development process (pro-
structure, and development team had their project managers cess dimension) and the development team
and business analysts (who had direct contact (people dimension). This discussion implies
composition to with customers) act as the surrogate custom- that the process and people dimensions con-
best address ers. In both instances, the need for feedback form to the CAS principle of emergent order.
these emerging was paramount. Also, adjustments and modifications to the de-
Based on this discussion, suggested best
requirements. velopment processes and the team undertak-
practices are: ing those processes shape outcomes of the IS
❚ Test and validate an IS solution at the end of solution (product dimension). In this regard,
each development iteration to obtain feed- the IS solution also exhibits “emergent order.”
back on its efficacy and on required modifi- At Netscape and Microsoft, systemic chang-
cations. es in a project’s definition and basic direction
❚ Time-box the development process and use were managed proactively (MacCormack et al.,
measurable process milestones within the 2001). For example, during the development
development iteration. of a Web browser, end users were invited to
❚ Obtain pragmatic involvement from stake- play with the browser. These users had not
holders and fellow developers by carefully used such software before. As the users played
seeking and listening to their comments and around with the beta versions of the browser
concerns. software, they gained more understanding re-
These approaches have the potential to en- garding its limitations and potential capabili-
hance programmatic and frequent feedback ties. These users then provided development
elicitation that allows agile development to re- teams with numerous suggestions for improve-
main responsive to the emergent business envi- ment of the software. Had the development
ronment. teams ignored users’ feedback, neither of these
companies would have been able to deliver
browser software that was truly reflective of
Proactive Handling of Changes to the
their external users’ emerging requirements.
Project Requirements
The CAS principle of emergent order helps ex- Based on the above discussion, the best
plain the phenomenon of unanticipated re- practices underpinned by the principle of
quirements and capabilities evident in IS emergent order are:
solutions. Within the software development ❚ Allow for sufficient flexibility in a develop-
context, CAS theory suggests that unanticipat- ment process.
ed and perhaps novel requirements may ❚ Allow for sufficient flexibility in a develop-
emerge in software development projects. The ment team to facilitate quick response to
desirability of these emergent requirements is immediate local needs.
context sensitive. Nonetheless, they are not an ❚ Accommodate emerging requirements in the
indication of malfunction or malformation, and IS solution to develop a solution that is reflec-
thus need not be censored. These emergent tive of current business needs.
I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
25
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

Loosely Controlled Development the development process while lowering the


Environment number of bugs. Any bugs found were made
CAS theory suggests that in conditions of high part of the next iteration.
uncertainty, flexible and adaptive organization- The recommendations for best practice
al units are more appropriate than rigid and based on the above discussion are:
static ones. Organizational units operating in
❚ Leadership and decision making on a soft-
A lthough
such situations tend to flourish when distribut-
ed decision making and control mechanisms
are utilized across a network of interconnected
ware development project ought to be
decentralized, with more decisions being
on the surface made at local units where problems are
entities (Rihania & Geyer, 2001). Agile develop-
agile ment teams exhibit flexible and distributed encountered.
methodologies control structures. This type of structure tends ❚ Successive iterations in a development pro-
to be minimal and highly accommodating. This cess need to be fairly independent or loosely
may appear coupled.
in itself is reflective of adherence to the CAS
to follow principle of distributed control. ❚ The structure of an IS solution being devel-
unplanned and Published studies on agile software devel- oped needs to foster componentization,
loose coupling, and high cohesion within
undisciplined opment provide support for this principle. For
the finished product.
example, project managers at FinApp (Cao et
development
al., 2004) believed that deep hierarchical orga-
practices, nizational structure could lead to unresponsive Planning Kept to a Minimum
these environments with high inertia. Eoyang (1996) Given the volatile and rapidly changing busi-
reports that better quality user interfaces and ness environment, it’s practically impossible to
methodologies
greater efficiencies in development were specify ahead of time everything that should go
emphasize a achieved when the IS development team was into a new product or release. CAS theory lays
minimum, reorganized to allow for localization of deci- significant emphasis on the emergent order —
sion making. Flexible work setting, focus on re- the principle of emergent order — accounting
but sufficient,
sults rather than micro-management, and for minimal planning practice to accommodate
amount of empowering people who are actually doing various unforeseen requirement changes. Al-
planning the work were seen as key factors affecting de- though on the surface agile methodologies may
veloper morale and motivation (Cao et al., appear to follow unplanned and undisciplined
within each
2004; Cusumano & Yoffie, 1999). development practices, these methodologies
iteration. Cusumano and Yoffie (1999) also observe emphasize a minimum, but sufficient, amount
that managers at Microsoft and Netscape tried of planning within each iteration.
not to control the development process too rig- For example, XP emphasizes iteration-cen-
idly in order to be responsive. At Microsoft, tric planning. Rather than planning, analyzing,
MacCormack et al. (2001) note that developers and designing for the far-flung future (which is
could exercise veto powers at the local level highly prone to change), XP exploits reduction
based on their technical expertise in a problem in the cost of changing software to do all of
domain being addressed. At Netscape, senior these activities a little at a time, throughout the
developers along with members of the market- development process (Beck, 1999). The scope
ing department could assign higher priorities of the planning process is kept primarily to the
to their favorite features and the product man- current iteration. Feature-Driven Development
agers, engineers, and developers could negoti- (FDD) also advocates for detailed planning and
ate IS solution terms with their clients (the measurement guidance within each “design by
marketing department, for example) when feature, build by feature” increment (Coad et
things didn’t go quite as per plan (MacCormack al., 2000). Only after executing and evaluating
et al., 2001). the outcome of the current plan are plans for
These observations might lead one to think subsequent iterations generated (Martin,
about the role project managers should play in 2000). These practices were observed at
agile development teams. Fowler (2002) and Netscape and Microsoft, where managers
Blotner (2003) suggest that a manager can and clearly believed that some planning, albeit min-
should help the team be more productive by imal, was necessary to build complex products
offering some insight into the ways in which (Cusumano & Yoffie, 1999).
things can be done in an agile environment. Within the product, process, and people di-
Grenning (2001) observed that having senior mensions, suggested best practices are that (1)
people monitor the team’s progress at a month- the planning for the IS solution, (2) the actual
ly design-as-built review meeting accelerated processes used to develop the solution, and
26 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

(3) the structure and composition of the devel- ❚ Tolerance for manageable experimentation
opment team are best addressed within each with various approaches and focus on attain-
development iteration. This keeps planning to ment of short-term objectives enhances
a minimum and steers the focus to the immedi- learning by doing, allows the development
ate needs of the development project. team to fine-tune the processes and tools
used for the development effort, and steers

A nother Enhancing Continuous Learning and


Continuous Improvement
the development project toward expected
outcomes.
❚ Interactions among members of the develop-
practice that CAS theory stipulates that adaptation is a learn-
is a feature of ment team and various stakeholders will fos-
ing mechanism. It occurs because a CAS is able
ter an exchange of ideas and second-order
agile software to learn about changes in its environment or its
learning.
internal state and react to those changes. Addi-
development tionally, each successful adaptation is rein- This practice also fosters the emergence of natu-
is the minimal forced for reuse in similar future situations.The ral, unforced collaborative partnerships, thereby
emphasis on CAS principle of growth and evolution pro- leveraging productivity, creativity, and quality.
vides a theoretical underpinning for such be-
documentation.
havior. Agile methodologies put a great Emphasis on Working Software Product
emphasis on people and their talents, skills, Another practice that is a feature of agile soft-
and knowledge, suggesting that for agile devel- ware development is the minimal emphasis on
opment to be effective team members must be documentation. The motivation for this prac-
responsive, competent, and collaborative (Boe- tice is twofold: (1) to make the development
hm, 2002; Cockburn & Highsmith, 2001). team more effective in responding to change
Adaptation occurs by continuous reactions and (2) to reduce the cost of moving informa-
to changes in environmental conditions sensed tion between people (Cockburn & Highsmith,
locally by specific entities within the system. 2001). Martin (2000) suggests that teams
Because these entities tend to be specialized, should create detailed plans that are meaning-
they need to interact with other entities to en- ful only for that iteration. Grenning (2001) ar-
act adequate behavior to bring about adapta- gues that a good way to protect future software
tion in the CAS. Consequently, relationships maintainers is to provide them with clean and
within the CAS result in information exchange simple source code, rather than with binders
that produces learning. Different units of a de- full of out-of-date paper, and to keep the docu-
velopment team must interact with each other. mentation at a high level so that usual mainte-
For example, in XP, developers with different nance changes and bug fixes don’t affect it.
levels of experience and skill are typically Cusumano and Yoffie (1999) found that manag-
paired for development purposes (Cao et al., ers at Microsoft and Netscape tolerated incom-
2004; Grenning, 2001). It is suggested that plete documentation because they put a
such pairing fosters learning for all involved premium on creating a working product.
parties. To facilitate this kind of learning, how- This is an area in which CAS theory pro-
ever, the communication capabilities of devel- vides weak support. Hence, we borrow from
opers become crucial (Cao et al., 2004). the theory of “path of least effort” offered by
Various tasks within a development process are Zipf (1949), who explains this emphasis on a
interrelated and dependent on each other. Ef- working product with minimalist documenta-
fective completion of one task impacts comple- tion orientation:
tion of others. Thus, agile methodologies’ Nothing is gained by calculating a par-
emphasis on continuous learning and improve- ticular path of least effort to a greater
ment finds theoretical support in the CAS prin- degree of precision, when the added
ciple of interactions and interconnectedness, work of so calculating it is not more
on the one hand, and that of growth and evolu- than offset by the work that is saved by
tion, on the other hand. using the more precisely calculated
Inferences from this discussion suggest path.
that:
Consequently, it is best to let the “path of
❚ Componentized IS solution development fos- least effort” emerge in the course of complet-
ters reuse and enhances learning from past ing a development task.This helps us understand
successes and failures in developing effective the agile practice of minimal emphasis on docu-
components. mentation, and also on formal planning, while
I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
27
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

putting heavy emphasis on building a working succinctly. We see this as an opportunity for fu-
product. ture research in this domain.
This discussion prompts the identification
of the following best practices:
CONCLUSION
❚ Foster an environment that simplifies and As Highsmith (1999) succinctly points out,

B y
enhances delivery of a functional, error-free
IS solution.
❚ Let the development process that is most
without a clear understanding of underlying
theoretical principles behind software devel-
opment approaches, organizations are at high
identifying the effective at producing a working solution risk of being nonadaptive. This article contrib-
correct set of prevail. utes to the literature on complexity science
metrics and ❚ Allow for working relationships of develop- and IT development by providing a clear un-
ment team members to produce natural con- derstanding and appreciation of the sources,
mechanisms to figurations that foster rapid production of a nature, and types of interdependencies be-
manage their working solution. tween individuals, organizations, and IS solu-
inter- tions within the context of fast-paced agile
dependencies, Summary software development. Based on discussion
In summary, CAS theory provides insights into presented in this article, we argue that organi-
project zations that use heavyweight methodologies
how agile development methods foster deliv-
managers can ery of responsive and highly evolvable soft- need to reconsider these agile practices, rather
effectively ware solutions. Such insights are crucial when than discounting them as “hacking,” and inte-
identifying metrics for agile software develop- grate them as suitable.
steer the Opportunities for future research include
ment, because the same CAS principles may
project toward govern these metrics. The metrics so devel- exploring the finer differences in how various
desired oped ought to capture each of the three dimen- agile software development methodologies
sions of software development; namely, support the proposed best practices; the devel-
outcomes as
people, process, and product. However, as in- opment of a customizable set of metrics for ag-
planned. dicated in the previous section, these three di- ile software development methodologies; and
mensions are not completely independent of the identification of mechanisms for embed-
each other. Thus, these metrics should be iden- ding these metrics into automated develop-
tified and developed in such a way that they in- ment tools and integrated development
corporate the interactions across all of these environments commonly employed in agile
dimensions. For example, the principle of software development projects.
emergent behavior is applicable to all three di- Other areas that need to be addressed in-
mensions via the common practice of proac- clude the development of design principles
tive handling of changes to the project that are also rooted in CAS theory, the empiri-
requirements. This has direct implications not cal evaluation of these principles to establish
only for researchers but also for practitioners. their effectiveness and rigor, and the identifica-
By identifying the correct set of metrics and tion of various metrics to assess product quali-
mechanisms to manage their interdependen- ty and process efficiency based on CAS theory.
cies, project managers can effectively steer the This understanding can also be used to inform
project toward desired outcomes as planned. us about why certain agile practices are more
A key limitation of this article is that it stops amenable than others. Availability of this
short of deriving and validating metrics for ag- knowledge can make the tailoring of agile prac-
ile software development for the theory-based tices more informed, rather than based simply
best practices suggested. However, it does on intuition. ▲
present a basis upon which such metrics can
be developed. The argument here is that CAS
theory, as presented in this article, is an effec- References
Abrahamsson, P., Warsta, J., Siponen, M. T., &
tive theory upon which to underpin such met-
Ronkainen, J. (2003). New Directions on Agile
rics. The discussion of how these theory-based
Methods: A Comparative Analysis. Paper
best practices could be implemented within presented at the 25th International Conference
each of the three core dimensions of an agile on Software Engineering, Portland, Oregon.
software development undertaking — people, Alshayeb, M., & Li, W. (2005). An empirical study of
process, and product — provides a starting system design instability metric and design
point for the elaboration and refinement of evolution in an agile software process. Journal
metrics that can capture each best practice of Systems and Software, 74(3), 269–274.

28 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

Anderson, P. (1999). Complexity theory and Cusumano, M., & Yoffie, D. (1999). Software
Organization Science. Organization Science, Development on Internet Time. IEEE Computer,
10(3), 216–232. 32(10), 60–69.
Arthur, M., Defillipp, R., & Lindsay, V. (2001). Eoyang, G. (1996). Complex? Yes! Adaptive? Well,
Careers, Communities, and Industry Evolution: maybe … . Interactions, 3(1), 31–36.
Links to Complexity Theory. International Fowler, M. (2002, March). Agile Development: What,
Journal of Innovation Management;, 5(2), Who, How, and Whether, from http://www.
239–256. fawcette.com/resources/managingdev/
Bansler, J., & Havn, E. (2003). Improvisation in interviews/fowler/
Action: Making Sense of IS Development in Gerber, M. (2002). Keynote Speech: Lightweight
Organizations. Paper presented at the Methods and Their Foundations in Chaos
Theory. Paper presented at the 6th IEEE
International Workshop on Action in Language,
International Enterprise Distributed Object
Organisations and Information Systems (ALOIS
Computing Conference (EDOC 2002), Ecole
2003), Linköping, Sweden.
Polytechnique Fédérale de Lausanne (EPFL),
Baskerville, R., Ramesh, B., Levine, L., Pries-Heje, J.,
Switzerland.
& Slaughter, S. (2003). Is “Internet-speed”
Germain, E., & Robillard, P. N. (2005). Engineering-
software development different? IEEE Software, based processes and agile methodologies for
20(6), 70–77. software development: a comparative case
Beck, K. (1999). Embracing Change with Extreme study. Journal of Systems and Software,
Programming. IEEE Computer, 32(10), 70–77. 75(1–2), 17–27.
Beedle, M., Bennekum, A. V., Cockburn, A., Glass, R. (2003). Questioning the Software
Cunningham, W., Fowler, M., Highsmith, J., et al. Engineering Unquestionables. IEEE Software,
(2001). Principles behind the Agile Manifesto. 20(3), 119–120.
Retrieved Feb 15th, 2004, from http:// Grenning, J. (2001). Launching Extreme
agilemanifesto.org/principles.html Programming at a Process-Intensive Company.
Blotner, J. (2003). It’s More than Just Toys and Food: IEEE Software, 18(6), 27–33.
Leading Agile Development in an Enterprise- Highsmith, J. (1997). Messy, Exciting, and Anxiety-
Class Start-Up. Paper presented at the Agile Ridden: Adaptive Software Development.
Development Conference (ADC 2003). American Programmer, X(1).
Blum, B. (1996). Beyond Programming: To a New Highsmith, J. (1999). Adaptive Software
Era of Design: Oxford University Press. Development: A Collaborative Approach to
Boehm, B. (2002). Get Ready for Agile Methods, with Managing Complex Systems. New York, NY:
Care. IEEE Computer, 35(1), 64–69. Dorset House Publishing.
Cao, L., Mohan, K., Xu, P., & Ramesh, B. (2004). Kauffman, S. (1991). Antichaos and Adaptation.
How Extreme Does Extreme Programming Scientific American, 256(2), 78–84.
Have to Be? Adapting XP Practices to Large- Kauffman, S. (1995). At home in the Universe:
Scale Projects. Paper presented at the 37th Oxford University Press.
Annual Hawaii International Conference on Krutchen, P. (2001). Agility with the RUP. Cutter IT
System Sciences (HICSS’04), Big Island, Hawaii. Journal, 14(12), 27–33.
Chiva-Gomez, R. (2004). Repercussions of complex Kwak, Y. H., & Stoddard, J. (2004). Project risk
adaptive systems on product design management: lessons learned from software
development environment. Technovation,
management. Technovation, 24(9), 707–711.
24(11), 915–920.
Cilliers, P. (1998). Complexity and Postmodernism:
Larman, C., & Basili, V. R. (2003). Iterative and
Understanding Complex Systems. London;
Incremental Development: A Brief History. IEEE
New York: Routledge.
Computer, 36(6), 47–56.
Cilliers, P. (2000).What Can We Learn From a Theory
MacCormack, A., Verganti, R., & Iansiti, M. (2001).
of Complexity? Emergence, 2(1), 23–33.
Developing Products on “Internet Time”: The
Coad, P., LeFebvre, E., & Luca, J. D. (2000). Java
Anatomy of a Flexible Development Process.
Modeling in Color with UML: Enterprise
Management Science, 47(1), 133–150.
Components and Process: Prentice Hall. Martin, R. (2000). eXtreme Programming
Cockburn, A., & Highsmith, J. (2001). Agile Software Development through Dialog. IEEE Software,
Development: The People Factor. IEEE 17(4), 12–13.
Computer, 34(11), 131–133. McKelvey, B. (1999). Avoiding Complexity
Conboy, K., Fitzgerald, B., & Golden, W. (2005). Catastrophe in Coevolutionary Pockets:
Agility in Information Systems Development: A Strategies for Rugged Landscapes. Organization
Three-Tiered Framework. In R. Baskerville (Ed.), Science, 10(3), 294–321.
Business Agility and Information Technology McKelvey, B. (2001). Energising Order-Creating
Diffusion. IFIP TC8 WG 8.6 International Networks of Distributed Intelligence: Improving
Working Conference. Atlanta, Georgia, USA.: the Corporate Brain. International Journal of
Springer. Innovation Management;, 5(2), 181–212.
I N F O R M A T I O N S Y S T E M S
S U M M E R 2 0 0 6
M A N A G E M E N T
29
CONTEMPORARY PRACTICES IN SYSTEMS DEVELOPMENT

Palmer, S., & Felsing, J. (2002). A Practical Guide Simon, H. (1996). The Sciences of the Artificial
to Feature-Driven Development. Upper Saddle (Third ed.). Cambridge, MA: MIT Press.
River, NJ: Prentice Hall PTR. Sutherland, J., & van den Heuvel, W.-J. (2002).
Paulk, M. (2001). Extreme Programming from a Enterprise Application Integration and Complex
CMM Perspective. IEEE Software, 18(6), 19–26. Adaptive Systems. Communications of the
Rhodes, M. L., & MacKechnie, G. (2003). ACM, 45(10), 59–64.
Understanding Public Service Systems: Is There Tan, J., Wen, H. J., & Awad, N. (2005). Health care
a Role for Complex Adaptive Systems Theory? and services delivery systems as complex
Emergence, 5(4), 57–85. adaptive systems. Communications of the ACM,
Rihania, S., & Geyer, R. (2001). Complexity: an 48(5), 36–44.
appropriate framework for development? Truex, D., Baskerville, R., & Klein, H. (1999).
Progress in Development Studies, 1(3), Growing systems in emergent organizations.
237–245. Communications of the ACM, 42(8), 117–123.
Rising, L., & Janoff, N. (2000). The Scrum Software Zipf, G. (1949). Human Behavior and the Principle
Development Process for Small Teams. IEEE of Least Effort. New York: Hafner Publishing
Software, 17(4), 26–32. Company.

30 W W W . I S M - J O U R N A L . C O M
S U M M E R 2 0 0 6

You might also like