Upload
atlassian
View
6.994
Download
0
Tags:
Embed Size (px)
DESCRIPTION
New feature development in agile should almost always start with a spike. Spikes help to define feature scope, uncover technical unknowns, and provide accurate estimates. In this session we will cover how to introduce spikes into your development cycles and show how Atlassian defines spike goals, focuses spike efforts, and makes feature development more effective.
Citation preview
#atlassian
Anatol i Kazatchkov • Dev Manager • Atlassian • @tolks
Spiking your way to improved Agile development
• Anatoli Kazatchkov• Confluence Dev Manager
• Software Developer for 12 years• Shipped 20+ major, 50+ minor
releases of Confluence since 2007
• … but still learning how to write and ship better software
About Me
What is Agile?
Continues integration Pair programming
User stories
Story point estimationDevelopment Backlog
Test-driven development
Timeboxing
ScrumRefactoring
Planning poker
…
Sprints
Iterative development
Velocity tracking
Domain-driven design
Cross-functional teams
Our Highest Priority Is To Satisfy The Customer Through Early And Continuous Delivery Of Valuable Software.T h e F i r s t P r i n c i p l e o f T h e A g i l e M a n i f e s t o
”
“
Top 5
Spikes Short Sprints
Demos Dogfooding Shipping
Top 5
Spikes
Why?
B e n e f i t s o f a S p i k e
Get Better Estimates
B e n e f i t s o f a S p i k e
Clear up Requirements
B e n e f i t s o f a S p i k e
Eliminate Unknowns
B e n e f i t s o f a S p i k e
Define Scope
B e n e f i t s o f a S p i k e
Validate Chosen Technical Approach
This Should Work… E v e r y S i n g l e E n g i n e e r
”“
B e n e f i t s o f a S p i k e
Validate Chosen Technical Approach
B e n e f i t s o f a S p i k e
Split Work into Tasks
Key takeaways: #atlassian
!
• Better estimates• Refined requirements• Eliminated unknowns• Validated technical approach• Better organised and planned tasks
How?
H o w To R u n a S p i k e
What tasks appropriate for spikes?• Almost anything• Technically difficult tasks• Integration tasks with a lot of
dependencies• Time critical tasks where accurate
estimates required
H o w To R u n a S p i k e
Indicators that spikes will be useful
H o w To R u n a S p i k e
Indicators that spikes will be useful• Spec has a lot of questions
H o w To R u n a S p i k e
Indicators that spikes will be useful• Spec has a lot of questions• Working with new libraries, new code,
unfamiliar part
H o w To R u n a S p i k e
Indicators that spikes will be useful• Spec has a lot of questions• Working with new libraries, new code,
unfamiliar part• Implementation uncertainties
H o w To R u n a S p i k e
Indicators that spikes will be useful• Spec has a lot of questions• Working with new libraries, new code,
unfamiliar part• Implementation uncertainties • New team• Team cannot agree on approach/
estimation during planning
H o w To R u n a S p i k e
Establish Spike Goals
H o w To R u n a S p i k e
Establish Spike Goals
H o w To R u n a S p i k e
Schedule Spike as Task
H o w To R u n a S p i k e
Timebox Spikes
H o w To R u n a S p i k e
Plan Forward: stay 1 sprint ahead
H o w To R u n a S p i k e
Unplanned Spikes
How to run an effective spike:• Establish spike goals• Record spike goals• Schedule spikes as tasks in sprints• Timebox spikes
Start Spiking
S p i k e s i n Yo u r Te a m
You Do it Already
S p i k e s i n Yo u r Te a m
You Do it Already• When creating a tech requirements
document
S p i k e s i n Yo u r Te a m
You Do it Already• When creating a tech requirements
document• When architects designs system
interactions
S p i k e s i n Yo u r Te a m
You Do it Already• When creating a tech requirements
document• When architects designs system
interactions• As a part of working on a big task
S p i k e s i n Yo u r Te a m
Dedicate Time
S p i k e s i n Yo u r Te a m
Plan and Schedule Spikes
S p i k e s i n Yo u r Te a m
Avoid ‘Production’ Code
S p i k e s i n Yo u r Te a m
Avoid ‘Production’ Code
S p i k e s i n Yo u r Te a m
Specify Deliverables
S p i k e s i n Yo u r Te a m
Specify Deliverables
S p i k e s i n Yo u r Te a m
Demo Results of the Spikes
S p i k e s i n Yo u r Te a m
Throw Spike Code Away
S p i k e s i n Yo u r Te a m
Throw Spike Code Away
S p i k e s i n Yo u r Te a m
Adjust
Anatol i Kazatchkov • Dev Manager • Atlassian • @tolks
Thank you!