software on the high seas

113
Software on the High Seas Soren Harner Atlassian Sunday, 8 May 2011

Upload: soren-harner

Post on 11-May-2015

2.200 views

Category:

Technology


0 download

DESCRIPTION

Going beyond the pitfalls of agile to create a learning, improving organisation

TRANSCRIPT

Page 1: Software on the High Seas

Software on the High Seas

Soren HarnerAtlassian

Sunday, 8 May 2011

Page 2: Software on the High Seas

Sydney 1887Sunday, 8 May 2011

Page 3: Software on the High Seas

Longitude.Challenge of 1750.(die geographische

Längengrad)

Sunday, 8 May 2011

Page 4: Software on the High Seas

1. Set the time on clock at known longitude astronomically

Sunday, 8 May 2011

Page 5: Software on the High Seas

2. Determine local time with Sextant from Sun or stars

Sunday, 8 May 2011

Page 6: Software on the High Seas

3. Compare local time to time on the clock.1 hour difference is 15 degrees.

Assume a Clock

Sunday, 8 May 2011

Page 7: Software on the High Seas

First Venture Fund

•Powder of Sympathy

•Grid of cannons

Sir Kenelm Digby

Sunday, 8 May 2011

Page 8: Software on the High Seas

John Harrison

Breakthrough

Sunday, 8 May 2011

Page 9: Software on the High Seas

What could this possiblyhave to do with Software?

Sunday, 8 May 2011

Page 10: Software on the High Seas

• Surviving on the high seas of software

• Building a clock

• Team

• Activities

• Rhythm

Sunday, 8 May 2011

Page 11: Software on the High Seas

• Latest frameworks

• Rock-star coders

• Exciting releases

• Agile champions

Meet the Atlassians 2005

Sunday, 8 May 2011

Page 12: Software on the High Seas

Smooth sailing

Sunday, 8 May 2011

Page 13: Software on the High Seas

• Straying off course

• Dead reckoning

• (Koppelnavigation)

• Consider all forces

• Winds

• Currents

Sunday, 8 May 2011

Page 14: Software on the High Seas

Harder to stay aheadSunday, 8 May 2011

Page 15: Software on the High Seas

• Complexity

• Code debt

• Infrastructure

• Dependencitis

• Firefighting

• n(n-1)

We grew

Sunday, 8 May 2011

Page 16: Software on the High Seas

Doing things rightSunday, 8 May 2011

Page 17: Software on the High Seas

Survey staff

• Feature through-put dropping

• Accepting “tolerable inefficiency”

• e.g. 66% have daily infrastructure problems

• 73% felt more productive at Atlassian than last job

Sunday, 8 May 2011

Page 18: Software on the High Seas

Effort to Build a Feature

Sunday, 8 May 2011

Page 19: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Green Fields

Sunday, 8 May 2011

Page 20: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Technical debt cycle starts

Green Fields

Sunday, 8 May 2011

Page 21: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Technical debt cycle starts

Innovation crawls

Green Fields

7 years

Complexity

Sunday, 8 May 2011

Page 22: Software on the High Seas

There is a better way to do it.Find it.

— Thomas Edison

Sunday, 8 May 2011

Page 23: Software on the High Seas

Landing partySunday, 8 May 2011

Page 24: Software on the High Seas

Death by 1000 CutsSunday, 8 May 2011

Page 25: Software on the High Seas

Things that happen in minutes.

Sunday, 8 May 2011

Page 26: Software on the High Seas

Things that happen in hours.

Sunday, 8 May 2011

Page 27: Software on the High Seas

Things that happen in days.

Sunday, 8 May 2011

Page 28: Software on the High Seas

Things that happen in weeks.

Sunday, 8 May 2011

Page 29: Software on the High Seas

Activity Clock

Sunday, 8 May 2011

Page 30: Software on the High Seas

Activity Clock

Sunday, 8 May 2011

Page 31: Software on the High Seas

“It takes a slow descent into the subject, requiring fifteen minutes or more of concentration before the state is locked in.”

— Peopleware, Lister & DeMarco, 1987

Sunday, 8 May 2011

Page 32: Software on the High Seas

• Achieve a “state of flow”

• Bottom up dehassling

• Spread knowledge

• Measure each step

Sunday, 8 May 2011

Page 33: Software on the High Seas

• Minor code or UI change < 1s

• Class signature rule < 20s

• SVN checkout < 3m

• App startup < 10s

• Unit Tests < 5m

30 second rule

Sunday, 8 May 2011

Page 34: Software on the High Seas

Tune-Up Guides

• Intellij IDEA / Eclipse

• Web Development

• SVN, GIT

• Maven

• Command-line scripts

Sunday, 8 May 2011

Page 35: Software on the High Seas

MeasureMedian 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 36: Software on the High Seas

Measure

0 12.5 25.0 37.5 50.0

