Professional Documents
Culture Documents
Agile
Agile
1
By now we are familiar with several process models that
have been in use since the last few decades.
However, the traditional models have not proved to be
entirely foolproof! They have been often described as
‘highly bureaucratic’ that has led to slowdown of several
projects.
This in turn has led to time and cost overrun of several
projects.
Since the 1990’s software researchers and practitioners
have been working on an entirely different paradigm
called as ‘agility’.
2
Ivar Jacobson, one of the ‘three amigos’ of object-
orientation philosophy, has explained:
◦ An agile team is a nimble team able to appropriately respond to
changes.
◦ Changes are what software development is very much about.
◦ Changes in the software being built, changes to team members,
changes because of new technology, changes of all kinds that
may have an impact on the product they build or the project that
creates the product.
◦ Support for changes should be built-in everything we do in
software, something we embrace because it is the heart and soul
of software.
3
We can subject any software process to the philosophy
of ‘agility’ and we need to plan the process in such a
manner that would facilitate the software development
team to
◦ alter the work flow and
◦ keep them simple and lean enough,
◦ adopt a planning paradigm that encourages the flexible nature of
an agile development approach,
◦ and adopt a strategy of delivering software to the customer in an
incremental fashion,
◦ wherein each delivery will have new enhancements/functionalities
or modifications to the previous delivery.
This way we can ensure that the software gets ‘live’ at
the customer end more quickly than what would have
been possible in the traditional process methodologies
4
In 2001, Kent Beck and 16 other noted software
developers, writers, and consultants (referred to as
the “Agile Alliance”) signed the ‘Manifesto for Agile
Software Development”.
“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
◦ Individuals and interactions over processes and tools
◦ Working software over comprehensive documentation
◦ Customer collaboration over contract negotiation
◦ Responding to change over following a plan
That is, while there is value in the items on the
right, we value the items on the left more.”
5
An agile process is:
◦ guided by scenarios (customer portrayal of the
requirements in story-board format),
◦ acknowledges that plans are not frozen permanently and
can be changed as and when required,
◦ builds software on an iteration-basis,
◦ and delivers the final software over several ‘software
incremental deliveries’,
◦ and adjusts to the changes that is bound to happen during
the entire duration of the project.
Agile approaches developed in 1990s as a reaction
to document driven approaches that were
sometimes highly bureaucratic.
6
Most agile approaches have some common principles:
◦ Working software is used as yardstick for measuring the
progress of software development
◦ The final software need to be delivered in multiple increments,
with each increment quite small
◦ The planning should be so adaptive that even changes desired
during the late stage of the project should also be
accommodated.
◦ Prefer face to face communications as opposed to relying
mostly on documentation
◦ Continuous response and continuous customer commitment
and enthusiasm are essential for an agile project’s success
◦ Prefer simple design which evolves over time
◦ The software development team is authorized to determine the
software delivery dates. This is contrary to traditional methods,
where typically a top-management person may decide on the
delivery dates and the software development team have to then
abide.
7
Thus, we can generalize and say that it is practically
impossible to predict in advance from a planning
viewpoint all the aspects of analysis, design,
construction, and testing.
8
In traditional software developmental models, it has
been observed that the cost of change does not
increase in a straight line pattern but rather increases
in a non-linear fashion. The cost of change is minimal
at the requirements gathering stage and it is
comparatively easier to accommodate a change here as
it is in the early stage of the project. However, as we
move towards the latter phases of the project we
observe that the cost of change becomes very high
9
Extreme Programming (XP) is regarded as the most
prevalent agile method.
10
Therefore, this method is based on development of
software iteratively, and sidesteps the problem of
having to rely on comprehensive and numerous
documentation that are sometimes difficult to sustain
and maintain.
11
XP Planning commences with the business analyst
constructing “user stories” in consultation with the
customer
13
The authorized development team then makes an approximate
calculation of the time required to develop the user story into a
software increment.
Once these estimates are ready along with the user stories the
next step is to conduct release planning, a step that finalizes
which of the user stories are to be incorporated in which
incremental delivery, and also delivery dates for each of these
deliveries.
14
The authorized development team then makes an approximate
calculation of the time required to develop the user story into a
software increment.
Once these estimates are ready along with the user stories the
next step is to conduct release planning, a step that finalizes
which of the user stories are to be incorporated in which
incremental delivery, and also delivery dates for each of these
deliveries.
15
THE OVERALL AGILE PROCESS
16
Development takes place in a series of iterations where each
iteration lasts for about a few weeks.
17
The developmental method adopted in the iterations follows
certain distinctive methods.
18
Third, because of the inevitable changes, it is probable that the
design developed earlier may become inappropriate for further
stages in the development.
19
The discussion so far has provided us with some
details of XP.
20