21
AGILE PROCESS MODELS

Chapter 03

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chapter 03

AGILE PROCESS MODELS

Page 2: Chapter 03

History

Since Barry Boehm’s Spiral Model (1985) all later

software development was mainly focused towards

Iterative and Incremental Development (IID).

Different Organizations were using this model with

their own set of practices.

Page 3: Chapter 03

Why Agile?

In 1998 Standish Group published the “CHAOS”

report in which they discussed the reasons of project

failures during the recent years.

They analyzed over 23,000 projects and presented

their results regarding the project failures and

success factors.

Page 4: Chapter 03

Why Agile? (contd.)

Results:

Lack of customer involvement

Poor Requirements

Unrealistic Schedules

Lack of Change Management

Lack of Testing

Page 5: Chapter 03

Towards Agile

So many organizations tried to adapt their IID

practices for removing such causes of project

failures.

However there was no standard model to support

them.

Page 6: Chapter 03

Towards Agile ….

In February 2001, a Kent Beck and other 17

process experts interested in promoting modern,

simple IID methods and principles met in Utah to

discuss common ground.

The conference of Utah resulted in the formation of

Agile Alliance with a set of principles for agile

software development named as Agile Manifesto.

Page 7: Chapter 03

Concept of Agile

Agility is “accommodating any change”.

Page 8: Chapter 03

The Manifesto for Agile Software

Development

Kent Beck et al

“We are uncovering better ways of developing

software by doing it and helping others do it.”

Those principles are as follows:

Individuals and interactions over processes and tools.

Working software over comprehensive documentation.

Customer collaboration over contract negotiation.

Responding to change over following a plan.

Page 9: Chapter 03

4.1. What is Agility?

An agile team is able to appropriately respond to

changes.

Changes in software being built

Changes to team members

Changes because of new technology, changes of all

kinds that have impact on product/project.

Agility also encourages team structure and

communication

Project is developed by individuals working in team

Page 10: Chapter 03

What is Agility? (contd.)

Rapid delivery of operational software.

Customer as part of the team.

12 principles from agile alliance who want to

achieve agility

Agile can be applied to any process after fulfilling

certain conditions:

Project team can adapt tasks and develop product

rapidly

Page 11: Chapter 03

4.2.What is An Agile Process?

An agile process addresses these three assumptions:

it's difficult to predict which requirements will stay and which will change.

design and construction are interleaved.

analysis, design, construction, and testing are not as predictable as we might like.

Therefore, the agile process must be adaptable to change.

Must adapt incrementally, and develop incrementally.

Page 12: Chapter 03

What is an Agile Process?

The key to agile process is adaptability to the changing

project and technical conditions.

Agile process must adapt incrementally to progress

forward.

Software increments must be delivered in short time

period.

Get customer feedback and make adaptations

accordingly.

Page 13: Chapter 03

Key Traits of People Working on

Agile Team

Competence

Common focus

Collaboration

Decision making ability

Fuzzy problem solving agility

Mutual Trust and respect

Self Organization

Page 14: Chapter 03

4.3. Agile Process Models

Extreme Programming (XP)

Agile Software Development

Dynamic System Development Method (DSDM)

Scrum

Crystal

Feature Driven Development (FDD)

Agile Modeling

Page 15: Chapter 03

4.3.1. Extreme Programming (XP)

XP is targeted toward OO approach

XP phases

planning

Design

coding

testing.

Page 16: Chapter 03

Planning

planning (set of user-written stories, each with a

priority)

stories= use cases

Customer assign priorities and XP team assign cost

as each release is planned, more stories are

accommodated

Project velocity = # of stories accommodated divided

by number of week of this release

Implement stories in three ways

Immediately

Riskiest first

Higher priority first

Page 17: Chapter 03

Design

Based on KIS principle (keep it simple)

uses CRC (class-responsibility-collaborator)

CRC cards are the ONLY work product of design

Page 18: Chapter 03

Coding

key concept: test cases are created, and then code is

created. Nothing added to code beyond what is

necessary to meet the test (keep it lean)

Pair programming used (don't let the other one drift off

meeting ONLY test case: no extra features that may or

may not be needed in future)

Recommends the construction of a unit test before

coding commences

Page 19: Chapter 03

Testing

All unit tests are executed daily

“Acceptance tests” are defined by the customer and

executed to assess customer visible functionality

Page 20: Chapter 03

4.3.4. Scrum

Developed by Sutherland and his team in early 90’s

Further development performed by Schwaber anad

Beedle

Artifacts in Scrum

Backlog

Sprints

Scrum Meetings

Page 21: Chapter 03

Challenges

The customer is expected to be collaborative,

representative, authorized, committed and

knowledgeable.

Some companies don’t allow the customers to be directly

involve in the development process.

Customer may be too busy to be available all the time.

Organization is not willing to have a full time customer involvement in their work.