Project in FishEye

Big JIRA Issue

SVN Log of JIRA file

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 37: Software on the High Seas

Measure

0 12.5 25.0 37.5 50.0

Project in FishEye

Big JIRA Issue

SVN Log of JIRA file

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 38: Software on the High Seas

Measure

0 12.5 25.0 37.5 50.0

Project in FishEye

Big JIRA Issue

SVN Log of JIRA file

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 39: Software on the High Seas

MeasureMedian 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 40: Software on the High Seas

Measure

0 225 450 675 900

SVN CO JIRA Trunk

Maven sources

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 41: Software on the High Seas

Measure

0 225 450 675 900

SVN CO JIRA Trunk

Maven sources

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 42: Software on the High Seas

Measure

0 225 450 675 900

SVN CO JIRA Trunk

Maven sources

Median 90th Percent 99th Percent

One month measured each hour via a Groovy script

Sunday, 8 May 2011

Page 43: Software on the High Seas

Capture HasslesSunday, 8 May 2011

Page 44: Software on the High Seas

Sunday, 8 May 2011

Page 45: Software on the High Seas

Picture Emerges• IDE slow scanning files

• Making small code change to SAL takes days

• Maven stalls downloading dependencies

• Wiki running slowly

• CI Server builds hanging

• Releasing product is manual and slow

Sunday, 8 May 2011

Page 46: Software on the High Seas

• Fix up IDE

• Tomcat

• Maven

• Upload sources for maven dependencies

• Improve unit tests writing with Mockito

Initiative

Sunday, 8 May 2011

Page 47: Software on the High Seas

• Stay in the zone

• Atlassian connectors for IDEA and Eclipse

• Number of clicks

• Short-cuts, quick-nav

Improvements

Sunday, 8 May 2011

Page 48: Software on the High Seas

• Get closure on task

• Test execution time

• Four eyes

• Complete automation

• Dial-tone reliability

Sunday, 8 May 2011

Page 49: Software on the High Seas

• Functional tests < 20 m

• Failure notifications early and visible

• Platform tests done overnight

• Simultaneously build trunk and branch

Measure time to fail

Sunday, 8 May 2011

Page 50: Software on the High Seas

Selective testing

Before: 40 minutes After: 7 minutes

Sunday, 8 May 2011

Page 51: Software on the High Seas

Four Eyes• Four rules for code

reviews:

• Ego-free

• Don’t be pedantic

• Problems not solutions

• Embrace feedback

Sunday, 8 May 2011

Page 52: Software on the High Seas

• Speeding up Bamboo builds

• Parallelising Functional Tests

• VMWare templates

• Reliability

• Artifact passing

• CI Maven sandbox

Initiative

Sunday, 8 May 2011

Page 53: Software on the High Seas

• Activity streams in all products

• Bamboo enhancements

• Using Amazon EC2

• Queue prioritisation

Improvements

Sunday, 8 May 2011

Page 54: Software on the High Seas

“Eat your own dogfood”

— Larry Ellison

Sunday, 8 May 2011

Page 55: Software on the High Seas

• Tangibility

• Rhythm of a meaningful deliverable

• Real-world acceptance testing early

Sunday, 8 May 2011

Page 56: Software on the High Seas

• For each iteration

• slack time

• ship a milestone build

• founder and expert reviews

• run in production

Sunday, 8 May 2011

Page 57: Software on the High Seas

20% SlackLet personal

projects flourish

Sunday, 8 May 2011

Page 58: Software on the High Seas

Use it daily

“After using it for a week or so, I’m starting to notice quite a few things about the new

FishEye/Crucible.”

Sunday, 8 May 2011

Page 59: Software on the High Seas

“Foundered”

Sunday, 8 May 2011

Page 60: Software on the High Seas

• Fixed bandwidth to repay technical debt

• Introduce new tools and frameworks

Sunday, 8 May 2011

Page 61: Software on the High Seas

Nibbling around the edges.

Sunday, 8 May 2011

Page 62: Software on the High Seas

‘Instead we have to look at architecture, design,

development and toolset of the products themselves.’

Sunday, 8 May 2011

Page 63: Software on the High Seas

The GroovySunday, 8 May 2011

Page 64: Software on the High Seas

Engine Room Iterations

Sunday, 8 May 2011

Page 65: Software on the High Seas

Tired of waitingSunday, 8 May 2011

Page 66: Software on the High Seas

Plugins 2 / OSGiSunday, 8 May 2011

Page 67: Software on the High Seas

Effort to Build a Feature

Sunday, 8 May 2011

Page 68: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Green Fields

Sunday, 8 May 2011

Page 69: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Technical debt cycle starts

Green Fields

Sunday, 8 May 2011

Page 70: Software on the High Seas

Effort to Build a FeatureR

elat

ive

Pers

on D

ays

Technical debt cycle starts

