102
Agile Methodologies

Agile · Agile Inception Iteration 1 Iteration 2 Retrospective (every 2-4 iterations) Release Planning Meeting (every 12-24 iterations) Iteration 3 ... Iteration n. Iteration

Embed Size (px)

Citation preview

Agile Methodologies

Winston@winstonyw

Pivotal Labs SG2011 ~ 2013

Agile Software Engineering Test Driven Development • Pair Programming • Continuous Integration

Neo Innovations2011 ~ 2013

Agile Software Engineering Test Driven Development • Pair Programming • Continuous Integration

Established

Since Nov 2013

SG Ruby Grouphttp://www.meetup.com/Singapore-Ruby-Group/

June 26-27, 2014 Singapore

!http://www.reddotrubyconf.com

RubyAsia.comA fortnightly newsletter for Ruby news and articles from Asia

Why do Software Projects

Fail?

PLANNING AND ESTIMATING IS

DIFFICULT

Why Are Software Development Task Estimations Regularly Off By A Factor of 2-3

http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3

Waterfallhttp://www.flickr.com/photos/mcbridejc/8885815845/

Problems with Traditional Planning & Estimation

Almighty Documentationhttp://www.flickr.com/photos/sonrisaelectrica/3695743740/

Premature System Design

Activity-Based Management

Estimation == Commitment

Wrong Perception of Estimation

No Customer Collaboration

vs.

“This project will be completed by Christmas.

- Project Manager, based on Traditional Planning

Unrealistic Timeline

Build UAT FixDesign

Time to Ship

Requirements

Waterfall

Syste

m Goal

Misfit

Build UAT FixDesignRequirements

Waterfall Product/Market Fit

SOFTWARE SERVES

BUSINESS

NEEDS

SOFTWARE IS

IMPORTANT!

WHAT’S A BETTER WAY TO PLAN AND ESTIMATE..

Features Resources Duration Cost

AGILE

Manifestoagilemanifesto.org

ManifestoIndividuals and Interactions

!

Working Software

!

Customer Collaboration !

Responding to Change

Processes and Tools !

Comprehensive Documentation !

Contract Negotiation !

Following a Plan

>

Benefits of Agile

HIGHER VISIBILITY.

HIGHER ADAPTABILITY.

REDUCED RISK AND UNCERTAINTY.

GREATER BUSINESS VALUE.

EMPOWERED. PURPOSE.

[for the engineers]

Comparison

Build UAT FixDesign

Time to Ship

Requirements

Waterfall

Time to Ship

High Level ScopeHigh Level DesignDetailed DesignEstimateBuildUAT

Agile

Syste

m Goal

Misfit

Build UAT FixDesignRequirements

Waterfall Product/Market Fit

Misfit

Build + UAT

Scope & Design

Agile Product/Market Fit

Kanban Scrum

Extreme Programming etc

Agile Implementations

Roles in an Agile Project

EngineersProduct OwnerCustomers

Icons: http://www.iconarchive.com/show/sleek-xp-basic-icons-by-deleket

Project Manager

Customers

• Use the system/service

• Provides feedback on the system/service

!

Product Owner

• Represents the stakeholders

• Represents customers and subject matter experts

• Manages product backlog by ranking and prioritizing user stories

• Ensures that the Team delivers value to the business

Project Manager

• Bridge between the Product Owner and Engineers

• Could be the Lead Developer too

!

Engineers

• Write the code

• Estimate the stories effort

• Provide expertise on simplest solution first

• Pivotal to the success or failure of a project

EngineersProduct OwnerCustomers

Project Manager

Icons: http://www.iconarchive.com/show/sleek-xp-basic-icons-by-deleket

Management Practices

Engineering Practices

Management Practices

• Inception

• Iteration Planning

• Release Planning

• Retrospectives

Engineering Practices

• Daily Standups

• Pair Programming

• Test Driven Development

• Continuous Integration/Deployment

Agile Project Life Cycle

Time to Ship

High Level ScopeHigh Level DesignDetailed DesignEstimateBuildUAT

AgileIn

cept

ion

Itera

tions

Agile

Iteration 1Inception Iteration 2

Retrospective (every 2-4 iterations)

Release Planning Meeting (every 12-24 iterations)

Iteration 3 ... Iteration n

Iteration

Build

Release

Iteration Planning Meeting

An Iteration

Stories Generation Stories Clarification Stories Estimation Stories Prioritization

Build

Release

Iteration Planning Meeting

An Iteration

Iteration

Daily Standups Pair Programming Test Driven Development

Build

Release

Iteration Planning Meeting

An Iteration

Iteration

Continuous Integration Continuous Deployment

Build

Release

Iteration Planning Meeting

An Iteration

Iteration

Build

Release

Iteration Planning Meeting

An Iteration

Stories Generation Stories Clarification Stories Estimation Stories Prioritization

Daily Standups Pair Programming Test Driven Development

Continuous Integration Continuous Deployment

Iteration

What is..

Inception

