Agile Methods for NTU Software Engineers

Preview:

DESCRIPTION

A 1 hour presentation given to 2nd year NTU students on Feb 29 2012 by Jolly Tan.Covers a brief overview of Agile, a comparison of XP and Scrum and finishing with a quick introduction to Lean Startup, Lean and Continuous Delivery thinking.

Citation preview

Agile MethodsAndy Marks

amarks@thoughtworks.com

Technical PrincipalThoughtWorks

Jolly Tanj

olly.tan@thoughtworks.com

Lead ConsultantThoughtWorks

[Aa]gile geeks

AGILE: METHODOLOGY AND PRINCIPLES

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software Architecture:• Agile proves out

architecture sooner – significant reduction of technical risk

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software Architecture:• Agile proves out

architecture sooner – significant reduction of technical risk

Development Productivity:• Agile teams work with

their tools for longer and become more proficient• Seasoned Agile teams produce software very rapidly

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

End-User Feedback:• Validates business benefits• Makes execution more successful• Reduces “false features”• Drives high IT value

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software Architecture:• Agile proves out

architecture sooner – significant reduction of technical risk

Development Productivity:• Agile teams work with

their tools for longer and become more proficient• Seasoned Agile teams produce software very rapidly

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

End-User Feedback:• Validates business benefits• Makes execution more successful• Reduces “false features”• Drives high IT value

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software Architecture:• Agile proves out

architecture sooner – significant reduction of technical risk

Risk:• Virtually eliminates late

surprises

Development Productivity:• Agile teams work with

their tools for longer and become more proficient• Seasoned Agile teams produce software very rapidly

AgileDevelopment

TraditionalDevelopment

Agile versus Traditional Development

$

Code

Requirements GatheringProject Plan/Estimation

Use Cases / Functional Specs

Design Specifications

Test

Fix / Integrate

Level StoriesVision & High

Release 1

Release 2

Release 3

Release 4

$

$

$

$

End-User Feedback:• Validates business benefits• Makes execution more successful• Reduces “false features”• Drives high IT value

Project Estimates:• Agile gives more accurate

estimates earlier in the project• Progress measured by tested

software Architecture:• Agile proves out

architecture sooner – significant reduction of technical risk

Risk:• Virtually eliminates late

surprises

Development Productivity:• Agile teams work with

their tools for longer and become more proficient• Seasoned Agile teams produce software very rapidly Software in production:

• Agile approach reduces time

to market• Business decides when to

go live• Reduces risk of failure

due to early exit/reduction of project scopeAgile

Development

TraditionalDevelopment

Making the right choice ...

Agile Traditional

Volatilerequirements

Stablerequirements

Time to marketmatters

Co-locatedteam

Automation

Segregatedteam

Customer not accessible

Little Automation

Customer readily available

Fixed scopematters

What is Agile?Agile is an iterative and incremental approach to software development

Agile Manifesto* …

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

And a toolbox of practices (e.g. continuous integration, stand-ups, pair programming, test driven development, refactoring, collective code ownership, etc)

* while there is value in the items on the right, we value the items on the left more

What Agile is not

Not a specific process

Not one size fits all

A team is Agile they are not “doing Agile”

A TALE OF 2 METHODOLOGIES

XP versus Scrum

XP versus Scrum

XP versus Scrum

Focus: Programming

Focus:

Project Management

XP versus ScrumFormalised in 1999

Main collaborators: Ward Cunningham, Ron Jeffries

Practices date back to early 1960s

Motto: “if it’s good/hard, do it a lot”

Formalised in 1996

Main collaborators: Jeff Sutherland, Mike Beedle

Most popular form of Agile in use today*

Source: http://www.versionone.com/state_of_agile_development_survey/11/

Scrum Overview

Source: http://www.mountaingoatsoftware.com/scrum/overview

XP PracticesOn-site Customer

Metaphor

Collective

Ownership

Continuous

Integration

Short Releas

es

Planning

Game40

Hour Week

Refactoring

Pair Program

ming

Testing

Coding Standa

rds

Simple

Design

XP and Scrum

Scrum alone

XP alone

Scrum and XP

?

Source: http://www.versionone.com/state_of_agile_development_survey/11/

XP and Scrum

CLIENT EXPERIENCES

Source: http://www.versionone.com/state_of_agile_development_survey/11/

Client Expectations with Agile

Case Study – Biomed Centralhttp://www.biomedcentral.com

Highlights• Started in Feb 2010 (X)• Release 1 : X + 3 months• Subsequent releases : Monthly

• >150 journals, including http://journal.chemistrycentral.com/• Contacts search• Online submission• Peer review workflow• 3rd party transformation workflow

• http://rd.springer.com/

BEST* PRACTICES

Agile assumes you know what to build…

•Minimum Viable Product

•Validated Learning

•Empirical User Research

Agile stops short of the “Last Mile”…

•Automate Everything

•Separate Infrastructure Release from Business Release

•De-risk Deployment

Agile doesn’t always appeal to business

people…•Eliminate Waste

•Reduce Cycle Time

•Quality Focus

http://www.meetup.com/Agile-Singapore/

http://www.meetup.com/devops-singapore/

Local Communitie

s

http://citconf.com/singapore2012/index.php

Local Conferences

Career Development

Journeyman

Apprentice

Master

QUESTIONS?

Recommended