40
Agile Methods Andy Marks [email protected] om Technical Principal ThoughtWorks Jolly Tan j olly.tan@thoughtworks .com Lead Consultant ThoughtWorks

Agile Methods for NTU Software Engineers

Embed Size (px)

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

Page 1: Agile Methods for NTU Software Engineers

Agile MethodsAndy Marks

[email protected]

Technical PrincipalThoughtWorks

Jolly Tanj

[email protected]

Lead ConsultantThoughtWorks

Page 2: Agile Methods for NTU Software Engineers
Page 3: Agile Methods for NTU Software Engineers

[Aa]gile geeks

Page 4: Agile Methods for NTU Software Engineers
Page 5: Agile Methods for NTU Software Engineers
Page 6: Agile Methods for NTU Software Engineers
Page 7: Agile Methods for NTU Software Engineers
Page 8: Agile Methods for NTU Software Engineers
Page 9: Agile Methods for NTU Software Engineers

AGILE: METHODOLOGY AND PRINCIPLES

Page 10: Agile Methods for NTU Software Engineers

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

Page 11: Agile Methods for NTU Software Engineers

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

Page 12: Agile Methods for NTU Software Engineers

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

Page 13: Agile Methods for NTU Software Engineers

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

Page 14: Agile Methods for NTU Software Engineers

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

Page 15: Agile Methods for NTU Software Engineers

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

Page 16: Agile Methods for NTU Software Engineers

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

Page 17: Agile Methods for NTU Software Engineers

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

Page 18: Agile Methods for NTU Software Engineers

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

Page 19: Agile Methods for NTU Software Engineers

What Agile is not

Not a specific process

Not one size fits all

A team is Agile they are not “doing Agile”

Page 20: Agile Methods for NTU Software Engineers

A TALE OF 2 METHODOLOGIES

Page 21: Agile Methods for NTU Software Engineers

XP versus Scrum

Page 22: Agile Methods for NTU Software Engineers

XP versus Scrum

Page 23: Agile Methods for NTU Software Engineers

XP versus Scrum

Focus: Programming

Focus:

Project Management

Page 24: Agile Methods for NTU Software Engineers

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/

Page 25: Agile Methods for NTU Software Engineers

Scrum Overview

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

Page 26: Agile Methods for NTU Software Engineers

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

Page 27: Agile Methods for NTU Software Engineers

XP and Scrum

Scrum alone

XP alone

Scrum and XP

?

Page 28: Agile Methods for NTU Software Engineers

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

XP and Scrum

Page 29: Agile Methods for NTU Software Engineers

CLIENT EXPERIENCES

Page 30: Agile Methods for NTU Software Engineers

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

Client Expectations with Agile

Page 31: Agile Methods for NTU Software Engineers

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/

Page 32: Agile Methods for NTU Software Engineers

BEST* PRACTICES

Page 33: Agile Methods for NTU Software Engineers
Page 34: Agile Methods for NTU Software Engineers

Agile assumes you know what to build…

•Minimum Viable Product

•Validated Learning

•Empirical User Research

Page 35: Agile Methods for NTU Software Engineers

Agile stops short of the “Last Mile”…

•Automate Everything

•Separate Infrastructure Release from Business Release

•De-risk Deployment

Page 36: Agile Methods for NTU Software Engineers

Agile doesn’t always appeal to business

people…•Eliminate Waste

•Reduce Cycle Time

•Quality Focus

Page 37: Agile Methods for NTU Software Engineers

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

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

Local Communitie

s

Page 38: Agile Methods for NTU Software Engineers

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

Local Conferences

Page 39: Agile Methods for NTU Software Engineers

Career Development

Journeyman

Apprentice

Master

Page 40: Agile Methods for NTU Software Engineers

QUESTIONS?