SlideShare a Scribd company logo
1 of 113
Download to read offline
Software on the High
                       Seas
                      Soren Harner
                        Atlassian




Sunday, 8 May 2011
Sydney 1887
Sunday, 8 May 2011
Longitude.
               Challenge of 1750.
               (die geographische
                  Längengrad)




Sunday, 8 May 2011
1. Set the time on
                     clock at known
                     longitude
                     astronomically




Sunday, 8 May 2011
2. Determine local
                     time with Sextant
                     from Sun or stars




Sunday, 8 May 2011
Assume a Clock

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




Sunday, 8 May 2011
First Venture Fund

                 •Powder of
                     Sympathy
                 •Grid of
                     cannons


                                 Sir Kenelm Digby


Sunday, 8 May 2011
Breakthrough




                     John Harrison
Sunday, 8 May 2011
What could this possibly
                     have to do with Software?




Sunday, 8 May 2011
• Surviving on the high
                 seas of software

           • Building a clock
                     • Team
                     • Activities
                     • Rhythm




Sunday, 8 May 2011
Meet the Atlassians
                            2005




                 • Latest frameworks   • Exciting releases
                 • Rock-star coders    • Agile champions
Sunday, 8 May 2011
Smooth sailing




Sunday, 8 May 2011
• Straying off course
                     • Dead reckoning
                     • (Koppelnavigation)
           • Consider all forces
                     • Winds
                     • Currents




Sunday, 8 May 2011
Harder to stay ahead
Sunday, 8 May 2011
We grew




         • Complexity   • Infrastructure   • Firefighting
         • Code debt    • Dependencitis    • n(n-1)
Sunday, 8 May 2011
Doing things right
Sunday, 8 May 2011
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
Effort to Build a Feature




Sunday, 8 May 2011
Effort to Build a Feature
                     Relative Person Days




                                            Green Fields




Sunday, 8 May 2011
Effort to Build a Feature
                     Relative Person Days




                                                Technical debt cycle starts


                                            Green Fields




Sunday, 8 May 2011
Effort to Build a Feature
                                                                                Innovation crawls
                     Relative Person Days



                                                                   Complexity


                                                Technical debt cycle starts


                                            Green Fields




                                                                                         7 years


Sunday, 8 May 2011
There is a better way to do it.
                                           Find it.

                                 — Thomas Edison




Sunday, 8 May 2011
Landing party
Sunday, 8 May 2011
Death by 1000 Cuts
Sunday, 8 May 2011
Things that happen in minutes.



Sunday, 8 May 2011
Things that happen in hours.




Sunday, 8 May 2011
Things that happen in days.



Sunday, 8 May 2011
Things that happen in weeks.



Sunday, 8 May 2011
Activity Clock

Sunday, 8 May 2011
Activity Clock

Sunday, 8 May 2011
“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
• Achieve a “state of
                     flow”

                     • Bottom up
                       dehassling

                     • Spread knowledge
                     • Measure each step




Sunday, 8 May 2011
30 second rule
                 • Minor code or UI change < 1s
                 • Class signature rule < 20s
                 • SVN checkout < 3m
                 • App startup < 10s
                 • Unit Tests < 5m




Sunday, 8 May 2011
Tune-Up Guides

           • Intellij IDEA / Eclipse
           • Web Development
           • SVN, GIT
           • Maven
           • Command-line scripts




Sunday, 8 May 2011
Measure
                      Median      90th Percent   99th Percent




                     One month measured each hour via a Groovy script
Sunday, 8 May 2011
Measure
                          Median      90th Percent      99th Percent




      Project in FishEye



             Big JIRA Issue



  SVN Log of JIRA file


                              0     12.5         25.0       37.5       50.0



                         One month measured each hour via a Groovy script
Sunday, 8 May 2011
Measure
                          Median      90th Percent      99th Percent




      Project in FishEye



             Big JIRA Issue



  SVN Log of JIRA file


                              0     12.5         25.0       37.5       50.0



                         One month measured each hour via a Groovy script
Sunday, 8 May 2011
Measure
                          Median      90th Percent      99th Percent




      Project in FishEye



             Big JIRA Issue



  SVN Log of JIRA file


                              0     12.5         25.0       37.5       50.0



                         One month measured each hour via a Groovy script
Sunday, 8 May 2011
Measure
                       Median      90th Percent   99th Percent




                     One month measured each hour via a Groovy script

