Software on the High Seas

2,478 views

Published on

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

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,478
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Software on the High Seas

  1. 1. Software on the High Seas Soren Harner AtlassianSunday, 8 May 2011
  2. 2. Sydney 1887Sunday, 8 May 2011
  3. 3. Longitude. Challenge of 1750. (die geographische Längengrad)Sunday, 8 May 2011
  4. 4. 1. Set the time on clock at known longitude astronomicallySunday, 8 May 2011
  5. 5. 2. Determine local time with Sextant from Sun or starsSunday, 8 May 2011
  6. 6. Assume a Clock 3. Compare local time to time on the clock. 1 hour difference is 15 degrees.Sunday, 8 May 2011
  7. 7. First Venture Fund •Powder of Sympathy •Grid of cannons Sir Kenelm DigbySunday, 8 May 2011
  8. 8. Breakthrough John HarrisonSunday, 8 May 2011
  9. 9. What could this possibly have to do with Software?Sunday, 8 May 2011
  10. 10. • Surviving on the high seas of software • Building a clock • Team • Activities • RhythmSunday, 8 May 2011
  11. 11. Meet the Atlassians 2005 • Latest frameworks • Exciting releases • Rock-star coders • Agile championsSunday, 8 May 2011
  12. 12. Smooth sailingSunday, 8 May 2011
  13. 13. • Straying off course • Dead reckoning • (Koppelnavigation) • Consider all forces • Winds • CurrentsSunday, 8 May 2011
  14. 14. Harder to stay aheadSunday, 8 May 2011
  15. 15. We grew • Complexity • Infrastructure • Firefighting • Code debt • Dependencitis • n(n-1)Sunday, 8 May 2011
  16. 16. Doing things rightSunday, 8 May 2011
  17. 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 jobSunday, 8 May 2011
  18. 18. Effort to Build a FeatureSunday, 8 May 2011
  19. 19. Effort to Build a Feature Relative Person Days Green FieldsSunday, 8 May 2011
  20. 20. Effort to Build a Feature Relative Person Days Technical debt cycle starts Green FieldsSunday, 8 May 2011
  21. 21. Effort to Build a Feature Innovation crawls Relative Person Days Complexity Technical debt cycle starts Green Fields 7 yearsSunday, 8 May 2011
  22. 22. There is a better way to do it. Find it. — Thomas EdisonSunday, 8 May 2011
  23. 23. Landing partySunday, 8 May 2011
  24. 24. Death by 1000 CutsSunday, 8 May 2011
  25. 25. Things that happen in minutes.Sunday, 8 May 2011
  26. 26. Things that happen in hours.Sunday, 8 May 2011
  27. 27. Things that happen in days.Sunday, 8 May 2011
  28. 28. Things that happen in weeks.Sunday, 8 May 2011
  29. 29. Activity ClockSunday, 8 May 2011
  30. 30. Activity ClockSunday, 8 May 2011
  31. 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, 1987Sunday, 8 May 2011
  32. 32. • Achieve a “state of flow” • Bottom up dehassling • Spread knowledge • Measure each stepSunday, 8 May 2011
  33. 33. 30 second rule • Minor code or UI change < 1s • Class signature rule < 20s • SVN checkout < 3m • App startup < 10s • Unit Tests < 5mSunday, 8 May 2011
  34. 34. Tune-Up Guides • Intellij IDEA / Eclipse • Web Development • SVN, GIT • Maven • Command-line scriptsSunday, 8 May 2011
  35. 35. Measure Median 90th Percent 99th Percent One month measured each hour via a Groovy scriptSunday, 8 May 2011
  36. 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 scriptSunday, 8 May 2011
  37. 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 scriptSunday, 8 May 2011
  38. 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 scriptSunday, 8 May 2011
  39. 39. Measure Median 90th Percent 99th Percent One month measured each hour via a Groovy scriptSunday, 8 May 2011
  40. 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 scriptSunday, 8 May 2011
  41. 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 scriptSunday, 8 May 2011
  42. 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 scriptSunday, 8 May 2011
  43. 43. Capture HasslesSunday, 8 May 2011
  44. 44. Sunday, 8 May 2011
  45. 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 slowSunday, 8 May 2011
  46. 46. Initiative • Fix up IDE • Tomcat • Maven • Upload sources for maven dependencies • Improve unit tests writing with MockitoSunday, 8 May 2011
  47. 47. Improvements • Stay in the zone • Atlassian connectors for IDEA and Eclipse • Number of clicks • Short-cuts, quick-navSunday, 8 May 2011
  48. 48. • Get closure on task • Test execution time • Four eyes • Complete automation • Dial-tone reliabilitySunday, 8 May 2011
  49. 49. Measure time to fail • Functional tests < 20 m • Failure notifications early and visible • Platform tests done overnight • Simultaneously build trunk and branchSunday, 8 May 2011
  50. 50. Selective testing Before: 40 minutes After: 7 minutesSunday, 8 May 2011
  51. 51. Four Eyes • Four rules for code reviews: • Ego-free • Don’t be pedantic • Problems not solutions • Embrace feedbackSunday, 8 May 2011
  52. 52. Initiative • Speeding up Bamboo builds • Parallelising Functional Tests • VMWare templates • Reliability • Artifact passing • CI Maven sandboxSunday, 8 May 2011
  53. 53. Improvements • Activity streams in all products • Bamboo enhancements • Using Amazon EC2 • Queue prioritisationSunday, 8 May 2011
  54. 54. “Eat your own dogfood” — Larry EllisonSunday, 8 May 2011
  55. 55. • Tangibility • Rhythm of a meaningful deliverable • Real-world acceptance testing earlySunday, 8 May 2011
  56. 56. • For each iteration • slack time • ship a milestone build • founder and expert reviews • run in productionSunday, 8 May 2011
  57. 57. 20% Slack Let personal projects flourishSunday, 8 May 2011
  58. 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
  59. 59. “Foundered”Sunday, 8 May 2011
  60. 60. • Fixed bandwidth to repay technical debt • Introduce new tools and frameworksSunday, 8 May 2011
  61. 61. Nibbling around the edges.Sunday, 8 May 2011
  62. 62. ‘Instead we have to look at architecture, design, development and toolset of the products themselves.’Sunday, 8 May 2011
  63. 63. The GroovySunday, 8 May 2011
  64. 64. Engine RoomSunday, 8 May 2011 Iterations
  65. 65. Tired of waitingSunday, 8 May 2011
  66. 66. Plugins 2 / OSGiSunday, 8 May 2011
  67. 67. Effort to Build a FeatureSunday, 8 May 2011
  68. 68. Effort to Build a Feature Relative Person Days Green FieldsSunday, 8 May 2011
  69. 69. Effort to Build a Feature Relative Person Days Technical debt cycle starts Green FieldsSunday, 8 May 2011
  70. 70. Effort to Build a Feature Innovation crawls Relative Person Days Complexity Technical debt cycle starts Green Fields Building the clock 7 yearsSunday, 8 May 2011
  71. 71. We built the clock Forever tune and refineSunday, 8 May 2011
  72. 72. Thanks! http://blogs.atlassian.com/developerSunday, 8 May 2011
  73. 73. Sunday, 8 May 2011
  74. 74. Inner loop stuff is good but people looking for big-win, which is CISunday, 8 May 2011
  75. 75. Cost of Change RUP XP Atlassian AgileSunday, 8 May 2011
  76. 76. Cost of Change RUP XP Atlassian Agile Cost of a 1/2 day code change (gut feel).Sunday, 8 May 2011
  77. 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 MarSunday, 8 May 2011
  78. 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 ReflectionSunday, 8 May 2011
  79. 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 MarSunday, 8 May 2011
  80. 80. Dev Speed IterationsSunday, 8 May 2011
  81. 81. Sunday, 8 May 2011
  82. 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 apologiesSunday, 8 May 2011
  83. 83. “The Hoff”Sunday, 8 May 2011
  84. 84. Test OptimisationSunday, 8 May 2011
  85. 85. Sunday, 8 May 2011
  86. 86. Grails ExperimentSunday, 8 May 2011
  87. 87. Grails ExperimentSunday, 8 May 2011
  88. 88. FounderedSunday, 8 May 2011
  89. 89. Reduce Test DurationSunday, 8 May 2011
  90. 90. SummitSunday, 8 May 2011
  91. 91. PamperingSunday, 8 May 2011
  92. 92. Sunday, 8 May 2011
  93. 93. 100 km wallSunday, 8 May 2011
  94. 94. SummitSunday, 8 May 2011
  95. 95. Sunday, 8 May 2011
  96. 96. Sunday, 8 May 2011
  97. 97. Blame GameSunday, 8 May 2011
  98. 98. Sunday, 8 May 2011
  99. 99. Posse parallelizing JIRA TestsSunday, 8 May 2011
  100. 100. Posse: Test Optimisation with ConfluenceSunday, 8 May 2011
  101. 101. Sunday, 8 May 2011
  102. 102. Sunday, 8 May 2011
  103. 103. Sunday, 8 May 2011
  104. 104. Sunday, 8 May 2011
  105. 105. But how fast?Sunday, 8 May 2011
  106. 106. Mission Dolores 1880Sunday, 8 May 2011
  107. 107. Dev Speed PosseSunday, 8 May 2011
  108. 108. Disturbed!Sunday, 8 May 2011
  109. 109. EOLSunday, 8 May 2011
  110. 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. 111. Sunday, 8 May 2011
  112. 112. Tough timesSunday, 8 May 2011
  113. 113. Does it matter?Sunday, 8 May 2011

×