Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Principles of Iteration

59 views

Published on

Presentation about how GitLab builds its product. Given at Cloud Expo London 2018

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Principles of Iteration

  1. 1. Job van der Voort - @Jobvo Principles of Iteration @Jobvo
  2. 2. GitLab @Jobvo
  3. 3. First commit Oct 9, 2011 Inc. established in 2014 @Jobvo - about.gitlab.com/history
  4. 4. GitLab Inc. is why I'm here today @Jobvo
  5. 5. 253 employees >67 pets @Jobvo - about.gitlab.com/team/
  6. 6. Zero offices ~36 different countries @Jobvo - about.gitlab.com/team/
  7. 7. (Almost) everything is open @Jobvo - about.gitlab.com/handbook
  8. 8. Extremely iterative @Jobvo
  9. 9. Why you should listen to me @Jobvo
  10. 10. Q3 2015 First version of GitLab CI @Jobvo
  11. 11. Q3 2017 GitLab CI Leader in Forrester Wave CI Tools @Jobvo
  12. 12. @Jobvo
  13. 13. PRINCIPLES OF ITERATION @Jobvo
  14. 14. Focus on customer value @Jobvo
  15. 15. Focus on customer value Consistently build cool things that people like @Jobvo
  16. 16. Only possible to do consistently by iteration @Jobvo
  17. 17. First principle SHORTEN YOUR CYCLE @Jobvo
  18. 18. @Jobvo
  19. 19. Cycle time Time it takes to go from writing down an idea to shipping that change in production @Jobvo - 1: Shorten your cycle
  20. 20. Shorter cycles |> More iterative @Jobvo - 1: Shorten your cycle
  21. 21. Skate to where the puck is going to be @Jobvo - 1: Shorten your cycle
  22. 22. Skate to where the puck is going to be @Jobvo - 1: Shorten your cycle
  23. 23. How? @Jobvo - 1: Shorten your cycle
  24. 24. 1. Shorter cycles Minimally Viable Change (MVC) @Jobvo - 1: Shorten your cycle
  25. 25. 1. Shorter cycles Deploy frequently (Continuously) @Jobvo - 1: Shorten your cycle
  26. 26. 1. Shorter cycles Deploy more when it hurts @Jobvo - 1: Shorten your cycle
  27. 27. 1. Shorter cycles Include gatekeepers into each step of the cycle @Jobvo - 1: Shorten your cycle
  28. 28. 1. Shorter cycles Automate everything 1. Have a great test suite (aim for 85% coverage) 2. Automatically deploy on merge to staging / preprod / prod 3. Automatic roll-out and roll-back 4. Adopting Cloud Native (Kubernetes + GitLab) makes this all 100x easier @Jobvo - 1: Shorten your cycle
  29. 29. 1. Shorter cycles 1. Adopt MVC 2. Deploy frequently 3. Deploy more when it hurts 4. Include gatekeepers into the conversation 5. Automate everything @Jobvo - 1: Shorten your cycle
  30. 30. 1. Shorter cycles Result: • Easier to coordinate, reason, estimate • Quicker to respond to market needs • Higher predictability • Better code quality • Easier to troubleshoot @Jobvo - 1: Shorten your cycle
  31. 31. Second principle ADOPT CONVERSATIONAL DEVELOPMENT @Jobvo
  32. 32. Conversational Development (ConvDev) Asynchronous, result-driven way of communicating @Jobvo - 2: Adopt ConvDev
  33. 33. ConvDev is why GitLab can exist @Jobvo - 2: Adopt ConvDev
  34. 34. 2. ConvDev Write everything down @Jobvo - 2: Adopt ConvDev
  35. 35. 2. ConvDev Thread the conversation through all stages @Jobvo - 2: Adopt ConvDev
  36. 36. 2. ConvDev Thread the conversation through all stages @Jobvo - 2: Adopt ConvDev
  37. 37. 2. ConvDev Asynchronous communication without need for consensus @Jobvo - 2: Adopt ConvDev
  38. 38. 2. ConvDev 1. Write everything down 2. Thread the conversation through all stages 3. Async without consensus @Jobvo - 2: Adopt ConvDev
  39. 39. 2. ConvDev Results • Everyone can always move forward with their work • Higher efficiency • Every change and decision is written down and visible • Can track cycle time @Jobvo - 2: Adopt ConvDev
  40. 40. Short cycle times + ConvDev = Awesome @Jobvo
  41. 41. Small changes that are easily revertable / rolled back @Jobvo
  42. 42. There is a clear audit trail for each and every change @Jobvo
  43. 43. Everyone looks at the same things @Jobvo
  44. 44. Third principle MEASURE AND LEARN @Jobvo
  45. 45. Connecting business with change @Jobvo - 3: Measure and learn
  46. 46. See how any change affects (business) metrics in the same place (You can do this today in GitLab) @Jobvo - 3: Measure and learn
  47. 47. SUMMARY TIME @Jobvo
  48. 48. 1. Shorten your cycles @Jobvo
  49. 49. 2. Adopt ConvDev (async communication) @Jobvo
  50. 50. 3. Measure and learn @Jobvo
  51. 51. Questions?@Jobvo / job@gitlab.com RemoteWorkPodcast.com GitLab 10.6 out tomorrow! @Jobvo

×