Comparative
Development Methodologies
For the BSc IS&M Programme
Lecture 4
Agile Methodologies
Dell Zhang
Birkbeck, University of London
Agile Methodologies
Reaction against heavyweight methodologies
The crushing weight of corporate bureaucracy
The rapid pace of information technology change
The dehumanizing of detailed plan-driven
development
Evolved from the mid 1990s
Originally called „lightweight‟ methodologies
Sounds not serious/robust enough
Agile Alliance
A weekend in February 2001 at Snowbird, Utah.
Agile Methodologies
eXtreme Programming (XP)
SCRUM
Dynamic Systems Development Method
(DSDM)
Feature-Driven Development (FDD)
Adaptive Software Development (ASD)
Crystal Clear
Agile Modeling
......
Agile Principles
Our highest priority is to satisfy the customer
through early and continuous delivery of valuable
software.
Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.
Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to
the shorter timescale.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
Agile Principles
Business people and developers must work together
daily throughout the project.
Build projects around motivated individuals. Give
them the environment and support they need, and
trust them to get the job done.
The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.
Working software is the primary measure of
progress.
Agile Principles
Continuous attention to technical excellence and
good design enhances agility.
Simplicity – the art of maximizing the amount of
work not done – is essential.
The best architectures, requirements, and designs
emerge from self-organizing teams.
At regular intervals, the team reflects on how to
become more effective, then tunes and adjusts its
behavior accordingly.
Ongoing Debate
Are we returning back to cowboy coding?
Not really.
Agile Methodologies do have disciplines.
Criticism
Hacker Interpretations
e.g.,
“responding to change over following a plan”
“Great! Now I have a reason to avoid planning and to
just code up whatever comes next.”
http://agilemanifesto.org/
Would you like to
sign it?
The Planning Spectrum
B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.
Agility
Agility (in a software development sense)
The ability to respond quickly to change & environment
The adaptability to suite new or unexpected challenges
Where does agility come from?
Agile methodologies derive much of their agility by
relying on the tacit knowledge embodied in the
team, rather than writing the knowledge down in
plans.
Developers
Agile Methodologies
“put a premium on having premium people”
critical people factors: amicability, talent, skill and
communication
Plan-Driven Methodologies
invest in life-cycle architectures and plans
use these to facilitate external reviews
Customers
Agile Methodologies
customers operate in dedicated mode with the
development team
Plan-Driven Methodologies
avoid tacit knowledge shortfalls via documentation
avoid onsite-customer shortfalls via architecture
review boards and independent expert project
reviews
Requirements
Agile Methodologies
in turbulent, highly-change environments
emergent rather than prespecifiable
Plan-Driven Methodologies
determined in advance
including via prototyping
remain relatively stable
with change rates with <1% per month
Architecture
Agile Methodologies
emphasizes simplicity: maximizing the work not
done
designed for current requirements
YAGNI
Plan-Driven Methodologies
emphasizes heavyweight architecture and design
documentation
designed for current and forseeable requirements
Refactoring
Agile Methodologies
assumes that refactoring is essentially free (with
great developers and small systems)
Plan-Driven Methodologies
assumes that refactoring effort increases with the
number of requirements (with less-than-great
developers or very large systems)
the 20% problems (causing 80% rework) come
largely from „architecture-breakers‟
Size
Agile Methodologies
need tightly coordinated teamwork
e.g., face-to-face communication
are suitable for small teams (< 15 or 20 people)
Plan-Driven Methodologies
scale better to larger (million-line) projects
Primary Objective
Agile Methodologies
rapid value
early and continuous delivery
Plan-Driven Methodologies
high-assurance
predictability, repeatability, and optimization
B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.
Risk Management
How much planning is enough?
Risk Exposure
RE = P(L) x S(L)
Probability of Loss – P(L)
Size of Loss – S(L)
REQuality + RESpeed
REQuality is caused by inadequate plans
RESpeed is caused by delays (market share erosion)
B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.
Agile Methodologies - Exercise
What are the aspects of software
development that all agile methodologies
share?
(A) User involvement is vital to success.
(B) Build and release software in small increments.
(C) Attention to quality and excellence.
(D) Conformance to standards.
Teach Yourself Extreme Programming In 24 Hours.
Video
Are You Agile or Are You Fragile?
by Scott Ambler
http://video.google.com/videosearch?q=+Are+You
+Agile+or+Are+You+Fragile
Take Home Messages
Agile Manifesto
Agile vs. Plan-Driven
The Planning Spectrum
Home Ground
Comparative Risk Exposure Profiles