Sunday, 8 May 2011
Measure
                            Median     90th Percent         99th Percent




  SVN CO JIRA Trunk




            Maven sources



                             0        225             450       675        900


                     One month measured each hour via a Groovy script

Sunday, 8 May 2011
Measure
                            Median     90th Percent         99th Percent




  SVN CO JIRA Trunk




            Maven sources



                             0        225             450       675        900


                     One month measured each hour via a Groovy script

Sunday, 8 May 2011
Measure
                            Median     90th Percent         99th Percent




  SVN CO JIRA Trunk




            Maven sources



                             0        225             450       675        900


                     One month measured each hour via a Groovy script

Sunday, 8 May 2011
Capture Hassles
Sunday, 8 May 2011
Sunday, 8 May 2011
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
Initiative
                     • Fix up IDE
                       • Tomcat
                       • Maven
                     • Upload sources for
                       maven dependencies

                     • Improve unit tests
                       writing with Mockito




Sunday, 8 May 2011
Improvements

                 • Stay in the zone
                     • Atlassian connectors for IDEA and
                       Eclipse

                 • Number of clicks
                     • Short-cuts, quick-nav



Sunday, 8 May 2011
• Get closure on task
                     • Test execution
                       time

                     • Four eyes
                     • Complete
                       automation

                     • Dial-tone reliability



Sunday, 8 May 2011
Measure time to fail


                 • Functional tests < 20 m
                     • Failure notifications early and visible
                 • Platform tests done overnight
                 • Simultaneously build trunk and branch




Sunday, 8 May 2011
Selective testing




          Before: 40 minutes   After: 7 minutes


Sunday, 8 May 2011
Four Eyes
         • Four rules for code
               reviews:

                • Ego-free
                • Don’t be pedantic
                • Problems not
                     solutions

                • Embrace feedback




Sunday, 8 May 2011
Initiative

                     • Speeding up Bamboo builds
                       • Parallelising Functional Tests
                       • VMWare templates
                     • Reliability
                       • Artifact passing
                       • CI Maven sandbox




Sunday, 8 May 2011
Improvements

              • Activity streams in all
                     products

              • Bamboo
                     enhancements

                     • Using Amazon EC2
                     • Queue
                       prioritisation




Sunday, 8 May 2011
“Eat your own
                   dogfood”
                     — Larry Ellison




Sunday, 8 May 2011
• Tangibility
             • Rhythm of a
                     meaningful
                     deliverable

             • Real-world
                     acceptance testing
                     early




Sunday, 8 May 2011
• For each iteration
                     • slack time
                     • ship a milestone build
                     • founder and expert reviews
                     • run in production




Sunday, 8 May 2011
20% Slack
           Let personal
         projects flourish




Sunday, 8 May 2011
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
“Foundered”




Sunday, 8 May 2011
• Fixed bandwidth to
                       repay technical debt

                     • Introduce new tools
                       and frameworks




Sunday, 8 May 2011
Nibbling around the edges.




Sunday, 8 May 2011
‘Instead we have to look at
                          architecture, design,
                     development and toolset of the
                          products themselves.’




Sunday, 8 May 2011
The Groovy
Sunday, 8 May 2011
Engine Room
Sunday, 8 May 2011
                      Iterations
Tired of waiting
Sunday, 8 May 2011
Plugins 2 / OSGi
Sunday, 8 May 2011
Effort to Build a Feature




Sunday, 8 May 2011
Effort to Build a Feature
                     Relative Person Days




                                            Green Fields




Sunday, 8 May 2011
Effort to Build a Feature
                     Relative Person Days




                                                 Technical debt cycle starts


                                            Green Fields




Sunday, 8 May 2011
Effort to Build a Feature
                                                                               Innovation crawls
                     Relative Person Days



                                                                  Complexity


                                                 Technical debt cycle starts


                                            Green Fields


                                                                                 Building the clock


                                                                                         7 years


Sunday, 8 May 2011
We built the clock
                     Forever tune and refine
Sunday, 8 May 2011
Thanks!

                     http://blogs.atlassian.com/developer




Sunday, 8 May 2011
Sunday, 8 May 2011
Inner loop stuff is good but
                     people looking for big-win, which is CI




Sunday, 8 May 2011
Cost of Change
                      RUP   XP   Atlassian Agile




Sunday, 8 May 2011
Cost of Change
                      RUP           XP            Atlassian Agile




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