Innovation crawls

Green Fields

7 years

Complexity

Building the clock

Sunday, 8 May 2011

Page 71: Software on the High Seas

We built the clockForever tune and refine

Sunday, 8 May 2011

Page 72: Software on the High Seas

Thanks!

http://blogs.atlassian.com/developer

Sunday, 8 May 2011

Page 73: Software on the High Seas

Sunday, 8 May 2011

Page 74: Software on the High Seas

Inner loop stuff is good butpeople looking for big-win, which is CI

Sunday, 8 May 2011

Page 75: Software on the High Seas

Cost of ChangeRUP XP Atlassian Agile

Sunday, 8 May 2011

Page 76: Software on the High Seas

Cost of ChangeRUP XP Atlassian Agile

Cost of a 1/2 day code change (gut feel).

Sunday, 8 May 2011

Page 77: Software on the High Seas

Cost of Change

June July Aug Sept Nov Dec Jan Feb Mar0

5

10

15

20

RUP XP Atlassian Agile

Hou

rs

RCTestConstructionInception

Use CasesUMLQA suiteHorizontalGantt Chart

Sunday, 8 May 2011

Page 78: Software on the High Seas

Cost of Change

June July Aug Sept Nov Dec Jan Feb Mar0

5

10

15

20

RUP XP Atlassian Agile

Hou

rs

EvolutionPairingRefactorCIReflection

Ship early and often

Sunday, 8 May 2011

Page 79: Software on the High Seas

Cost of Change

June July Aug Sept Nov Dec Jan Feb Mar0

5

10

15

20

RUP XP Atlassian Agile

Hou

rs

User StoryIteration-0ReviewsVerticalBlitz Test+ XP

Dogfood each iteration,Beta1 & Beta2

Sunday, 8 May 2011

Page 80: Software on the High Seas

Dev Speed IterationsSunday, 8 May 2011

Page 81: Software on the High Seas

Sunday, 8 May 2011

Page 82: Software on the High Seas

Reckless O Soul, exploring, I with thee, and thou with me,For we are bound where Agile Team has not yet dared go,And we risk the ship, our selves and all

— Walt Whitman, “Leaves of Grass”, with apologies

Sunday, 8 May 2011

Page 83: Software on the High Seas

“The Hoff”Sunday, 8 May 2011

Page 84: Software on the High Seas

Test OptimisationSunday, 8 May 2011

Page 85: Software on the High Seas

Sunday, 8 May 2011

Page 86: Software on the High Seas

Grails ExperimentSunday, 8 May 2011

Page 87: Software on the High Seas

Grails ExperimentSunday, 8 May 2011

Page 88: Software on the High Seas

Foundered

Sunday, 8 May 2011

Page 89: Software on the High Seas

Reduce Test Duration

Sunday, 8 May 2011

Page 90: Software on the High Seas

SummitSunday, 8 May 2011

Page 91: Software on the High Seas

PamperingSunday, 8 May 2011

Page 92: Software on the High Seas

Sunday, 8 May 2011

Page 93: Software on the High Seas

100 km wall Sunday, 8 May 2011

Page 94: Software on the High Seas

SummitSunday, 8 May 2011

Page 95: Software on the High Seas

Sunday, 8 May 2011

Page 96: Software on the High Seas

Sunday, 8 May 2011

Page 97: Software on the High Seas

Blame Game

Sunday, 8 May 2011

Page 98: Software on the High Seas

Sunday, 8 May 2011

Page 99: Software on the High Seas

Posse parallelizing JIRA Tests

Sunday, 8 May 2011

Page 100: Software on the High Seas

Posse: Test Optimisation with Confluence

Sunday, 8 May 2011

Page 101: Software on the High Seas

Sunday, 8 May 2011

Page 102: Software on the High Seas

Sunday, 8 May 2011

Page 103: Software on the High Seas

Sunday, 8 May 2011

Page 104: Software on the High Seas

Sunday, 8 May 2011

Page 105: Software on the High Seas

But how fast?Sunday, 8 May 2011

Page 106: Software on the High Seas

Mission Dolores 1880Sunday, 8 May 2011

Page 107: Software on the High Seas

Dev Speed PosseSunday, 8 May 2011

Page 108: Software on the High Seas

Disturbed!Sunday, 8 May 2011

Page 109: Software on the High Seas

EOL

Sunday, 8 May 2011

Page 110: Software on the High Seas

Automation• CI Server is the “face”

• One Button

• Elastic

• Centrally owned and managed

• Cover supported platforms

• Reliable

• Continuous deployment (coming soon)

Sunday, 8 May 2011

Page 111: Software on the High Seas

Sunday, 8 May 2011

Page 112: Software on the High Seas

Tough timesSunday, 8 May 2011

Page 113: Software on the High Seas

Does it matter?Sunday, 8 May 2011