Agile development

Post on 27-Jan-2015

166 views 0 download

Tags:

description

Agile development

Transcript of Agile development

David Díaz Clavijo

5/6/12

Universidad de Granada

Agile Development

4 June 2012 Agile Development 2

Agile Development: OverviewAgile Development: Overview

Agile Development: Overview– What is it?

– History

– Agile Manifest

– Criticism

Feature-Driven Development (FDD)

SCRUM

Extreme Programming

Comparative

Social abilities in group work: My own perception

Bibliography and sources

4 June 2012 Agile Development 3

What is it?

“Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.”

Wikipedia.org

4 June 2012 Agile Development 4

4 June 2012 Agile Development 5

History

¿Why?

¿When?

¿How?

4 June 2012 Agile Development 6

History

¿Why?

¿How?

¿When? Mid 90's

Heavyweight methods:Heavily regulatedRegimentedMicromanaged

1995 Scrum Crystal Clear Adaptative Software DevelopmentFeature Driven DevelopmentDynamic System Development Method

1996 Extreme Programming2001 Manifest for Agile Develoment

4 June 2012 Agile Development 7

4 June 2012 Agile Development 8

Agile Manifest

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/

4 June 2012 Agile Development 9

Criticism

Developer-centric rather than user-centric

– Mike Gualtieri answered : “Developers are not coders

but experience creators”

Doesn't focus on product design

Inefficient in large organizations

Too extreme, better mix approach

4 June 2012 Agile Development 10

Feature-Driven Development (FDD )Overview

Develop Overall Model

Build Feature List

Plan by feature

Design by feature

Build by feature

4 June 2012 Agile Development 11

Feature-Driven Development (FDD ) 1

4 June 2012 Agile Development 12

Feature-Driven Development (FDD ) 2

4 June 2012 Agile Development 13

Feature-Driven Development (FDD ) 3

4 June 2012 Agile Development 14

Feature-Driven Development (FDD ) 4

4 June 2012 Agile Development 15

Feature-Driven Development (FDD ): Percentage time

4 June 2012 Agile Development 16

Scrum: Overview focus on definitions

RequirementsHas to be Finished in

8 hours

RequirementsFor time-boxed

User story:As a <user type>

I want to <do some action>

so that <desired result>

4 June 2012 Agile Development 17

Scrum: Roles and meetings

Roles– Scrum Master: Servant leadership– Product owner: Represent stakeholder– Development team: Self-organize.

Meetings– Daily Scrum:

● Every morning the first step.● 15 minutes● What you did/are you doing? Any blocks?

– Backlog grooming: Improving backlog● Team decide how many peer week● No longer than hour

4 June 2012 Agile Development 18

Scrum: Meetings

Meetings– Scrum of scrums:

● After Daily scrum● Focus on overlap areas and integration● One voice per group. ● What your team did/are doing? Any block?

– Sprint planning meeting● At beginning of the sprint● Prepare Sprint Backlog● 8 hour

– 1st 4 hours: Product owner + team: prioritizing backlog

– 2nd 4 hours: Team only

4 June 2012 Agile Development 19

Scrum: Meetings

Meetings– Sprint review meeting

● At the end of sprint● Four hour time limit● Review work done and not done● Present work to stakeholders

– Sprint retrospective● What went well/wrong during the sprint?● How can we improved?

4 June 2012 Agile Development 20

SCRUM: Overview focus on meetings

Backlog groomingDaily ScrumScrum of scrums

Sprint Planning Sprint reviewSprint retrospective

4 June 2012 Agile Development 21

Extreme Programming

4 June 2012 Agile Development 22

Extreme Programming: Activities and Values

ActivitiesCodingTestingListeningDesigning

ValuesCommunication: Frequent verbal communication and

feedbackSimplicity: YAGNI :You ain't gonna need it Feedback

From system: Unit testFrom customers: Acceptance test by customers and testers

Respect

4 June 2012 Agile Development 23

Extreme Programming: Practices

Fine scale feedback

Pair programming

Planning game

Test Driven Development

Whole team: Continuous contact with customer

Continuous process

Continuous integrations: Uploading every pair of hours

Design improvement: Multiple maintenance implies refactor

Small releases

4 June 2012 Agile Development 24

Extreme Programming: Practices

Fine scale feedback

Pair programming

Planning game

Test Driven Development

Whole team: Continuous contact with customer

Continuous process

Continuous integrations: Uploading every pair of hours

Design improvement: Multiple maintenance implies refactor

Small releases

4 June 2012 Agile Development 25

Extreme Programming: Planning Game

Release planning Focus on model the problem. Customers and developers are involved

Iteration PlanningOrganize for implementationOnly developers are involved

Planning Game

Release Planning Iteration Planning

Exploration Phase

Commitment PhaseSteering Phase

Exploration Phase

Commitment Phase

Steering Phase

Sort by

value

Sort by risk

Set velocity

4 June 2012 Agile Development 26

Extreme ProgrammingPlanning Game: Release planning

Release planning by customers and developers. Exploration Phase:

Commitment PhaseRisk: Completeness(0-2), Volatility (0-2), Complexity (0-2)

Steering Phase: Review to guide

Planning Game

Release Planning

Exploration phase Commitment phase Steering phase

Write story

Estimate story

Split story

Sort

by

value

Sort by risk:

Completeness 0-2

Volatility 0-2

Complexity 0-2

Set

velocity

Review to guide:

Change:

Priorities

Estimations

4 June 2012 Agile Development 27

Extreme Programming Planning Game: Iteration planning

Planning Game

Iteration Planning

Exploration Phase Commitment Phase Steering Phase

Requirements → Tasks cards

Combine/split tasks

Estimate tasks

Programmer pick task

Estimate task

Set load factor

Balancing

Get task card

Find partner

Design task

Write unit test

Write code

Run test

Refactor

Run Functional test

4 June 2012 Agile Development 28

Extreme Programming: Practices

Fine scale feedback

Pair programming

Planning game

Test Driven Development

Whole team: Continuous contact with customer

Continuous process

Continuous integrations: Uploading every pair of hours

Design improvement: Multiple maintenance implies refactor

Small releases

4 June 2012 Agile Development 29

Extreme Programming: Practices

Shared understanding

Coding standard

Collective code ownership

Simple design

System metaphor

Programmer welfare: No over work.

4 June 2012 Agile Development 30

Extreme ProgrammingCriticism

A methodology is only as effective as the people involved

Bleed money from customers through lack of defining a deliverable

Incorporates insufficient software design

Can be very inefficient: Several times same code written

Impossible to develop realistic estimates of work effort needed

Can increase the risk of scope creep

Non-functional quality attributes are hard to be placed as user stories

4 June 2012 Agile Development 31

Comparative

FDD Scrum Extreme

Programmersinvolved

50 9 9

Need senior developers

Some groups All All

4 June 2012 Agile Development 32

Social abilities in group work: My own perception

Social abilities are necessary for group work

Critics are good. It does not matter where they come from,

they allow us to improve. It is feedback.

Perfect solution is not optimal solution

Respect

Define the objective of the group and everyone will know

what to do

Confident in us and others

4 June 2012 Agile Development 33

Bibliography and sources

Wikipedia English Version.

It has been a summary and refactoring of Wikipedia

articles about these topics.

4 June 2012 Agile Development 34

¡ THE END !

Thanks for your attention