Sunday, 8 May 2011
Cost of Change
                                                                                         Use Cases
                                 RUP                XP           Atlassian Agile         UML
                                                                                         QA suite
                                                                                         Horizontal
                                                                                         Gantt Chart
                      20

                              Inception       Construction            Test         RC
                      15
              Hours




                      10


                      5


                      0
                       June    July    Aug   Sept    Nov   Dec     Jan     Feb     Mar




Sunday, 8 May 2011
Cost of Change
                                RUP                 XP             Atlassian Agile



                      20


                      15
              Hours




                      10
                                      Ship early and often


                      5
                                                                                         Evolution
                                                                                         Pairing
                                                                                         Refactor
                      0                                                                  CI
                       June   July    Aug    Sept    Nov     Dec     Jan     Feb     Mar Reflection




Sunday, 8 May 2011
Cost of Change
                                RUP                XP             Atlassian Agile



                      20

                                                                                          User Story
                      15
                                                                                          Iteration-0
                                        Dogfood each iteration,
                                                                                          Reviews
                                            Beta1 & Beta2
              Hours




                                                                                          Vertical
                      10                                                                  Blitz Test
                                                                                          + XP

                      5


                      0
                       June   July    Aug   Sept    Nov   Dec       Jan     Feb     Mar




Sunday, 8 May 2011
Dev Speed Iterations
Sunday, 8 May 2011
Sunday, 8 May 2011
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
“The Hoff”
Sunday, 8 May 2011
Test Optimisation
Sunday, 8 May 2011
Sunday, 8 May 2011
Grails Experiment
Sunday, 8 May 2011
Grails Experiment
Sunday, 8 May 2011
Foundered




Sunday, 8 May 2011
Reduce Test Duration




Sunday, 8 May 2011
Summit
Sunday, 8 May 2011
Pampering
Sunday, 8 May 2011
Sunday, 8 May 2011
100 km wall
Sunday, 8 May 2011
Summit
Sunday, 8 May 2011
Sunday, 8 May 2011
Sunday, 8 May 2011
Blame Game




Sunday, 8 May 2011
Sunday, 8 May 2011
Posse parallelizing JIRA Tests




Sunday, 8 May 2011
Posse: Test Optimisation with Confluence




Sunday, 8 May 2011
Sunday, 8 May 2011
Sunday, 8 May 2011
Sunday, 8 May 2011
Sunday, 8 May 2011
But how fast?
Sunday, 8 May 2011
Mission Dolores 1880
Sunday, 8 May 2011
Dev Speed Posse
Sunday, 8 May 2011
Disturbed!
Sunday, 8 May 2011
EOL


Sunday, 8 May 2011
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
Sunday, 8 May 2011
Tough times
Sunday, 8 May 2011
Does it matter?
Sunday, 8 May 2011

More Related Content

Similar to Software on the High Seas

Monitoring is easy, why are we so bad at it presentation
Monitoring is easy, why are we so bad at it  presentationMonitoring is easy, why are we so bad at it  presentation
Monitoring is easy, why are we so bad at it presentationTheo Schlossnagle
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian
 
Managing Projects on a Mac
Managing Projects on a MacManaging Projects on a Mac
Managing Projects on a MacProjectWizards
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forwardeug3n_cojocaru
 
Project Management and the iPad
Project Management and the iPadProject Management and the iPad
Project Management and the iPadProjectWizards
 
Testing distributed, complex web applications
Testing distributed, complex web applicationsTesting distributed, complex web applications
Testing distributed, complex web applicationsJens-Christian Fischer
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud SecurityJason Chan
 
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...Dachis Group
 
Group 5 Presentation
Group 5 PresentationGroup 5 Presentation
Group 5 PresentationCTan9
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackabilityPuppet
 
Design for Marketing Technical Services
Design for Marketing Technical ServicesDesign for Marketing Technical Services
Design for Marketing Technical ServicesJon Sandruck
 
Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Hal Seki
 
A Look at the Future of HTML5
A Look at the Future of HTML5A Look at the Future of HTML5
A Look at the Future of HTML5Tim Wright
 
Governing services, data, rules, processes and more
Governing services, data, rules, processes and moreGoverning services, data, rules, processes and more
Governing services, data, rules, processes and moreRandall Hauch
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?LB Denker
 
