Agile Development

36
Faculty of Computer Science University of Indonesia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topic 04: Agile Development 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

description

kostav

Transcript of Agile Development

Faculty of Computer Science

University of Indonesia

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Topic 04: Agile Development

1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

References

[Pressman, 2010] Pressman, Roger S. Software Engineering: A Practitioner’s Approach. New York: McGraw-Hill Higher Education, 2010.

[Sommerville] Sommerville, Ian, Software Engineering, 9th Edition, Pearson - Addison Wesley, England, 2011.

2

AGILITY

3

What is “Agility” ?

Effective (rapid and adaptive) response to change

Effective communication among all stakeholders

Drawing the customer onto the team

Organizing a team so that it is in control of the work performed

Rapid, incremental delivery of software

6

Plan-driven Approach v.s. Agility

[Sommerville]

For some types of software, such as safety-critical control systems, where a complete analysis of the system is essential, a plan-driven approach is the right one.

In a fast-moving business environment, the requirements are likely to change quickly and unpredictably due to external factors. If using a plan-driven approach, the software may then be out-of-date when it is delivered.

7

Plan-driven Approach

Identifies separate stages in the software process with outputs associated with each stage.

Iteration occurs within activities with formal documents used to communicate between stages of the process

Example: requirements will evolve until a requirements specification is produced, as an input to design and implementation

Agile Approach

Consider design and implementation to be the central activities in the software process Incorporate other activities,

such as requirements elicitation and testing, into design and implementation

Iteration occurs across activities

requirements and design are developed together, rather than separately

[Sommerville]

8

Iteration Plan-driven Approach v.s. Agility

9

[Sommerville]

An Agile Process

Is driven by customer descriptions of what is required (scenarios)

Recognizes that plan are short-lived

Develops software iteratively with a heavy emphasis on construction activities

Delivers multiple ‘software increments’

Adapts as change occur

10

The Manifesto for Agile Software Development

“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

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

Kent Beck et al

11

Principles of Agile Methods

[Sommerville]

Customer involvement

Customers should be closely involved throughout the development process.

Incremental delivery

People, not process

The skills of the development team should be recognized and exploited

Embrace change

Maintain simplicity 12

Agility and the Cost of Change

13

Agility Principles 1. Our highest priority is to satisfy the customer

through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

14

Agility Principles 5. Build projects around motivated individuals. Give them

the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

15

Agility Principles

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity - the art of maximizing the amount of work not done - is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

16

Human Factors The process molds to the needs of the people and team,

not the other way around

Key trait must exist among the people on an agile team and the team itself:

Competence

Common focus

Collaboration

Decision-making ability

Fuzzy problem-solving ability

Mutual trust and respect

Self organization

17

Types of System for Agile Development

[Sommerville]

small or medium-sized product for sale

custom system development within an organization

where there is a clear commitment from the customer to become involved in the development process and

where there are not a lot of external rules and regulations that affect the software

18

AGILE DEVELOPMENT PROCESS MODELS

19

Extreme Programming (XP)

http://search.dilbert.com

20

The most widely used agile process,

originally proposed by Kent Beck

Extreme Programming (XP)

http://search.dilbert.com

21

Extreme Programming (XP)

22

unit t est

cont inuous int egrat ion

accept ance t est ing

pair

programming

Release

user st ories

values

accept ance t est crit eria

it erat ion plan

simple design

CRC cards

spike solut ions

prot ot ypes

refact oring

sof tware increment

project velocit y computed

construction

of unit test

(test cases)

Extreme Programming (XP)

XP Planning

Begins with the creation of “user stories”

Customer assisns a value (i.e. priority) for each story

Agile team assesses each story and assigns a cost (measured in development weeks)

Stories are grouped for a deliverable increment

A commitment is made on delivery date

After the first increment, “project velocity” is used to help define subsequent delivery dates for other increments

23

Extreme Programming (XP)

XP Design

Follows the KISS principle

Encourage the use of Class Responsibility Collaboration (CRC) cards

For difficult design problems, suggests the creation of “spike solution” - a design prototype

Encouraging “refactoring” - an iterative refinement of the internal program design

24

Extreme Programming (XP)

http://search.dilbert.com

25

Extreme Programming (XP)

XP Coding

Recommends the construction of a unit test for a store before coding commences

Encourages “pair programming”

XP Testing

All unit tests are executed daily

“Acceptance tests” are defined by the customer and executed to assess customer visible functionality

26

XP Release Cycle

[Sommerville]

27

Extreme Programming (XP)

http://www.extremeprogramming.org/map/project.html

28

SCRUM http://newsimg.bbc.co.uk/media/images/44181000/jpg/_44181384_eng_sa_scrum416.jpg

Scrum in a game of rugby

29

SCRUM Originally proposed by Schwaber and Beedle

Scrum - distinguishing features

Development work is partitioned into “packets” called product backlog

Testing and documentation are on-going as the product is constructed

Work occurs in “sprints” and is derived from a “backlog” of existing requirements

Meeting are very short and sometimes conducted without chairs

“Demos” are delivered to the customer with the time-box allocated

30

Phases in Scrum

Outline Planning

establish the general objectives for the project and design the software architecture

Series of Sprint Cycles

each cycle develops an increment of the system

Project Closure

wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project

31

Sprint Cycle

Sprints are fixed length, normally 2–4 weeks

The starting point for planning is the product backlog

Assessment phase: backlog is reviewed, priorities and risks are assigned

Selection

Each project team select features and functionality to be developed during the sprint

Short daily meetings

At the end of the sprint, the work done is reviewed and presented to stakeholders. The next sprint cycle then begins.

32

http://35qk152ejao6mi5pan29erbr9.wpengine.netdna-cdn.com/wp-content/uploads/2013/05/Scrum_Framework.jpg

33

Other Agile Process Models

Adaptive Software Development

Dynamic System Development Method

Crystal

Feature Driven Development

Agile Modeling

Agile Unified Process

35

Q & A