The problem of change is exacerbated (Kontio et
al., 2004) by long development cycles that yield
code that may be well written but does not meet user
expectations.
Agile methods were developed to adapt and
thrive on frequent changes. The rapidly changing
Internet-based economy demands flexibility and
speed from software developers, something not
usually associated with plan-driven development.
The main motivations to use agile methods, as
expressed in the “agile principles” (Agile Manifesto,
2001), are: increment of customer satisfaction;
flexibility and change acceptance in requirements;
frequent delivery of valuable working software to
customers; and collaboration of business people and
developers.
Many development teams have successfully used
agile development to build quality software, but
often these projects have failed to effectively
contribute to overall company success. This failure
is due to the fact that most company’s strategic
planning processes have not been aligned to take
advantage of the flexibility and adaptability of agile
development (Rand and Eckfeldt, 2004).
3 BUSINESS EXPECTATIONS
RISKS IN AGILE
DEVELOPMENT
In commercial environments, business goals are
usually managed through a formal contract signed
between developers and customers. In particular,
companies that outsource development are used to
working under contract in order to manage the
customer-developer relationship.
However, defining a traditional contract can be
difficult in agile methods, because it would require
to determine and fix system details early on during
the development process. Instead, agile methods aim
to achieve business goals using iterative
development and close communication between
customer and developer.
Indeed, a key factor for the appropriateness of
agile methods is contractual obligation; if the
requirements for work to be performed are part of a
legal contract, an agile method may be inappropriate
since requirements are malleable (Cram and Bohner,
2005).
The challenge of increasing risks visibility when
using agile methods is how to define early in a
project the rules and conditions that will determine
its development, without hampering the iterative and
exploratory nature of agile methods. A customer
may be sure that agility can help, but still needs to
manage and mitigate the risk of failing the business
expectations (about functionality, time-to-market,
budget, and software quality). And this means that
developers need to understand, and commit to, the
project’s business goals, not just to mere
deliverables.
Some work has been already devoted to defining
business goals for agile projects and to enhance risk-
visibility between customers and developers: Agile
Contracts (Beck and Cleal, 1999), Agile
Procurement (Jamieson et al., 2005), and Risk-
Driven Method for XP Release Planning (Li et al.,
2006). However, we will argue that a more
promising staring point is commitments management
(Kontio et al., 1998).
4 COMMITMENTS
MANAGEMENT
Software development is always a challenging
undertaking and it requires high commitment from
individuals who participate in it. Software
development often involves new technology,
challenging or unknown requirements, and tight
schedules – making it particularly prone to several
types of risk (Kontio et al., 2004)(Hartmann and
Dymond, 2006).
The term commitment describes goals, forms of
cooperation, responsibilities, decisions, and so on,
that stakeholders agree upon in a project;
commitments scope may include all critical aspects
in the project.
Commitments management (Kontio et al., 1998)
is an approach that uses commitments among
customers and developers to define a list of
agreements as baseline for the project, with the goal
of mitigating the risk of losing sight of the original
project motivations. The commitment specification
defines all agreements and establishes a common
view of the project among stakeholders
Commitments management (as part of project
management) is the specification, formalization, and
follow-up of commitments during the whole project,
with the purpose of aligning the final product with
the business strategy and goals that motivate the
software project.
Software contracts and plans provide partial
specification of the commitment agreed for the
project. Project plans define budget and timeline,
specify the software process and the risk
management, but don’t consider the business
underlying motivations and how to manage the
problems. Thus, contracts and project plans are
incomplete commitment specifications.
AGILE COMMITMENTS: DEALING WITH BUSINESS EXPECTATIONS RISKS IN AGILE DEVELOPMENT
73