让开发也懂前端
让开发也懂前端让开发也懂前端
让开发也懂前端lifesinger
 
Devops workshop unit2
Devops workshop unit2Devops workshop unit2
Devops workshop unit2John Willis
 
Choosing the right Content Management System
Choosing the right Content Management SystemChoosing the right Content Management System
Choosing the right Content Management SystemRachel Andrew
 
P90 X Your Database!!
P90 X Your Database!!P90 X Your Database!!
P90 X Your Database!!Denish Patel
 

Similar to Software on the High Seas (20)

Monitoring is easy, why are we so bad at it presentation
Monitoring is easy, why are we so bad at it  presentationMonitoring is easy, why are we so bad at it  presentation
Monitoring is easy, why are we so bad at it presentation
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
 
Managing Projects on a Mac
Managing Projects on a MacManaging Projects on a Mac
Managing Projects on a Mac
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Project Management and the iPad
Project Management and the iPadProject Management and the iPad
Project Management and the iPad
 
Testing distributed, complex web applications
Testing distributed, complex web applicationsTesting distributed, complex web applications
Testing distributed, complex web applications
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud Security
 
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...
2011 SBS Sydney | Didier Elzinga, Culture as a Competitive Advantage in Moder...
 
Group 5 Presentation
Group 5 PresentationGroup 5 Presentation
Group 5 Presentation
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
 
Design for Marketing Technical Services
Design for Marketing Technical ServicesDesign for Marketing Technical Services
Design for Marketing Technical Services
 
Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping
 
A Look at the Future of HTML5
A Look at the Future of HTML5A Look at the Future of HTML5
A Look at the Future of HTML5
 
Governing services, data, rules, processes and more
Governing services, data, rules, processes and moreGoverning services, data, rules, processes and more
Governing services, data, rules, processes and more
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
 
让开发也懂前端
让开发也懂前端让开发也懂前端
让开发也懂前端
 
ITP / SED Day 4
ITP / SED Day 4ITP / SED Day 4
ITP / SED Day 4
 
Devops workshop unit2
Devops workshop unit2Devops workshop unit2
Devops workshop unit2
 
Choosing the right Content Management System
Choosing the right Content Management SystemChoosing the right Content Management System
Choosing the right Content Management System
 
P90 X Your Database!!
P90 X Your Database!!P90 X Your Database!!
P90 X Your Database!!
 

More from Soren Harner

Intelligent Application Networks with Mule and Tensorflow
Intelligent Application Networks with Mule and TensorflowIntelligent Application Networks with Mule and Tensorflow
Intelligent Application Networks with Mule and TensorflowSoren Harner
 
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...Soren Harner
 
Building Products Quantitatively
Building Products QuantitativelyBuilding Products Quantitatively
Building Products QuantitativelySoren Harner
 
SaaS and Product Metrics
SaaS and Product MetricsSaaS and Product Metrics
SaaS and Product MetricsSoren Harner
 
How Developers Save the Planet
How Developers Save the PlanetHow Developers Save the Planet
How Developers Save the PlanetSoren Harner
 
Cundal gathering june 2011
Cundal gathering june 2011Cundal gathering june 2011
Cundal gathering june 2011Soren Harner
 
Sustainable purchasing
Sustainable purchasingSustainable purchasing
Sustainable purchasingSoren Harner
 

More from Soren Harner (10)

Intelligent Application Networks with Mule and Tensorflow
Intelligent Application Networks with Mule and TensorflowIntelligent Application Networks with Mule and Tensorflow
Intelligent Application Networks with Mule and Tensorflow
 
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...
How Augmented Reality Will Improve Our Interactions with Computers from SVVR ...
 
Building Products Quantitatively
Building Products QuantitativelyBuilding Products Quantitatively
Building Products Quantitatively
 
SaaS and Product Metrics
SaaS and Product MetricsSaaS and Product Metrics
SaaS and Product Metrics
 
How Developers Save the Planet
How Developers Save the PlanetHow Developers Save the Planet
How Developers Save the Planet
 
Retrospectives
RetrospectivesRetrospectives
Retrospectives
 
Cundal gathering june 2011
Cundal gathering june 2011Cundal gathering june 2011
Cundal gathering june 2011
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Sustainable purchasing
Sustainable purchasingSustainable purchasing
Sustainable purchasing
 
KNOW CHANGE
KNOW CHANGEKNOW CHANGE
KNOW CHANGE
 

Recently uploaded

