<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Proceedings of MoDISE-EUS</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Framework for Agile Methods Classi¯cation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adrian Iacovelli</string-name>
          <email>adrian.iacovelli@univ-paris1.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carine Souveyet</string-name>
          <email>carine.souveyet@univ-paris1.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centre de Recherche en Informatique (CRI)</institution>
          ,
          <addr-line>Universit</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>e Paris 1 - Panthon Sorbonne</institution>
          ,
          <addr-line>90 rue Tolbiac, 75013 Paris</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2008</year>
      </pub-date>
      <volume>97</volume>
      <fpage>91</fpage>
      <lpage>102</lpage>
      <abstract>
        <p>Agile methods are the response to turbulent software development environments and requirements de¯nitions di®ers in these methods from what is done in others. The purpose of this paper is to classify these former methods to measure their impact on requirement engineering processes. The approach used in this research has several purposes, the ¯rst 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.</p>
      </abstract>
      <kwd-group>
        <kwd>Agile methods</kwd>
        <kwd>Method engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        In the mid 90's people start creating new methods because industrial
requirements and technologies are moving fast and customers were unable to de¯ne
they needs in early stages of the projects [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. These new methods, called the
agile methods are designed to respond to disruptive software environments where
requirements are constantly changing.
      </p>
      <p>
        Requirements in agile methods are quite di®erent from what is done in
classical 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[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
whereas in the former, requirements changed constantly. As long as the project
is going on, the requirements de¯nition 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 de¯nition is iterative and incremental.
      </p>
      <p>The scope of this paper is to classify agile methods to compare them and
evaluate their impact on requirement engineering processes. A framework is
proposed 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
proposed in section 4.
2.1
each one representing an aspect of the methodologies. Each view is characterized
by a set of attributes.</p>
      <p>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
bene¯ts to objectives brought by the method agility and what's the favourable
environment 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
objectives mentioned below. Added to how these rules are derived in activities and
products.
2.2</p>
      <sec id="sec-1-1">
        <title>Usage View</title>
        <p>This view captures why using the agile method. The attributes of the view aim
to evaluate all the bene¯ts that the development team and the customer can
gain by applying the method.</p>
        <p>
          According to the quantitative approach used in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], applying agile methods
can increase a productivity, quality and satisfaction. The methods can provide
guidelines to increase bene¯ts such as productivity gain, end user satisfaction
and quality level respect attributes of the usage view.
        </p>
        <p>Behind the agility concept some aspects can be identi¯ed as the integration
of changes in the development process. So agile methods are providing rules and
guidelines to ¯t turbulent environments and providing the respect of
requirements and delivery dates in such environments. These three last aspects will be
integrated in this view as attributes.</p>
        <p>
          A study on the limitations of agile methods [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] points out that they provide
a limited support to subcontracting, agile methods can bring some °exibility to
outsourcing contracts. De¯ning contracts in two parts, a static one and a variable
one creates this °exibility. So let's carry our interest if some agile rules can be
favourable to o® shoring by integrating the favourable to o® shoring attribute
in this view.
        </p>
        <p>The attributes of the usage view are :
Adapted to turbulent environments : BOOLEAN.</p>
        <p>End user satisfaction : BOOLEAN.</p>
        <p>Favourable to o® shoring : BOOLEAN.</p>
        <p>Productivity gain : BOOLEAN.</p>
        <p>Respect of a quality level : BOOLEAN.</p>
        <p>Respect of delivering dates : BOOLEAN.</p>
        <p>Respect of the requirements : BOOLEAN.
2.3</p>
      </sec>
      <sec id="sec-1-2">
        <title>Capability to Agility View</title>
        <p>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 re°ect what are the aspects included
in the method.</p>
        <p>
          A software development method is composed by a life cycle, speci¯cs concepts
about the development itself and the organization of the people around the
method. Let's start with the ¯rst one, the life cycle. In software engineering
various life cycle models exits, for example V model [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], waterfall model [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
or spiral model [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. According to the chronology of agile methods apparition
related in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], 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 ¯xed,
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 de¯ne and detail their needs incrementally bringing reactivity to
the method. From observations, six attributes can be identi¯ed : short iterations,
reactivity, integration of the changes, changes of the functional requirements,
changes of the non functional requirements, change of the work plan.
        </p>
        <p>
          Concerning the organization of people, agile methods tend to break
contractual relations between customers and development teams [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. 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 [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. So if a member left the team no knowledge is lost.
Furthermore 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.
        </p>
        <p>
          Some speci¯c concepts of agility are included by the agile method in
activities of software development itself. The major concept is light weight of the
process. This concept is expressed in the agile manifesto [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] and the ¯rst name
of agile methods was light weight methods. Globally, agile methods include less
documentation and modeling tasks than plan-driven approaches. Two other
concepts 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 re°ecting on simplifying
and improving the quality of the code [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. 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.
        </p>
        <p>The attributes of the Capability to Agility View are :
Change indicators : BOOLEAN.</p>
        <p>Collaborative : BOOLEAN.</p>
        <p>Functional requirements can change : BOOLEAN.</p>
        <p>Human resources can change : BOOLEAN.</p>
        <p>Integration of the changes : BOOLEAN.</p>
        <p>Knowledge sharing : ENUM(low, high).</p>
        <p>Light weighted : BOOLEAN.</p>
        <p>Non functional requirement can change : BOOLEAN.</p>
        <p>People centred : BOOLEAN.</p>
        <p>Reactivity : ENUM(at the beginning of the project, each milestone, each
iteration).</p>
        <p>Refactoring politic : BOOLEAN.</p>
        <p>Short iterations : BOOLEAN.</p>
        <p>Testing politic : BOOLEAN.</p>
        <p>Work plan can change : BOOLEAN.
2.4</p>
      </sec>
      <sec id="sec-1-3">
        <title>Applicability View</title>
        <p>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.</p>
        <p>
          Software development environments can be characterized by indicators. A
previous research [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] has determined a metric measuring the ¯tness 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, e®ort and
interaction dimensions). These indicators will be derived in attributes of this
view to characterize an ideal project environment to apply the agile method.
        </p>
        <p>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
customer is highly critical. This aspect will correspond to the project risks attribute.
E®ort 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 e®ort 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
integration degree of novelty attribute. The last indicator is the interaction dimensions
and corresponds to degree of interactions between the customer and the
development team. As seen previously the people organizational aspect is important
in agile methods. To re°ect this, the interactions aspect of the AMI will be
extended 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.</p>
        <p>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).</p>
        <p>Degree of interaction with the end users : ENUM(low, high).</p>
        <p>Degree of novelty integration : ENUM(low, high).</p>
        <p>Project complexity : ENUM(low, high).</p>
        <p>Project risks : ENUM(low, high).</p>
        <p>Project size : ENUM(small, large).</p>
        <p>Team organization : ENUM(self organization, hierarchical organization).</p>
        <p>Team size : ENUM(small, large).
2.5</p>
      </sec>
      <sec id="sec-1-4">
        <title>Process and Products View</title>
        <p>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.</p>
        <p>
          A previous research [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] has a part of its agile methods comparison done
on their life cycle. The methodology process is composed of two dimensions.
The ¯rst 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.
        </p>
        <p>The attributes of the Process and Products View are :</p>
        <p>Abstraction level of the rules and guidelines : SET(ENUM(project
management, process description, concrete rules and guidelines on activities and
products)).</p>
        <p>Activities covered by the agile method : SET(ENUM(launching of the project,
requirements de¯nition, modeling, code, unit test, integration test, system test,
acceptation test, quality control, system use)).</p>
        <p>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</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Application of the Framework</title>
      <p>
        The framework presented previously will be applied to eight major agile
methods in this part. Methods are: Adaptive Software Development (ASD) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], Agile
Modeling (AM) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], Crystal Methodologies [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], Dynamic System Development
Method (DSDM) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], Extreme Programming (XP) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], Feature Driven
Development (FDD) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], Pragmatic Programming (PP) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and Scrum [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. 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 [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]
      </p>
      <p>Legend for the process and products view :
- \Activities" attributes :
launching of the project = l, requirements de¯nition = 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
guidelines 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</p>
      <p>From this Table 1 we can identify that some methods have particular
characteristics 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.</p>
      <p>The most numerous common attributes of agile methods allow to capture
them into two main classes as represented in Figure 2. The ¯rst class is
regrouping 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
applied 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 e®orts on how increase integration of changes, correctness,
quality and productivity of software.</p>
      <p>The second class of method regroups the ASD, Crystal, DSDM and Scrum
methods by having the same level of abstraction of their rules (project
manA P T D T I I T P P P K R C H WN F L I T R P C S C P F T E R R R U
n n e r r r n e h u o F R ig tn e e e o oh ap rod oav rub n e e e s
iiirttseceecovvd ssrrceaoopnd iitrzeaoagoannm lftreeeeoogvyn irseeeabnmmm iitttreceoahnw iitttrsceoahnw isezam ijrtssecok lijttececooxypm ijtszeeco ilrseeaggohndw iittcayv iitrsceaogadnn rrssceceoaunm lrccaaaknhnp eccgaanhnR eccgaanhn itteegdhhw ifttreeooaghn iilittscogpn liiiftrtccogaopn lrteceeodnp illtreaaovb iitrrttseoan ilittaaogyb iiittcagyvnu ltreooabu® ilrteeovnnnu ifttrsssceaaud liftsecaaoqup frttseeecoqhp ilfrtseeecovdp ieeagvw
a n ch
n g</p>
      <p>e
c
h
a
n
g
e
a
n
g
e
s
i sh m io t u in
il o e n y ir g
ty r n le em d</p>
      <p>in t v a
v g
i
e
w
le en te
t s
s
rq ,ts ,e d c ,ts ,c ic
a
l
u r i M
,ts ,tu scc p e</p>
      <p>m ta ,t ,d ra H L L H L H H L H li F T F T T F T T F T T F F T F F T T T A
,ta ,it ,ex ,p ,q i,t ,m rch igh ow ow igh rega igh igh rega igh tseo lsea reu lsea reu reu lsea reu reu lsea reu reu lsea lsea reu lsea lsea reu reu reu SD
n
c
r It
,dm lfeS oLw ighH oLw ighH laSm oLw oLw aSm igH trea lsaF ruT ruT lsaF ruT ruT ruT lsaF ruT ruT ruT ruT ruT lsaF ruT lsaF lsaF ruT lsaF AM
, l h io e e e e e e e e e e e e e e e e e e e
l l</p>
      <p>n
i,t ,ce ,m ts ,tcu lfeS oLw ighH oLw oLw aSm H H aL H lie aF ruT lsaF lsaF lsaF lsaF lsaF lsaF lsaF ruT ruT lsaF lsaF ruT lsaF lsaF lsaF ruT ruT sry
, x p , ll igh igh reg igh tson lse e e e e e e e e e e e e e e e e e e ta
C
l
e
M
e
P
r
o
i
n
n
i
n
g
n
u r I
,ittu ,scce ,cdp ,itt ,dm lfeS ighH ighH oLw ighH laSm oLw oLw aSm igH rttea ruT ruT ruT lsaF ruT ruT ruT ruT ruT ruT ruT ruT ruT lsaF ruT lsaF lsaF ruT lsaF PX
, x r , , l h io e e e e e e e e e e e e e e e e e e e
s e g l l
t , ts ,c n
e p H j
x d m u r i e
,e m , ,t ,d rea L L L L aL H H L L tc F F F F F T F F F F F T F F F F F T T F
o ,t sc
c it ,c d su i,t ,m ic
, a</p>
      <p>l
e
,ex dm ,tu ,rd irea L H L L Sm L L Sm L Irte F F T F T T T T T F T T T F T F T F T P
ts ,tu ,sc rcg i,t ,m rch ow igh ow ow lla ow ow lla ow itao lsea lsea reu lsea reu reu reu reu reu lsea reu reu reu lsea reu lsea reu lsea reu P
I D
t
ra H H H H L H H L L re F F F F T F T T T T T F F T T T F T T S
a a
ts ,tu ,sc pm i,t ,m lfe ow ow ow ow lla igh igh reg ow tson lsea lsea lsea lsea reu reu reu reu lsea lsea lsea reu lsea reu reu lsea lsea reu reu rum
it ,c ts ,c
,
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 ¯t large projects.</p>
      <p>One method, FDD di®erentiates from the others by owning characteristics of
the two classes. FDD is a hybrid method inheriting the development practices
from the ¯rst 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.</p>
      <p>All agile methods are regrouped into these three classes :</p>
      <p>Software Development Practices Oriented Methods : Agile Modeling, Extreme
Programming, Pragmatic Programming.</p>
      <p>Project Management Oriented Methods : Adaptive Software Development,
Crystal Methodologies, Dynamic System Development Method, Scrum.</p>
      <p>Hybrid Methods : Feature Driven Development.</p>
      <p>Some other minor classes, shown in Table 2 below, can be captured by the
same means. They re°ect common particular aspects of agile methods. For
example if we carry our interest on the quality in agile methods. We can ¯nd 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 ¯rst one concerns
high interactions with customers and the team members. Knowledge
management is also identi¯ed 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.
This high degree of interaction with the customer and the team re°ect the ¯tness
of the method to turbulent environments when the customer's requirement are
frequently changing.</p>
      <sec id="sec-2-1">
        <title>Quality Knowledge High</title>
      </sec>
      <sec id="sec-2-2">
        <title>Control Management Reactivity</title>
        <p>X X</p>
        <p>This Table 2 captures the minor classes and shows which methods are
regrouped in these classes.</p>
        <p>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</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Extracting Agile method Components from the framework</title>
      <p>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
indentify 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 speci¯cs to few methods. This leads to identify
eight components.</p>
      <p>If we carry our attention on DSDM for example, two components can be
captured. The ¯rst one concerns the \launching of the project" activity expressed
by a feasibility and a business study. This component is captured in the
framework 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
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
interactions with end users and the aim to satisfy users of the system. This last
attribute re°ects 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
framework 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.</p>
      <p>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 ¯rst
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
management" 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
component 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
organisation for the teams, high amount of knowledge sharing and human resources
can change.</p>
      <sec id="sec-3-1">
        <title>Launching of</title>
        <p>the Project</p>
      </sec>
      <sec id="sec-3-2">
        <title>Management of the End Users</title>
      </sec>
      <sec id="sec-3-3">
        <title>Quality</title>
      </sec>
      <sec id="sec-3-4">
        <title>Tests</title>
      </sec>
      <sec id="sec-3-5">
        <title>Refactoring</title>
      </sec>
      <sec id="sec-3-6">
        <title>Knowledge</title>
      </sec>
      <sec id="sec-3-7">
        <title>Management</title>
      </sec>
      <sec id="sec-3-8">
        <title>Agile Life</title>
      </sec>
      <sec id="sec-3-9">
        <title>Cycle</title>
      </sec>
      <sec id="sec-3-10">
        <title>Change</title>
      </sec>
      <sec id="sec-3-11">
        <title>Indicator</title>
      </sec>
      <sec id="sec-3-12">
        <title>What</title>
        <p>People centred
and Reactivity</p>
        <p>Changes in</p>
        <p>NFR
Test politic
Refactoring</p>
        <p>politic
People centred and
knowledge sharing</p>
        <p>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 de¯nition
follows this principle. The customer de¯nes his needs in a high level of abstraction
at the beginning of the project. Every iteration, requirements de¯nition will be
detailed at a meeting between the customer and the development team. Only the
needed features implemented in the current iteration will be de¯ned in detail.
This prevents from the changes on initial requirements and integrates customers
feedback in the de¯nition. 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.</p>
        <p>Change indicators can be used in development process to control and
manage 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 re¯ne
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
estimations for the previous iteration divided by the sum of the real time it takes to
implement. So it considers also current team productivity to re¯ne the
estimations. This component aims to improve the respect of delivering dates by helping
customer and development teams to make betters estimations on
implementations of requirements and applies in every kind of agile project.</p>
        <p>The list of identi¯ed components is not exhaustive.</p>
        <p>Table 4 shows a summarization of components characteristics according to
aspects expressed in the framework views.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>The paper describes a framework for agile methods used in two di®erent topics:
{ Classify agile methods to support the method selection.
{ Improve agility of plan-driven methods by proposing agile components.</p>
      <p>The ¯rst step was to de¯ne a framework to describe agile methods. Ones
applied to agile methods, a classi¯cation has been done by regrouping methods
common attributes. From this, several methods components have been captured
to be reused into other methods.</p>
      <p>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 de¯nition of a method engineering approach aiming at
increasing the agility of methods.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beedle</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>van Bennekum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cunningham</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grenning</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Highsmith</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hunt</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Je®ries, R.,
          <string-name>
            <surname>Kern</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marick</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>R.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mellor</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwaber</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sutherland</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thom</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Manifesto for agile software development</article-title>
          .
          <source>Website</source>
          (
          <year>2001</year>
          ) http://agilemanifesto.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Lindvall</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Basili</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dangle</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shull</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tesoriero</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zelkowitz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Empirical ¯ndings in agile methods</article-title>
          .
          <source>In: Agile Universe</source>
          . (
          <year>2002</year>
          )
          <volume>197</volume>
          {
          <fpage>207</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Nerur</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balijepally</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Theoretical re°ections on agile development methodologies</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>50</volume>
          (
          <issue>3</issue>
          ) (
          <year>2007</year>
          )
          <volume>79</volume>
          {
          <fpage>83</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Rolland</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A comprehensive view of process engineering</article-title>
          . In Pernici,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Thanos</surname>
          </string-name>
          , C., eds.
          <source>: 10th International Conference on Advanced Information System Engineering</source>
          ,
          <source>CAISE'98</source>
          , Springer-Verlag (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Rolland</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Achour</surname>
            ,
            <given-names>C.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cauvet</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ralyt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Sutcli®e,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Maiden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Jarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Haumer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Dubois</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Heymans</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.:</surname>
          </string-name>
          <article-title>A proposal for a scenario classi¯cation framework</article-title>
          .
          <source>Requirement Engineering</source>
          (
          <year>1998</year>
          )
          <volume>11</volume>
          {
          <fpage>26</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Parsons</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ryu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lal</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>The impact of methods and techniques on outcomes from agile software development projects</article-title>
          .
          <source>International Federation for Information Processing</source>
          <volume>30</volume>
          (
          <year>2007</year>
          )
          <volume>11</volume>
          {
          <fpage>26</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Turk</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Limitations of agile software processes</article-title>
          .
          <source>In: International Conference on eXtreme Programming and Agile Processes in Software Engineering</source>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Rook</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Controlling software projects</article-title>
          .
          <source>Software Engineering Journal</source>
          <volume>1</volume>
          (
          <issue>1</issue>
          ) (
          <year>1996</year>
          )
          <volume>7</volume>
          {
          <fpage>16</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Royce</surname>
          </string-name>
          , W.W.:
          <article-title>Managing the development of large software systems</article-title>
          . (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.W.:</given-names>
          </string-name>
          <article-title>A spiral model of software development and enhancement</article-title>
          .
          <source>IEEE Computer 21(5)</source>
          (
          <year>1988</year>
          )
          <volume>61</volume>
          {
          <fpage>72</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Abrahamssona</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Warstab</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siponenb</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ronkainena</surname>
          </string-name>
          , J.:
          <article-title>New directions on agile methods: A comparative analysis</article-title>
          .
          <source>In: International Conference on Software Engineering</source>
          . (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Abrahamsson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salo</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ronkainen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Warsta</surname>
          </string-name>
          , J.:
          <article-title>Agile software development methods : Review and analysis</article-title>
          .
          <source>VTT Publication</source>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Datta</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Agility measurement index - a metric for the crossroads of software development methodologies</article-title>
          .
          <source>ACM</source>
          (
          <year>2006</year>
          )
          <volume>271</volume>
          {
          <fpage>273</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Highsmith</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>Adaptive Software Development : A Collaborative Approach to Managing Complex Systems</article-title>
          . Dorcet House Publishing (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.W.</given-names>
          </string-name>
          :
          <article-title>Agile modeling</article-title>
          .
          <source>Website</source>
          (
          <year>2006</year>
          ) http://www.agilemodeling.com.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Agile Software Development</source>
          . (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Consortium</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <source>Dsdm version 4</source>
          .2.
          <string-name>
            <surname>Website</surname>
          </string-name>
          (
          <year>2007</year>
          ) http://www.dsdm.org/ version4/2/public/default.asp.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Wells</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Extreme programming</article-title>
          .
          <source>Website</source>
          (
          <year>2006</year>
          ) http://www. extremeprogramming.org.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Palmer</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Felsing</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>A Practical Guide to Feature-Driven Development</article-title>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Hunt</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thomas</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : Pragmatic Programmer, The: From Journeyman to Master. (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Schwaber</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Agile Project Management With Scrum</article-title>
          .
          <article-title>(</article-title>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Iacovelli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Introduction de l'agilit¶e dans les m¶ethodes</article-title>
          .
          <source>Master thesis</source>
          , University Paris 1 Panth¶eon
          <string-name>
            <surname>Sorbonne</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>