• Alignment and Expectation Setting

• Days to Week depending on size of project

• Agenda:

• Goals (Business, Product, Non-Goals)

• Risks

• High Level Stories Estimation and Prioritization

• Release Planning

[Management Practice]

“.. is used to create a release plan, which lays out the overall project. The release plan is then used to create iteration plans for each individual iteration.

-http://www.extremeprogramming.org/rules/planninggame.html

Release Planning Meetings[Management Practice]

Release Planning Meetings

• Each release is 3 - 6 months

• Business to make decision on MVP, and its features

• Release is planned by Time or Scope

• Project can be quantified by:

• Scope, Time, Resources and Quality

[Management Practice]

Release Planning Meetings[Management Practice]

Today

MVP

1 Iteration

Estimation by Engineers !

Prioritization by Product Owner

Release Planning Meetings[Management Practice]

Today

MVP

1 Iteration

Estimation by Engineers !

Prioritization by Product Owner

“.. is called at the beginning of each iteration. User stories are chosen for this iteration by the customer in order of the most valuable to the customer first.

-http://www.extremeprogramming.org/rules/iterationplanning.html

Iteration Planning Meetings[Management Practice]

Iteration Planning Meetings

• Each iteration is short, 1 - 3 weeks

• Features are prioritized, based on:

• Business value (usually in financial sense)

• Effort required

• Amount and significance of new knowledge gained from feature

• Risk added / removed

[Management Practice]

Retrospective

“.. play a very important role in iterative and incremental development. At the end of every iteration a retrospective is held to look for ways to improve the process for the next one.

- http://en.wikipedia.org/wiki/Retrospective

[Management Practice]

Retrospective

• Reflect and Adapt methods and to help whole team learning

• Benefits of Retrospectives:

• Productivity

• Capability

• Quality

• Capacity

[Management Practice]

Daily Standups

Daily Standups

• General project updates

• Which story did you work on yesterday?

• Which story are you going to work on today?

• Blockages?

[Engineering Practice]

Pair Programming

Pair Programming

• Benefits of Pair Programming:

• Focus

• Knowledge Exchange

• Collective Code Ownership

• High Code Quality

• Engineering Happiness!

[Engineering Practice]

http://winstonyw.com/2012/12/02/pair_programming/

Test Driven Development

“.. when you create your tests first, before the code, you will find it much easier and faster to create your code.

- http://www.extremeprogramming.org/rules/testfirst.html

[Engineering Practice]

Test Driven Development

• Red, Green, Refactor

• Benefits of Test Driven Development:

• Quality

• Accountability

• Maintainability

• Live Documentation

[Engineering Practice]

Continuous Integration/Deployment

Continuous Integration/Deployment

“.. often avoids diverging or fragmented development efforts, where developers are not communicating with each other about what can be re-used, or what could be shared.

- http://www.extremeprogramming.org/rules/integrateoften.html

[Engineering Practice]

WHAT SETS AGILE

APART FROM WATERFALL

High Level Stories Estimation and Prioritization

“.. one or more sentences in the everyday or business language of the end user or user of a system that captures what a user does or needs to do as part of his or her job function.

- http://en.wikipedia.org/wiki/User_story

What is a User Story?

As a <user role>, I want <capability>, so that <business value>.

Structure of a User Story (1)

Acceptance Criteria: 1. <do this> 2. <do that> ... n. <expected result>

Structure of a User Story (2)

As a Facebook User, I want to sign up with my FaceBook account, so that I can start using the service instantaneously.

Example of a User Story (1)

Acceptance Criteria: 1. Go to homepage 2. Click on “Login with Facebook” 3. Wait to be redirected to Facebook Login page 4. Login with your Facebook credentials 5. You will be redirected to homepage 6. You should see “Welcome John” in header

Example of a User Story (2)

HOW TO

ESTIMATE STORIES?

Techniques

ANALOGY.

EXPERT ADVICE.

DIVIDE AND CONQUER.

TECHNIQUES

NOT ENOUGH

TOTAL STORY POINTSVELOCITY DURATION=

Relative Sizing

Relativity

Type Size

Golf Ball

Basketball

Soccer Ball

Ping Pong Ball

Tennis Ball

Let’s Estimate

Estimate the size of these balls. Pick from S, M, L or XL.

S

XL

L

S

M

Size Chart and Story Points

Size Points Points

S 1 1

M 2 2

L 4 3

XL 8 5

XXL 16 8

Size Chart

Incr

easin

g Or

der o

f Com

plex

ity

TOTAL STORY POINTSVELOCITY DURATION=

Velocity

Velocity

• Story Points per Iteration (Throughput)

• Derived based on:

• Estimation

• Historical Data

• Depends on:

• Team Members (skills)

• Team Size

TOTAL STORY POINTSVELOCITY DURATION=

ESTIMATE WITH

PLANNING POKER

ENGINEERS

ESTIMATE !

Product Owner

PRIORITIZE

AGILE IS

CONSTANT FEEDBACK

Thank You