March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 

Recently uploaded (20)

March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 

Software on the High Seas

  • 1. Software on the High Seas Soren Harner Atlassian Sunday, 8 May 2011
  • 3. Longitude. Challenge of 1750. (die geographische Längengrad) Sunday, 8 May 2011
  • 4. 1. Set the time on clock at known longitude astronomically Sunday, 8 May 2011
  • 5. 2. Determine local time with Sextant from Sun or stars Sunday, 8 May 2011
  • 6. Assume a Clock 3. Compare local time to time on the clock. 1 hour difference is 15 degrees. Sunday, 8 May 2011
  • 7. First Venture Fund •Powder of Sympathy •Grid of cannons Sir Kenelm Digby Sunday, 8 May 2011
  • 8. Breakthrough John Harrison Sunday, 8 May 2011
  • 9. What could this possibly have to do with Software? Sunday, 8 May 2011
  • 10. • Surviving on the high seas of software • Building a clock • Team • Activities • Rhythm Sunday, 8 May 2011
  • 11. Meet the Atlassians 2005 • Latest frameworks • Exciting releases • Rock-star coders • Agile champions Sunday, 8 May 2011
  • 13. • Straying off course • Dead reckoning • (Koppelnavigation) • Consider all forces • Winds • Currents Sunday, 8 May 2011
  • 14. Harder to stay ahead Sunday, 8 May 2011
  • 15. We grew • Complexity • Infrastructure • Firefighting • Code debt • Dependencitis • n(n-1) Sunday, 8 May 2011
  • 17. 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
  • 18. Effort to Build a Feature Sunday, 8 May 2011
  • 19. Effort to Build a Feature Relative Person Days Green Fields Sunday, 8 May 2011
  • 20. Effort to Build a Feature Relative Person Days Technical debt cycle starts Green Fields Sunday, 8 May 2011
  • 21. Effort to Build a Feature Innovation crawls Relative Person Days Complexity Technical debt cycle starts Green Fields 7 years Sunday, 8 May 2011
  • 22. There is a better way to do it. Find it. — Thomas Edison Sunday, 8 May 2011
  • 24. Death by 1000 Cuts Sunday, 8 May 2011
  • 25. Things that happen in minutes. Sunday, 8 May 2011
  • 26. Things that happen in hours. Sunday, 8 May 2011
  • 27. Things that happen in days. Sunday, 8 May 2011
  • 28. Things that happen in weeks. Sunday, 8 May 2011
  • 31. “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
  • 32. • Achieve a “state of flow” • Bottom up dehassling • Spread knowledge • Measure each step Sunday, 8 May 2011
  • 33. 30 second rule • Minor code or UI change < 1s • Class signature rule < 20s • SVN checkout < 3m • App startup < 10s • Unit Tests < 5m Sunday, 8 May 2011
  • 34. Tune-Up Guides • Intellij IDEA / Eclipse • Web Development • SVN, GIT • Maven • Command-line scripts Sunday, 8 May 2011
  • 35. Measure Median 90th Percent 99th Percent One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 36. Measure Median 90th Percent 99th Percent Project in FishEye Big JIRA Issue SVN Log of JIRA file 0 12.5 25.0 37.5 50.0 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 37. Measure Median 90th Percent 99th Percent Project in FishEye Big JIRA Issue SVN Log of JIRA file 0 12.5 25.0 37.5 50.0 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 38. Measure Median 90th Percent 99th Percent Project in FishEye Big JIRA Issue SVN Log of JIRA file 0 12.5 25.0 37.5 50.0 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 39. Measure Median 90th Percent 99th Percent One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 40. Measure Median 90th Percent 99th Percent SVN CO JIRA Trunk Maven sources 0 225 450 675 900 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 41. Measure Median 90th Percent 99th Percent SVN CO JIRA Trunk Maven sources 0 225 450 675 900 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 42. Measure Median 90th Percent 99th Percent SVN CO JIRA Trunk Maven sources 0 225 450 675 900 One month measured each hour via a Groovy script Sunday, 8 May 2011
  • 45. 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
  • 46. Initiative • Fix up IDE • Tomcat • Maven • Upload sources for maven dependencies • Improve unit tests writing with Mockito Sunday, 8 May 2011
  • 47. Improvements • Stay in the zone • Atlassian connectors for IDEA and Eclipse • Number of clicks • Short-cuts, quick-nav Sunday, 8 May 2011
  • 48. • Get closure on task • Test execution time • Four eyes • Complete automation • Dial-tone reliability Sunday, 8 May 2011
  • 49. Measure time to fail • Functional tests < 20 m • Failure notifications early and visible • Platform tests done overnight • Simultaneously build trunk and branch Sunday, 8 May 2011
  • 50. Selective testing Before: 40 minutes After: 7 minutes Sunday, 8 May 2011
  • 51. Four Eyes • Four rules for code reviews: • Ego-free • Don’t be pedantic • Problems not solutions • Embrace feedback Sunday, 8 May 2011
  • 52. Initiative • Speeding up Bamboo builds • Parallelising Functional Tests • VMWare templates • Reliability • Artifact passing • CI Maven sandbox Sunday, 8 May 2011
  • 53. Improvements • Activity streams in all products • Bamboo enhancements • Using Amazon EC2 • Queue prioritisation Sunday, 8 May 2011
  • 54. “Eat your own dogfood” — Larry Ellison Sunday, 8 May 2011
  • 55. • Tangibility • Rhythm of a meaningful deliverable • Real-world acceptance testing early Sunday, 8 May 2011
  • 56. • For each iteration • slack time • ship a milestone build • founder and expert reviews • run in production Sunday, 8 May 2011
  • 57. 20% Slack Let personal projects flourish Sunday, 8 May 2011
  • 58. 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
  • 60. • Fixed bandwidth to repay technical debt • Introduce new tools and frameworks Sunday, 8 May 2011
  • 61. Nibbling around the edges. Sunday, 8 May 2011
  • 62. ‘Instead we have to look at architecture, design, development and toolset of the products themselves.’ Sunday, 8 May 2011
  • 64. Engine Room Sunday, 8 May 2011 Iterations
  • 66. Plugins 2 / OSGi Sunday, 8 May 2011
  • 67. Effort to Build a Feature Sunday, 8 May 2011
  • 68. Effort to Build a Feature Relative Person Days Green Fields Sunday, 8 May 2011
  • 69. Effort to Build a Feature Relative Person Days Technical debt cycle starts Green Fields Sunday, 8 May 2011
  • 70. Effort to Build a Feature Innovation crawls Relative Person Days Complexity Technical debt cycle starts Green Fields Building the clock 7 years Sunday, 8 May 2011
  • 71. We built the clock Forever tune and refine Sunday, 8 May 2011
  • 72. Thanks! http://blogs.atlassian.com/developer Sunday, 8 May 2011
  • 74. Inner loop stuff is good but people looking for big-win, which is CI Sunday, 8 May 2011
  • 75. Cost of Change RUP XP Atlassian Agile Sunday, 8 May 2011
  • 76. Cost of Change RUP XP Atlassian Agile Cost of a 1/2 day code change (gut feel). Sunday, 8 May 2011
  • 77. Cost of Change Use Cases RUP XP Atlassian Agile UML QA suite Horizontal Gantt Chart 20 Inception Construction Test RC 15 Hours 10 5 0 June July Aug Sept Nov Dec Jan Feb Mar Sunday, 8 May 2011
  • 78. Cost of Change RUP XP Atlassian Agile 20 15 Hours 10 Ship early and often 5 Evolution Pairing Refactor 0 CI June July Aug Sept Nov Dec Jan Feb Mar Reflection Sunday, 8 May 2011
  • 79. Cost of Change RUP XP Atlassian Agile 20 User Story 15 Iteration-0 Dogfood each iteration, Reviews Beta1 & Beta2 Hours Vertical 10 Blitz Test + XP 5 0 June July Aug Sept Nov Dec Jan Feb Mar Sunday, 8 May 2011
  • 82. 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
  • 93. 100 km wall Sunday, 8 May 2011
  • 99. Posse parallelizing JIRA Tests Sunday, 8 May 2011
  • 100. Posse: Test Optimisation with Confluence Sunday, 8 May 2011
  • 101. Sunday, 8 May 2011
  • 102. Sunday, 8 May 2011
  • 103. Sunday, 8 May 2011
  • 104. Sunday, 8 May 2011
  • 105. But how fast? Sunday, 8 May 2011
  • 107. Dev Speed Posse Sunday, 8 May 2011
  • 110. 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
  • 111. Sunday, 8 May 2011
  • 113. Does it matter? Sunday, 8 May 2011