Agile development

34
David Díaz Clavijo 5/6/12 Universidad de Granada Agile Development

description

Agile development

Transcript of Agile development

Page 1: Agile development

David Díaz Clavijo

5/6/12

Universidad de Granada

Agile Development

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

Page 3: Agile development

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

Page 4: Agile development

4 June 2012 Agile Development 4

Page 5: Agile development

4 June 2012 Agile Development 5

History

¿Why?

¿When?

¿How?

Page 6: Agile development

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

Page 7: Agile development

4 June 2012 Agile Development 7

Page 8: Agile development

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/

Page 9: Agile development

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

Page 10: Agile development

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

Page 11: Agile development

4 June 2012 Agile Development 11

Feature-Driven Development (FDD ) 1

Page 12: Agile development

4 June 2012 Agile Development 12

Feature-Driven Development (FDD ) 2

Page 13: Agile development

4 June 2012 Agile Development 13

Feature-Driven Development (FDD ) 3

Page 14: Agile development

4 June 2012 Agile Development 14

Feature-Driven Development (FDD ) 4

Page 15: Agile development

4 June 2012 Agile Development 15

Feature-Driven Development (FDD ): Percentage time

Page 16: Agile development

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>

Page 17: Agile development

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

Page 18: Agile development

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

Page 19: Agile development

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?

Page 20: Agile development

4 June 2012 Agile Development 20

SCRUM: Overview focus on meetings

Backlog groomingDaily ScrumScrum of scrums

Sprint Planning Sprint reviewSprint retrospective

Page 21: Agile development

4 June 2012 Agile Development 21

Extreme Programming

Page 22: Agile development

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

Page 23: Agile development

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

Page 24: Agile development

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

Page 25: Agile development

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

Page 26: Agile development

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

Page 27: Agile development

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

Page 28: Agile development

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

Page 29: Agile development

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.

Page 30: Agile development

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

Page 31: Agile development

4 June 2012 Agile Development 31

Comparative

FDD Scrum Extreme

Programmersinvolved

50 9 9

Need senior developers

Some groups All All

Page 32: Agile development

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

Page 33: Agile development

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.

Page 34: Agile development

4 June 2012 Agile Development 34

¡ THE END !

Thanks for your attention