SlideShare une entreprise Scribd logo
1  sur  113
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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 presentation
Theo Schlossnagle
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Practical Cloud Security
Practical Cloud SecurityPractical Cloud Security
Practical Cloud Security
Jason Chan
 
Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping Sinsai.info と Crisis Mapping
Sinsai.info と Crisis Mapping
Hal Seki
 
让开发也懂前端
让开发也懂前端让开发也懂前端
让开发也懂前端
lifesinger
 
P90 X Your Database!!
P90 X Your Database!!P90 X Your Database!!
P90 X Your Database!!
Denish Patel
 
HootSuite Dev 2
HootSuite Dev 2HootSuite Dev 2
HootSuite Dev 2
ujihisa
 

Similaire à 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
 
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!!
 
HootSuite Dev 2
HootSuite Dev 2HootSuite Dev 2
HootSuite Dev 2
 
J term11 - Day 5 - Web Video
J term11 - Day 5 - Web VideoJ term11 - Day 5 - Web Video
J term11 - Day 5 - Web Video
 

Plus de Soren Harner

SaaS and Product Metrics
SaaS and Product MetricsSaaS and Product Metrics
SaaS and Product Metrics
Soren Harner
 

Plus de 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
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

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