+ All Categories
Home > Software > Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Date post: 25-May-2015
Category:
Upload: atlassian
View: 6,990 times
Download: 0 times
Share this document with a friend
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.
Popular Tags:
50
#atlassian
Transcript
Page 1: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

#atlassian

Page 2: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Anatol i Kazatchkov • Dev Manager • Atlassian • @tolks

Spiking your way to improved Agile development

Page 3: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

• 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

Page 4: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

What is Agile?

Page 5: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Page 6: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 7: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 8: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Top 5

Spikes Short Sprints

Demos Dogfooding Shipping

Page 9: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Top 5

Spikes

Page 10: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Page 11: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Page 12: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Why?

Page 13: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Get Better Estimates

Page 14: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Clear up Requirements

Page 15: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Eliminate Unknowns

Page 16: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Define Scope

Page 17: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

”“

Page 18: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Validate Chosen Technical Approach

Page 19: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

B e n e f i t s o f a S p i k e

Split Work into Tasks

Page 20: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Key takeaways: #atlassian

!

• Better estimates• Refined requirements• Eliminated unknowns• Validated technical approach• Better organised and planned tasks

Page 21: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

How?

Page 22: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 23: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Indicators that spikes will be useful

Page 24: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 25: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 26: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 27: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 28: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Establish Spike Goals

Page 29: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Establish Spike Goals

Page 30: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Schedule Spike as Task

Page 31: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Timebox Spikes

Page 32: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Plan Forward: stay 1 sprint ahead

Page 33: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

H o w To R u n a S p i k e

Unplanned Spikes

Page 34: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

How to run an effective spike:• Establish spike goals• Record spike goals• Schedule spikes as tasks in sprints• Timebox spikes

Page 35: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Start Spiking

Page 36: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

You Do it Already

Page 37: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

You Do it Already• When creating a tech requirements

document

Page 38: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 39: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

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

Page 40: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Dedicate Time

Page 41: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Plan and Schedule Spikes

Page 42: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Avoid ‘Production’ Code

Page 43: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Avoid ‘Production’ Code

Page 44: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Specify Deliverables

Page 45: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Specify Deliverables

Page 46: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Demo Results of the Spikes

Page 47: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Throw Spike Code Away

Page 48: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Throw Spike Code Away

Page 49: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

S p i k e s i n Yo u r Te a m

Adjust

Page 50: Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov

Anatol i Kazatchkov • Dev Manager • Atlassian • @tolks

Thank you!


Recommended