Agile Software Development

21
K.Ingram 1 Sept 2007 Agile Software Development

description

Agile Software Development. Contents. Agile Software Development: What is it? Agile’s Values, Principles, Practices The Spiral Life Cycle Agile Methodologies Managing an Agile Project. What is Agile Development?. A concept of lightweight process i.e. avoiding unnecessary overheads - PowerPoint PPT Presentation

Transcript of Agile Software Development

Page 1: Agile Software Development

K.Ingram 1 Sept 2007

Agile Software Development

Page 2: 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

Page 3: Agile Software Development

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)

Page 4: Agile Software Development

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

Page 5: Agile Software Development

K.Ingram 5 Sept 2007

The phases of RADUser design

JAD workshop

PrototypingCASE

Requirements planning

JRP workshop

Cutover

Construction

PrototypingCASE

KEY

Phases

Techniques

Tools

Page 6: Agile Software Development

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

Page 7: Agile Software Development

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)

Page 8: Agile Software Development

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

Page 9: Agile Software Development

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…– …..

Page 10: Agile Software Development

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)

Page 11: Agile Software Development

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

Page 12: Agile Software Development

Agile Model Driven Develpment

K.Ingram 12 Sept 2007

[www.agilemodeling.com]

Page 13: Agile Software Development

K.Ingram 13 Sept 2007

Some Agile Methodologies(in no particular order)

1. SCRUM

2. DSDM

3. eXtreme Programming

Page 14: Agile Software Development

K.Ingram 14 Sept 2007

SCRUM

www.controlchoas.com/APMG_files/slide0202.htm [8/8/02]

Page 15: Agile Software Development

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

Page 16: Agile Software Development

K.Ingram 16 Sept 2007

DSDM

Tested prototype

Tested product

User functionality

Non- functional requirements

Page 17: Agile Software Development

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:

Page 18: Agile Software Development

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

Page 19: Agile Software Development

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

Page 20: Agile Software Development

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.

Page 21: Agile Software Development

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