
 
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