Agile Software Development
description
Transcript of Agile Software Development
K.Ingram 1 Sept 2007
Agile Software Development
K.Ingram 2 Sept 2007
Contents
Agile Software Development:1. What is it?
2. Agile’s Values, Principles, Practices
3. The Spiral Life Cycle
4. Agile Methodologies
5. Managing an Agile Project
K.Ingram 3 Sept 2007
What is Agile Development?
• A concept of lightweight process i.e. avoiding unnecessary overheads
• Aims to avoid some of the pitfalls in software development whilst achieving good results
• It is a further step forward from Rapid Applications Development (RAD)
K.Ingram 4 Sept 2007
Rapid Applications Development
• NOT a methodology – an approach that includes user-centred design
• DSDM is one methodology
• recognises the 80:20 rule (Pareto’s Law)• Phases of RAD:
– Requirements planning– User design– Construction– Cutover
K.Ingram 5 Sept 2007
The phases of RADUser design
JAD workshop
PrototypingCASE
Requirements planning
JRP workshop
Cutover
Construction
PrototypingCASE
KEY
Phases
Techniques
Tools
K.Ingram 6 Sept 2007
RAD: pros and cons
• avoids specification
becoming out of date before implementation
• Allows speedy implementation of at least some parts of system
• helps meet user’s requirements
• Needs good staff –
highly skilled and highly focused and able to work under pressure
• Needs a range of good software development tools
• Difficult for loosely-scoped projects
K.Ingram 7 Sept 2007
Agile: In General terms…
• As guidance, it has sets of – Values– Principles – Practices
• Recognises the 80:20 rule (Pareto’s Law)
K.Ingram 8 Sept 2007
The Agile Values
“While there is value in the items on the right, we value the items on the left more.
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation• Responding to change over following a plan”[http://agilemanifesto.org/]
See also: http://www.ambysoft.com/essays/agileManifesto.html
K.Ingram 9 Sept 2007
The Agile Principles
• See http://agilemanifesto.org/principles.html
• They include– Deliver working software frequently… – Welcome changing requirements…– Business people and developers must work
together daily…– …..
K.Ingram 10 Sept 2007
The Agile Practices for Modeling(1)
• A range of stakeholders to be actively involved in decision-making and prioritizing
• Use the appropriate artifact(s) (i.e. technique(s))• Anyone can work on any part of any model• As the model is created, consider how each aspect
can be tested• Create different models (e.g. requirements, essential
use case, etc) in parallel to get different perspectives• Work on another artifact when you get stuck with 1• Keep contents of models as simple as possible
(whilst being extensible)
K.Ingram 11 Sept 2007
The Agile Practices for Modeling(2)
• Keep the models clutter-free • Make models available for others to see• Model in small rather than large increments • Model as a team where there is a core set of
models needed for understanding• Prove the model will work by coding it and
testing it – use iterations• Use the simplest tools depending on the
purpose of the artifact e.g. whiteboards, post-it notes as well as software modeling tools
Agile Model Driven Develpment
K.Ingram 12 Sept 2007
[www.agilemodeling.com]
K.Ingram 13 Sept 2007
Some Agile Methodologies(in no particular order)
1. SCRUM
2. DSDM
3. eXtreme Programming
K.Ingram 14 Sept 2007
SCRUM
www.controlchoas.com/APMG_files/slide0202.htm [8/8/02]
K.Ingram 15 Sept 2007
eXtreme Programming
• Based on the Values of – simplicity, – communication, – feedback, – courage,– humility.
See also: http://www.extremeprogramming.org/index.html
K.Ingram 16 Sept 2007
DSDM
Tested prototype
Tested product
User functionality
Non- functional requirements
K.Ingram 17 Sept 2007
DSDM
• Project management• Estimating• Timeboxing• Configuration
management• Testing• Quality Assurance
• Roles and Responsibilities
• Team structure• Tool environments• Risk management• Building for
maintainability
DSDM covers all parts that standard methodologies cover:
K.Ingram 18 Sept 2007
Managing an Agile Project
1. Present a vision
2. Nurture resources to do the ‘best possible’
3. Remove obstacles
4. Let the team get on with it
• New techniques (e.g. burn-down charts) may be used
K.Ingram 19 Sept 2007
Agile Project Plan
• Vision: what the business operation will look like• Identify business, functional and technical
architecture• Who will do the development?• Identify product releases, milestones and
‘sprints’• Return on Investment: what benefits will there
be and how will they be assessed
K.Ingram 20 Sept 2007
Summary• Agile development uses a lightweight, iterative
approach• Agile’s Values, Principles, Practices support the
concept of ensuring skilled and motivated staff have the information, the tools and the space to get on with it
• It is based on The Spiral Life Cycle• Agile Methodologies include SCRUM, DSDM and XP• Managing an Agile Project still requires identification
of milestones and releases, monitoring of progress and quality, but a new approach is required.
K.Ingram 21 Sept 2007
Agile References
• http://agilemanifesto.org/• http://www.agilealliance.org/• http://www.agilealliance.org/library list of categories of
articles **• http://www.methodsandtools.com/mt/download.php?
summer07• http://www.methodsandtools.com/PDF/mt200702.pdf
esp the 2nd paper ‘What’s wrong with Agile methods: Some principles and values to encourage quantification’
• http://www.controlchaos.com/about about SCRUM **• www.extremeprogramming.org