2 RDM Agile Approaches
2 RDM Agile Approaches
2 RDM Agile Approaches
Methods
Lecture 2 – Agile
Approaches
What are Agile Methods?
• Agile methodologies are a family of methodologies, not a
single approach to software development.
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
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--> <--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