From 100 to 1000+ deployments a day [CodeMotion Edition]

From 100 to 1000+ deployments a day [CodeMotion Edition]

The slides from this mornings session about what it takes to TRULY go faster as a team/department/group of developers.

C1d39cd3809e83af7958c6f45fa3c4f2?s=128

Pat Hermens

April 02, 2019
Tweet

Transcript

  1. 3.

    Pat Hermens Development Manager Coding for 15+ years Father &

    husband Rotterdam, Netherlands @phermens pat@coolblue.nl
  2. 4.
  3. 8.
  4. 9.
  5. 10.
  6. 11.
  7. 12.
  8. 13.
  9. 14.
  10. 17.

    … Apparently we are too much trained to disregard differences

    in scale, to treat them as “gradual differences that are not essential.” We tell ourselves that what we can do once, we can also do twice and by induction, we fool ourselves into believing that we can do it as many times as needed, but this is just not true! — Edsger Dijkstra, 1969
  11. 18.
  12. 20.
  13. 21.

    21 @phermens The “faster to master” checklist Developing ⬜ Coding

    guidelines ⬜ Code reviews ⬜ Code analysis ⬜ Short-lived branches ⬜ Feature toggles Monitoring ⬜ Defined key metrics ⬜ Measure – create dashboards ⬜ Proactivity – add alerting (& act!) Testing ⬜ Unit tests ⬜ Module tests ⬜ Integration tests ⬜ End-to-end tests ⬜ Test automation Deploying ⬜ Continuous Integration ⬜ Continuous Delivery ⬜ Infrastructure as Code
  14. 22.

    22 @phermens Developing ☑ Coding guidelines ☑ Code reviews ⬜

    Code analysis ☑ Short-lived branches ⬜ Feature toggles Monitoring ☑ Defined key metrics ⬜ Measure – create dashboards ⬜ Proactivity – add alerting (& act!) Testing ☑ Unit tests ⬜ Module tests ⬜ Integration tests ⬜ End-to-end tests ☑ Test automation Deploying ☑ Continuous Integration ⬜ Continuous Delivery ⬜ Infrastructure as Code The “faster to master” checklist
  15. 23.

    23 @phermens Developing ☑ Coding guidelines ☑ Code reviews ⬜

    Code analysis ☑ Short-lived branches ☑ Feature toggles Monitoring ☑ Defined key metrics ☑ Measure – create dashboards ⬜ Proactivity – add alerting (& act!) Testing ☑ Unit tests ☑ Module tests ⬜ Integration tests ☑ End-to-end tests ☑ Test automation Deploying ☑ Continuous Integration ☑ Continuous Delivery ⬜ Infrastructure as Code The “faster to master” checklist
  16. 24.

    24 @phermens Developing ☑ Coding guidelines ☑ Code reviews ☑

    Code analysis ☑ Short-lived branches ☑ Feature toggles Monitoring ☑ Defined key metrics ☑ Measure – create dashboards ☑ Proactivity – add alerting (& act!) Testing ☑ Unit tests ☑ Module tests ☑ Integration tests ☑ End-to-end tests ☑ Test automation Deploying ☑ Continuous Integration ☑ Continuous Delivery ☑ Infrastructure as Code The “faster to master” checklist
  17. 33.

    33 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  18. 34.

    34 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  19. 35.

    35 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  20. 36.

    36 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  21. 37.

    37 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  22. 38.

    38 @phermens Team H Team A Team C Team G

    Team E Team J Team F Team B Team I Team C Team D Team L Deploy- ment
  23. 42.
  24. 43.
  25. 45.
  26. 46.
  27. 47.
  28. 48.
  29. 49.
  30. 50.
  31. 51.
  32. 69.

    69 @phermens Hosting & Deployment “DevOps” Team H Team A

    Team D Team G Team E Team J Team F Team B Team I Team C
  33. 92.
  34. 93.
  35. 94.
  36. 95.
  37. 96.
  38. 97.
  39. 99.
  40. 100.
  41. 101.
  42. 102.
  43. 103.
  44. 104.
  45. 105.
  46. 106.
  47. 107.
  48. 108.
  49. 109.
  50. 110.
  51. 111.
  52. 112.
  53. 113.
  54. 114.
  55. 117.
  56. 121.

    121 @phermens The “faster to master” checklist Developing ⬜ Coding

    guidelines ⬜ Code reviews ⬜ Code analysis ⬜ Short-lived branches ⬜ Feature toggles Monitoring ⬜ Defined key metrics ⬜ Measure – create dashboards ⬜ Proactivity – add alerting (& act!) Testing ⬜ Unit tests ⬜ Module tests ⬜ Integration tests ⬜ End-to-end tests ⬜ Test automation Deploying ⬜ Continuous Integration ⬜ Continuous Delivery ⬜ Infrastructure as Code
  57. 122.

    122 @phermens The “100 to 1,000” checklist Responsibility ⬜ Can

    I control my deployments? ⬜ Have I removed all bottlenecks? ⬜ Do I have good support systems? ⬜ Am I collaborating with my peers? Autonomy ⬜ Freedom to innovate/improve? ⬜ Am I in control and independent? ⬜ Can I find out what went wrong? ⬜ Do I have the skills to fix it? Ownership ⬜ Agreed interfaces (or contracts?) ⬜ Out-of-the-box solutions? ⬜ Tooling is 100% automated? ⬜ Local build == “Production” build? Failure ⬜ Monitoring = Alerting = Action ⬜ Take pride in improving ⬜ Small deliverables, quickly ⬜ Non-blocking deployments
  58. 123.
  59. 125.

    125 @phermens The “faster to master” checklist Developing ⬜ Coding

    guidelines ⬜ Code reviews ⬜ Code analysis ⬜ Short-lived branches ⬜ Feature toggles Monitoring ⬜ Defined key metrics ⬜ Measure – create dashboards ⬜ Proactivity – add alerting (& act!) Testing ⬜ Unit tests ⬜ Module tests ⬜ Integration tests ⬜ End-to-end tests ⬜ Test automation Deploying ⬜ Continuous Integration ⬜ Continuous Delivery ⬜ Infrastructure as Code
  60. 126.

    126 @phermens The “100 to 1,000” checklist Responsibility ⬜ Can

    I control my deployments? ⬜ Have I removed all bottlenecks? ⬜ Do I have good support systems? ⬜ Am I collaborating with my peers? Autonomy ⬜ Freedom to innovate/improve? ⬜ Am I in control and independent? ⬜ Can I find out what went wrong? ⬜ Do I have the skills to fix it? Ownership ⬜ Agreed interfaces or contracts? ⬜ Out-of-the-box solutions? ⬜ Tooling is 100% automated? ⬜ Local build == “Production” build? Failure ⬜ Monitoring = Alerting = Action ⬜ Take pride in improving ⬜ Small deliverables, quickly ⬜ Non-blocking deployments