agile methods for ntu software engineers
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.TRANSCRIPT
Agile MethodsAndy Marks
Technical PrincipalThoughtWorks
Jolly Tanj
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?