2 RDM Agile Approaches

22
Rapid Development Methods Lecture 2 Agile Approaches

Transcript of 2 RDM Agile Approaches

Page 1: 2 RDM Agile Approaches

Rapid Development

Methods

Lecture 2 – Agile

Approaches

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

Page 3: 2 RDM Agile Approaches

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

Page 4: 2 RDM Agile Approaches

© 2007 the University of Greenwich

Problem Complexity

TheRequirementsDocument

10,000 words

The Top

Level

Design

The Product4 Meters of A4

The

Software

Program

100,000

Lines

TheDetailedDesign

1,500modules

?

InitialProposal•A bullet pointed A4 Executive Summary

TheContract

2,000words

Page 5: 2 RDM Agile Approaches

© 2007 the University of Greenwich

Software Engineering

Problem Domain

Implementation

Architectural

Modelling

Logical Modelling

Solution Domain

Application

Domain

WhatHow

Comprehension

Phenomena, Concepts,

Entities, Activities,

Roles, Assertions

Frameworks, Components,

Computational models, Testing

Invention

Compilers, Linkers,

Loaders, Builders

Realisation

Page 6: 2 RDM Agile Approaches

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.

Page 7: 2 RDM Agile Approaches

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.

Page 8: 2 RDM Agile Approaches

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.

Page 9: 2 RDM Agile Approaches

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

Page 10: 2 RDM Agile Approaches

Principles behind the Agile

ManifestoOur 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.

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 processes promote sustainable

development.

The sponsors, developers, and users should be

able to maintain a constant pace indefinitely.

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 behaviour accordingly.

Page 11: 2 RDM Agile Approaches

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

Page 12: 2 RDM Agile Approaches

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?

Page 13: 2 RDM Agile Approaches

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

Page 14: 2 RDM Agile Approaches

Comparison with other methods

<--Agile--> <--Iterative--><--Waterfall-->

<----|----------------|-----------------|---------->

Adaptive Predictive

Page 15: 2 RDM Agile Approaches

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.

Page 16: 2 RDM Agile Approaches

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.

Page 17: 2 RDM Agile Approaches

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

Page 18: 2 RDM Agile Approaches

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

Page 19: 2 RDM Agile Approaches

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

Page 20: 2 RDM Agile Approaches

Extreme programming

Page 21: 2 RDM Agile Approaches

SCRUM

Page 22: 2 RDM Agile Approaches

SCRUM and XP