=Paper=
{{Paper
|id=Vol-341/paper-9
|storemode=property
|title=Framework for Agile Methods Classification
|pdfUrl=https://ceur-ws.org/Vol-341/paper9.pdf
|volume=Vol-341
|dblpUrl=https://dblp.org/rec/conf/caise/IacovelliS08
}}
==Framework for Agile Methods Classification==
Framework for Agile Methods Classification
Adrian Iacovelli and Carine Souveyet
Centre de Recherche en Informatique (CRI),
Université Paris 1 - Panthon Sorbonne,
90 rue Tolbiac, 75013 Paris
{adrian.iacovelli,carine.souveyet}@univ-paris1.fr
Abstract. Agile methods are the response to turbulent software devel-
opment environments and requirements definitions differs in these meth-
ods from what is done in others. The purpose of this paper is to classify
these former methods to measure their impact on requirement engineer-
ing processes. The approach used in this research has several purposes,
the first one is to build a framework to classify and compare the methods.
The second is to propose a component based approach to bring agility
to other methods.
Key words: Agile methods, Method engineering
1 Introduction
In the mid 90’s people start creating new methods because industrial require-
ments and technologies are moving fast and customers were unable to define
they needs in early stages of the projects [1, 2]. These new methods, called the
agile methods are designed to respond to disruptive software environments where
requirements are constantly changing.
Requirements in agile methods are quite different from what is done in clas-
sical plan-driven methodologies. In the latter, requirements are elicited at the
beginning of the project and suppose to remain the same all along the project[3],
whereas in the former, requirements changed constantly. As long as the project
is going on, the requirements definition is detailed. They become more and more
precise at each iteration and changes are integrated through the process. So as
part of an agile process the requirements definition is iterative and incremental.
The scope of this paper is to classify agile methods to compare them and
evaluate their impact on requirement engineering processes. A framework is pro-
posed in section 2 and applied to eight agile methods in section 3 for classify
them. Finally an approach of agile methods reusable components will be pro-
posed in section 4.
2 Classification Framework
2.1 Framework Introduction
The framework for classifying agile methods is based on a faceted approach
similar to the one used in [4, 5]. The aim is to classify methods through four views,
92 Proceedings of MoDISE-EUS 2008
each one representing an aspect of the methodologies. Each view is characterized
by a set of attributes.
Fig. 1. The four views of the agile methods.
As shown in Figure 1, the four views are the decomposition of an agile
method. They capture why and when using agility. In other terms what are ben-
efits to objectives brought by the method agility and what’s the favourable en-
vironment to its application. These aspects are correlated to what is the method
agility and how this agility is expressed in practice. This means what are the
parts of agility concept supported by method guidelines and rules to satisfy ob-
jectives mentioned below. Added to how these rules are derived in activities and
products.
2.2 Usage View
This view captures why using the agile method. The attributes of the view aim
to evaluate all the benefits that the development team and the customer can
gain by applying the method.
According to the quantitative approach used in [6], applying agile methods
can increase a productivity, quality and satisfaction. The methods can provide
guidelines to increase benefits such as productivity gain, end user satisfaction
and quality level respect attributes of the usage view.
Behind the agility concept some aspects can be identified as the integration
of changes in the development process. So agile methods are providing rules and
guidelines to fit turbulent environments and providing the respect of require-
ments and delivery dates in such environments. These three last aspects will be
integrated in this view as attributes.
A study on the limitations of agile methods [7] points out that they provide
a limited support to subcontracting, agile methods can bring some flexibility to
outsourcing contracts. Defining contracts in two parts, a static one and a variable
one creates this flexibility. So let’s carry our interest if some agile rules can be
Proceedings of MoDISE-EUS 2008 93
favourable to off shoring by integrating the favourable to off shoring attribute
in this view.
The attributes of the usage view are :
Adapted to turbulent environments : BOOLEAN.
End user satisfaction : BOOLEAN.
Favourable to off shoring : BOOLEAN.
Productivity gain : BOOLEAN.
Respect of a quality level : BOOLEAN.
Respect of delivering dates : BOOLEAN.
Respect of the requirements : BOOLEAN.
2.3 Capability to Agility View
The capability to agility view represents what is the part of agility in the method,
how agile is the method. The attributes of this view will represent all aspects of
the agility concept and their valuation will reflect what are the aspects included
in the method.
A software development method is composed by a life cycle, specifics concepts
about the development itself and the organization of the people around the
method. Let’s start with the first one, the life cycle. In software engineering
various life cycle models exits, for example V model [8], waterfall model [9]
or spiral model [10]. According to the chronology of agile methods apparition
related in [11], most of these methods are directly derived from spiral model. This
is explained by the two main characteristics of the spiral life cycle, an iterative
and incremental behaviour. Such life cycle provide a development of the software
increment by increment. So environmental and requirements changes can be
integrated to every iteration of the process and the work plan would not be fixed,
it will change through iterations. Another point of interest of this behaviour is the
length of iterations. Shorter iterations will increase the number of meetings with
the customer to define and detail their needs incrementally bringing reactivity to
the method. From observations, six attributes can be identified : short iterations,
reactivity, integration of the changes, changes of the functional requirements,
changes of the non functional requirements, change of the work plan.
Concerning the organization of people, agile methods tend to break contrac-
tual relations between customers and development teams [12]. This relation will
be expressed in this view by the collaborative attribute. The organization aspect
also concerns human relations into the development team. An agile team is a
kind of holographic organization where each member has the knowledge of the
whole system [3]. So if a member left the team no knowledge is lost. Further-
more people are in the central place of the method and some decisional power
is delegated to development teams. These last two aspects are declined in the
view by the people centred, human resources can change and knowledge sharing
attributes.
Some specific concepts of agility are included by the agile method in activ-
ities of software development itself. The major concept is light weight of the
process. This concept is expressed in the agile manifesto [1] and the first name
94 Proceedings of MoDISE-EUS 2008
of agile methods was light weight methods. Globally, agile methods include less
documentation and modeling tasks than plan-driven approaches. Two other con-
cepts concern the code testing and refactoring. Testing is a strong practice of
agility, tests grant you that the software you are developing corresponds to the
customer requirements and that your code is not regressing by the introduction
of errors in functionalities previously done. The non regression aspect goes hand
in hand with the refactoring one which you are always reflecting on simplifying
and improving the quality of the code [2]. These three concepts will be declined
in attributes in this view. Another one which is the change indicators attribute
will also be added to this view and it represents if the method as some metrics
for helping to introduce the changes through the process.
The attributes of the Capability to Agility View are :
Change indicators : BOOLEAN.
Collaborative : BOOLEAN.
Functional requirements can change : BOOLEAN.
Human resources can change : BOOLEAN.
Integration of the changes : BOOLEAN.
Knowledge sharing : ENUM(low, high).
Light weighted : BOOLEAN.
Non functional requirement can change : BOOLEAN.
People centred : BOOLEAN.
Reactivity : ENUM(at the beginning of the project, each milestone, each
iteration).
Refactoring politic : BOOLEAN.
Short iterations : BOOLEAN.
Testing politic : BOOLEAN.
Work plan can change : BOOLEAN.
2.4 Applicability View
The aim of this view is to show the impact of environmental aspects on the
method. It represents when the environment is favourable to apply the agile
method. This aspect will be described by attributes, each one corresponding to
a characteristic of the environment.
Software development environments can be characterized by indicators. A
previous research [13] has determined a metric measuring the fitness of a project
environment with the agility concept to determine which software development
method use. This metric is called the Agility Measurement Index (AMI). It will
not be used itself in this framework but our interest will be on the environmental
projects indicators constituting the AMI (duration, risks, novelty, effort and
interaction dimensions). These indicators will be derived in attributes of this
view to characterize an ideal project environment to apply the agile method.
The duration represents the deadline of the project and will be expressed by
the project size attribute. The risks are the degree of criticality of the software,
for example a software impacting or monitoring high economic issue for the cus-
tomer is highly critical. This aspect will correspond to the project risks attribute.
Proceedings of MoDISE-EUS 2008 95
Effort indicator of the AMI represents the number of person-hour provided in
the project by the customer and the development team. I think this aspect is
not pertinent in this form to characterize an environment because effort is the
duration of the project combined with its team size. So the team size will be an
attribute in this view and be more relevant to identify a favourable environment
for applying the method. The AMI novelty indicator represents the ability for
the project to integrate a novelty solution and will be deported in the integra-
tion degree of novelty attribute. The last indicator is the interaction dimensions
and corresponds to degree of interactions between the customer and the devel-
opment team. As seen previously the people organizational aspect is important
in agile methods. To reflect this, the interactions aspect of the AMI will be ex-
tended to the interactions between end users and development teams. It will also
concern interactions and organisation between the development team members.
These aspects will be derived into attributes. A last aspect will be added to the
applicability view, the project complexity attribute.
The attributes of the Applicability View View are :
Degree of interaction between the team members : ENUM(low, high).
Degree of interaction with the customer : ENUM(low, high).
Degree of interaction with the end users : ENUM(low, high).
Degree of novelty integration : ENUM(low, high).
Project complexity : ENUM(low, high).
Project risks : ENUM(low, high).
Project size : ENUM(small, large).
Team organization : ENUM(self organization, hierarchical organization).
Team size : ENUM(small, large).
2.5 Process and Products View
The process and product view represents how is characterised the method and
what are the products of activities of the method process. The attributes will
characterised the agile method process by two dimensions and list the products
of the process activities.
A previous research [12] has a part of its agile methods comparison done
on their life cycle. The methodology process is composed of two dimensions.
The first dimension is the software development activities covered by the agile
method. The second one represents the method abstraction level of its guidelines
and rules. These two dimensions will be captured by attributes of this view and
we will also carry our interest on the products of the process activities as a third
attribute for the process and products view.
The attributes of the Process and Products View are :
Abstraction level of the rules and guidelines : SET(ENUM(project manage-
ment, process description, concrete rules and guidelines on activities and prod-
ucts)).
Activities covered by the agile method : SET(ENUM(launching of the project,
requirements definition, modeling, code, unit test, integration test, system test,
acceptation test, quality control, system use)).
96 Proceedings of MoDISE-EUS 2008
Products of the method activities : SET(ENUM(design models, commented
source code, executable, unit tests, integration tests, system tests, acceptation
tests, quality reports, user documentation)).
3 Application of the Framework
The framework presented previously will be applied to eight major agile meth-
ods in this part. Methods are: Adaptive Software Development (ASD) [14], Agile
Modeling (AM) [15], Crystal Methodologies [16], Dynamic System Development
Method (DSDM) [17], Extreme Programming (XP) [18], Feature Driven Devel-
opment (FDD) [19], Pragmatic Programming (PP) [20] and Scrum [21]. Each
method will be characterized by the framework view and attributes according to
their descriptions. The rationale of the methods evalution is fully documented
in [22]
Legend for the process and products view :
- “Activities” attributes :
launching of the project = l, requirements definition = rd, modeling = m, code
= c, unit test = ut, integration test = it, system test = st, acceptation test = at,
quality control = qc, system use = su
- “Abstraction level” attributes :
project management = pm, process description = pd, concrete rules and guide-
lines on activities and products = crg
- “Products” attributes :
design models = dm, commented source code = csc, executable = exe, unit tests
= ut, integration tests = it, system tests st, acceptation tests = at, quality reports
= qr, user documentation = doc
From this Table 1 we can identify that some methods have particular char-
acteristics in comparison of the others. For example DSDM is the only method
integrating a launching of the project activity. When going deeper in analyse of
this comparison, we can notice that some attributes are common to several agile
methods. From these common characteristics, we can regroup the methods into
relevant sets of methods.
The most numerous common attributes of agile methods allow to capture
them into two main classes as represented in Figure 2. The first class is regroup-
ing the AM, XP and PP methods. These methods are characterized by a light
weighted process with short iterations. They are addressed to small projects and
teams with low risks. They also provide a productivity gain when they are ap-
plied in these conditions. According to this set of common attributes, this class
represents methods oriented on software development practices. These methods
are composed of rules and guidelines on the development activity itself. They
concentrate the efforts on how increase integration of changes, correctness, qual-
ity and productivity of software.
The second class of method regroups the ASD, Crystal, DSDM and Scrum
methods by having the same level of abstraction of their rules (project man-
97
ASD AM Crystal DSDM XP FDD PP Scrum
Usage view
Respect of delivering dates True False True True False True True True
Respect of the requirements True True True True True True False True
Proceedings of MoDISE-EUS 2008
Respect of a quality level True False False False False False True False
End user satisfaction False False False True False False False False
Turbulent environment False True False True True False True True
Favourable to off shoring True False True True False False False True
Productivity gain False True False False True False True False
Capability to agility view
Short iterations False True False False True True True True
Collaborative True True True True True False True False
Table 1. Agile methods comparison
People centred True True True True True False False False
Refactoring politic False True False True True False True False
Testing politic True False False True True False True True
Integration of the changes True True False True True False True True
Light weighted False True False False True True True True
FR can change True True False True True False True True
NFR can change True False False False False False False False
Work plan can change False True False False True False True False
Human resources can change True True True False True False False False
Change indicators False False False False True False False False
Reactivity Milestone Iteration Milestone Iteration Iteration Project beginning Iteration Milestone
Knowledge sharing High High High Low High Low Low Low
Project size Large Small Large Large Small Large Small Large
Project complexity High Low High High Low High Low High
Project risks High Low High High Low High Low High
Team size Large Small Small Large Small Large Small Small
Interactions with customers High High Low High High Low Low Low
Interaction with end users Low Low Low High Low Low Low Low
Team members interactions Low High High High High Low High Low
Degree of novelty integration High Low Low High High Low Low Low
Team organization Hierarchical Self Self Hierarchical Self Hierarchical Hierarchical Self
Process and products view
Activities covered by the method rd, m, c, rd, m, c m, cut, it, l, rd, m,
rd, m, c, rd, m, c,
rd, m, c, rd, m, c,
ut, it, st, st c, ut, it,
ut, it, st ut, it, st,
ut, it, st ut, it, st
at, qc st, at, su qc
Abstraction level of the guidelines pm, pd crg pm, pd pm, pd pd, crg pm, pd, crg crg pm
Products of the method activities csc, exe, dm, csc, csc, exe, dm, csc, csc, exe, dm, csc, dm, csc, dm, csc,
ut, it, st, exe ut, it, st exe, ut, it, ut, it, st exe, ut, it, exe, ut, it, exe, ut, it,
st, at, qr at, doc st st st
98 Proceedings of MoDISE-EUS 2008
agement). These methods also distinguish from the others by their respect of
requirements and delivering dates. Another common point to them is that they
adapted to large and complex project. From this common set of attributes it
emerges the class of project management oriented methods. These methods are
oriented on the management of the project life cycle to fit large projects.
One method, FDD differentiates from the others by owning characteristics of
the two classes. FDD is a hybrid method inheriting the development practices
from the first class and some project management guidelines from the second.
This is captured in Figure 2 by an hybrid class which inherits characteristics of
the two other main classes.
Fig. 2. Agile Methods Classes.
All agile methods are regrouped into these three classes :
Software Development Practices Oriented Methods : Agile Modeling, Extreme
Programming, Pragmatic Programming.
Project Management Oriented Methods : Adaptive Software Development,
Crystal Methodologies, Dynamic System Development Method, Scrum.
Hybrid Methods : Feature Driven Development.
Some other minor classes, shown in Table 2 below, can be captured by the
same means. They reflect common particular aspects of agile methods. For ex-
ample if we carry our interest on the quality in agile methods. We can find a
quality control class composed by FDD and ASD. This subclass represents that
the process contains activities for controlling quality of the software to guaranty
a quality level of it. In the same way we can identify two other subclasses, the
knowledge management and the high reactivity subclasses. The first one concerns
high interactions with customers and the team members. Knowledge manage-
ment is also identified by self organisation of the teams providing a high sharing
of the knowledge. These factors impact humans resources, when a member leave
the team the other member have already integrated his knowledge. In practice
the knowledge management can be found in some guidelines, for example the
pair programming in Extreme Programming providing the share of knowledge
on the whole system between the team members. The last subclass represents
the speed of integration of changes in the process. This is characterised by a high
reactivity with a meeting between the customer and the team every iteration.
Proceedings of MoDISE-EUS 2008 99
This high degree of interaction with the customer and the team reflect the fitness
of the method to turbulent environments when the customer’s requirement are
frequently changing.
Quality Knowledge High
Control Management Reactivity
AM X X
ASD X
Crystal X
DSDM X
FDD X
PP
SCRUM
XP X X
Table 2. Discriminant Characteristics for Agile Methods
This Table 2 captures the minor classes and shows which methods are re-
grouped in these classes.
This work leads to classify agile methods and provides a support to choose
the right method according to the project context. The second topic of the paper
is to analyse agile methods for extracting best practices which can be reused in
plan-driven methodologies. Section 4 deals with this topic and explains how the
framework is used to extract agile method components.
4 Extracting Agile method Components from the
framework
The purpose of this section is to identify best practices of agile methods which
can be reused in plan-driven methods. Such components can be used to improve
the agility of a method. We exploit the framework proposed in section 2 to in-
dentify such components. The four aspects what, how, when, and why is unsefull
to indentify relevant best practices. what and how asects allow to capture the
best practices. Their relevance is provided by the analysis by the when and why
aspects. This approach has been applied for agiles characteristics common to
most of the methods and those specifics to few methods. This leads to identify
eight components.
If we carry our attention on DSDM for example, two components can be cap-
tured. The first one concerns the “launching of the project” activity expressed
by a feasibility and a business study. This component is captured in the frame-
work by the presence of launching of project activity in the method life cycle.
It aims to estimate if the project is feasible for the requirements and the dates
announced. It can be applied in large and complex project environments. The
second component concerns the “management of the end users” by integrating
the system users in the development process, giving them some decisional power
on the requirements for the system features. It also included the validation of the
deliverables and the formation of end users to the new system. This component
100 Proceedings of MoDISE-EUS 2008
is captured in the framework through the presence of activities for the system
in use in the life cycle, the production of user documentation, high level of in-
teractions with end users and the aim to satisfy users of the system. This last
attribute reflects the aim of this component to increase the satisfaction of the
users of system and reduce their aversion to novelty. From another method like
ASD, we can extract a “quality” component concerning the activities of quality
controlling and the integration of non functional requirements changes in the
process. This component is isolated from the quality level respect, integration of
the non functional requirement, activities and products of quality control frame-
work attributes. The aim is to provide a quality level for developed software
along with an increase of the productivity. This quality gain can by applied in
complex and risky projects with large development team and for controlling the
development of the novelties.
Now let’s carry our interests on the aspects issued from the agility concept
that can be captured into components to bring agility to other methods. On the
aspect of agility concerning the code we can identify two components. The first
one is the “tests” and concern test politics, testing activities and products. This
component can be applied in every project and aims to produce a productivity
gain. The second component is “refactoring” by reviewing the code constantly to
simplify and improve it. This is destined to small projects with low complexity
and risk to gain productivity. In a more general consideration “knowledge man-
agement” can be captured into a component to satisfy the same objectives in
projects with small teams and a high level of interaction into them. This compo-
nent is materialised by the sharing of the knowledge on the system between the
teams members. Concerning the framework, this component is issued from the
following attributes : high interactions between the team members, self organ-
isation for the teams, high amount of knowledge sharing and human resources
can change.
What How Why When
Launching of Feasibility and Respect of Large and complex
the Project business study delivering dates projects
Management of People centred Involving users in Increase end Projects with a high
the End Users and Reactivity the process users satisfaction interaction rate
activities
Quality Changes in Quality control Respect of a Complex and
NFR activities and quality level risky projects
products
Tests Test politic Testing activities Productivity All projects
and products gain
Refactoring Refactoring Constant code Productivity Project with low
politic review gain risks and complexity
Knowledge People centred and Self organizing Productivity Small teams with
Management knowledge sharing Teams and high gain high interaction rate
interaction rate
Agile Life Iterative and Short iterations and Fit turbulent High interaction
Cycle incremental meetings with environments rate
life cycle the customer
Change Manage the Project velocity Respect of All projects
Indicator Changes metric delivering dates
Proceedings of MoDISE-EUS 2008 101
From a requirement engineering point of view two relevant components can be
captured. One about the “agile life cycle” and another on a “change indicator”.
An agile life cycle is iterative and incremental and an agile requirement definition
follows this principle. The customer defines his needs in a high level of abstraction
at the beginning of the project. Every iteration, requirements definition will be
detailed at a meeting between the customer and the development team. Only the
needed features implemented in the current iteration will be defined in detail.
This prevents from the changes on initial requirements and integrates customers
feedback in the definition. From the framework, attributes characterising an
optimum agile cycle are short iterations and adapted to turbulent environment.
Such component applies in projects where a high cooperation with the customer
is possible and aims to integrate changes in requirements happening in turbulent
environments.
Change indicators can be used in development process to control and man-
age the changes. In this component we will carry our interest on project velocity
used in XP. It’s a metric allowing customer and development teams to refine
their time to code estimations on features to develop in the current iteration.
The project velocity is the factor between estimations in ideals programming
days and real time it takes to develop. It’s calculated from the sum of estima-
tions for the previous iteration divided by the sum of the real time it takes to
implement. So it considers also current team productivity to refine the estima-
tions. This component aims to improve the respect of delivering dates by helping
customer and development teams to make betters estimations on implementa-
tions of requirements and applies in every kind of agile project.
The list of identified components is not exhaustive.
Table 4 shows a summarization of components characteristics according to
aspects expressed in the framework views.
5 Conclusion
The paper describes a framework for agile methods used in two different topics:
– Classify agile methods to support the method selection.
– Improve agility of plan-driven methods by proposing agile components.
The first step was to define a framework to describe agile methods. Ones
applied to agile methods, a classification has been done by regrouping methods
common attributes. From this, several methods components have been captured
to be reused into other methods.
The agile method components can be used in a component based method
engineering aproach to improve agility of existing methods. In fact, they can be
used to adapt methods to turbulent environments or to upgrade agile methods
with bringing news aspects for a particular kind of projects. This work is a
preliminary work to the definition of a method engineering approach aiming at
increasing the agility of methods.
102 Proceedings of MoDISE-EUS 2008
References
1. Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler,
M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin,
R.C., Mellor, S., Schwaber, K., Sutherland, J., Thom, D.: Manifesto for agile
software development. Website (2001) http://agilemanifesto.org/.
2. Lindvall, M., Basili, V., Boehm, B., Costa, P., Dangle, K., Shull, F., Tesoriero,
R., Williams, L., Zelkowitz, M.: Empirical findings in agile methods. In: Agile
Universe. (2002) 197–207
3. Nerur, S., Balijepally, V.: Theoretical reflections on agile development methodolo-
gies. Communications of the ACM 50(3) (2007) 79–83
4. Rolland, C.: A comprehensive view of process engineering. In Pernici, B., Thanos,
C., eds.: 10th International Conference on Advanced Information System Engi-
neering, CAISE’98, Springer-Verlag (1998)
5. Rolland, C., Achour, C.B., Cauvet, C., Ralyt, J., Sutcliffe, A., Maiden, N., Jarke,
M., Haumer, P., Pohl, K., Dubois, E., Heymans, P.: A proposal for a scenario
classification framework. Requirement Engineering (1998) 11–26
6. Parsons, D., Ryu, H., Lal, R.: The impact of methods and techniques on outcomes
from agile software development projects. International Federation for Information
Processing 30 (2007) 11–26
7. Turk, D., France, R., Rumpe, B.: Limitations of agile software processes. In: In-
ternational Conference on eXtreme Programming and Agile Processes in Software
Engineering. (2002)
8. Rook, P.: Controlling software projects. Software Engineering Journal 1(1) (1996)
7–16
9. Royce, W.W.: Managing the development of large software systems. (1987)
10. Boehm, B.W.: A spiral model of software development and enhancement. IEEE
Computer 21(5) (1988) 61–72
11. Abrahamssona, P., Warstab, J., Siponenb, M.T., Ronkainena, J.: New directions on
agile methods: A comparative analysis. In: International Conference on Software
Engineering. (2003)
12. Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J.: Agile software development
methods : Review and analysis. VTT Publication (2002)
13. Datta, S.: Agility measurement index - a metric for the crossroads of software
development methodologies. ACM (2006) 271–273
14. Highsmith, J.A.: Adaptive Software Development : A Collaborative Approach to
Managing Complex Systems. Dorcet House Publishing (2000)
15. Ambler, S.W.: Agile modeling. Website (2006) http://www.agilemodeling.com.
16. Cockburn, A.: Agile Software Development. (2001)
17. Consortium, D.: Dsdm version 4.2. Website (2007) http://www.dsdm.org/
version4/2/public/default.asp.
18. Wells, D.: Extreme programming. Website (2006) http://www.
extremeprogramming.org.
19. Palmer, S.R., Felsing, J.M.: A Practical Guide to Feature-Driven Development.
(2002)
20. Hunt, A., Thomas, D.: Pragmatic Programmer, The: From Journeyman to Master.
(1999)
21. Schwaber, K.: Agile Project Management With Scrum. (2004)
22. Iacovelli, A.: Introduction de l’agilité dans les méthodes. Master thesis, University
Paris 1 Panthéon Sorbonne (2007)