Está en la página 1de 22

Rapid Development

Methods
Lecture 2 – Agile
Approaches
What are Agile Methods?
• Agile methodologies are a family of methodologies, not a
single approach to software development.

• In 2001, 17 prominent figures in the field of agile


development (then called "light-weight methodologies")
came together at the Snowbird ski resort in Utah to
discuss the unifying theme of their methodologies.
– Formed the Agile Alliance
– Created the Agile Manifesto
What problems need to be solved?
Agile development is a response to the
problems of traditional
• software development processes are too
“heavyweight”
• too many artifacts
• too much documentation
• inflexible plans
• late, over budget, and buggy software
Problem Complexity
The
Initial
The
The Top
Contract
Proposa
l Requirements
Level
•A bullet 2,000
Document
Design
pointed A4 words
Executive 10,000 words
Summary
?

The
Software
Program The
The Product Detailed
Design
4 Meters of A4 100,000
Lines 1,500
modules
© 2007 the University of Greenwich
Software Engineering
What
How
Logical Modelling
Architectural
Modelling Implementation
Comprehension
Invention Realisation
Phenomena, Concepts,
Entities, Activities, Frameworks, Components,
Roles, Assertions Computational models, Testing Compilers, Linkers,
Loaders, Builders

Application
Domain
Problem Domain Solution Domain

© 2007 the University of Greenwich


What makes Agile methods
different? (1)
• Most agile methods attempt to minimize risk by
developing software in short timeboxes, called
iterations, which typically last one to four weeks.

• Each iteration is like a miniature software project


of its own, and includes all the tasks necessary
to release the mini-increment of new
functionality: planning, requirements.
What makes Agile methods
different? (2)
• While an iteration may not add enough
functionality to warrant releasing the
product, an agile software project intends
to be capable of releasing new software at
the end of every iteration.

• At the end of each iteration, the team re-


evaluates project priorities.
What makes Agile methods
different? (3)
• Agile methods emphasize face-to-face
communication over written documents.
• Most agile teams are located in a bullpen and
include all the people necessary to finish
software.
– At a minimum, this includes programmers and their
"customers."
– The bullpen may also include testers, interaction
designers, technical writers, and managers.
Manifesto for Agile Software Development

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†

† Robert C. Martin, 2002, Agile Software Development, Pearson Education


Principles behind the Agile
Manifesto
Our highest priority is to satisfy the customer Working software is the primary measure of
through early and continuous delivery of progress.
valuable software.
Agile processes promote sustainable
Welcome changing requirements, even late in development.
development. Agile processes harness change
for the customer's competitive advantage. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely.
Deliver working software frequently, from a
couple of weeks to a couple of months, with a Continuous attention to technical excellence
preference to the shorter timescale. and good design enhances agility.

Business people and developers must work Simplicity--the art of maximizing the amount
together daily throughout the project. of work not done--is essential.

Build projects around motivated individuals. The best architectures, requirements, and
Give them the environment and support they designs emerge from self-organizing teams.
need, and trust them to get the job done.
At regular intervals, the team reflects on how
The most efficient and effective method of to become more effective, then tunes and
conveying information to and within a adjusts its behaviour accordingly.
development team is face-to-face conversation.
What is Agile Software
development
• Anything you want to attach a label “Agile” to …

• Agile Methodologies are characterised by being


– lightweight and iterative
• client side (your customers)
– quick
– responsive
– flexible
• server side (your programmers)
– empowering
– able to adapt to change
Sounds familiar?
• DSDM was developed in this country
independently of the Agile Alliance in the USA.
• It is now a part of the Agile Alliance
– Considered first Agile method widely in use in Europe
• DSDM is not used widely in the States.
– Not developed in the USA
– Lots of other methods already out there
– Does it offer anything different?
Agile Methods
• Some of well-known agile software development
methodologies include:

– Extreme Programming (XP)


– Scrum
– Adaptive Software Development (ASD)
– Crystal Clear and Other Crystal Methodologies
– DSDM
– Feature Driven Development
– Lean software development
Comparison with other methods

<--Agile--> <--Iterative--><--Waterfall-->
<----|----------------|-----------------|---------->
Adaptive Predictive
Adaptive methods
• Focus on adapting quickly to changing
realities.
• When the needs of a project change, an
adaptive team changes as well.
• An adaptive team will have difficulty
describing exactly what will happen in the
future.
Predictive methods
• Focus on planning the future in detail.
• A predictive team can report exactly what
features and tasks are planned for the entire
length of the development process.
• Predictive teams have difficulty changing
direction. The plan is typically optimized for the
original destination and changing direction can
cause completed work to be thrown away and
done over differently.
Criticism of Agile methods
• Agile development is sometimes criticised as
cowboy coding.

• Criticisms include:
– level of structure and necessary documentation
– only works with senior-level developers
– incorporates insufficient software design
– requires too much cultural change to adopt
But on the positive side…..
• Agile methods recognise people power!
• Agile methods recognise the need to
develop with fast timescales
• Agile methods recognise that
requirements do change over time
The future?
• Who really knows?
• Criticism of agile methods seems popular
recently.
• Known to work but a change to the culture
of the organisation is required
• Risk needs to be carefully assessed
before starting project..
Extreme programming
SCRUM
SCRUM and XP

También podría gustarte