$30 off During Our Annual Pro Sale. View Details »

What were they thinking?

Keith Pitty
February 08, 2019

What were they thinking?

Talk given at RubyConf AU 2019 in Melbourne.

Keith Pitty

February 08, 2019
Tweet

More Decks by Keith Pitty

Other Decks in Technology

Transcript

  1. “What were
    they thinking?”
    Keith Pitty,
    RubyConf AU 2019

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide


  5. View Slide


  6. View Slide

  7. View Slide


  8. View Slide


  9. View Slide

  10. View Slide


  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. How did the code
    get like that?

    View Slide

  17. What was lacking?

    View Slide

  18. Design?

    View Slide

  19. View Slide

  20. 1. Tests pass
    2. Expresses intent
    3. No duplication (DRY)
    4. Small

    View Slide

  21. Refactoring?

    View Slide

  22. View Slide

  23. Dependent on
    automated testing

    View Slide

  24. 1. Tests pass ✅

    View Slide

  25. 2. Improve design

    View Slide

  26. 3. Others will thank us

    View Slide

  27. Automated tests?

    View Slide

  28. Confidence

    View Slide

  29. TDD

    View Slide

  30. Continuous Integration

    View Slide

  31. Sufficient?

    View Slide

  32. What else?

    View Slide

  33. Up front design?

    View Slide

  34. “Big design up front is dumb.
    Doing no design up front is even dumber.”
    — Dave Thomas (YOW! founder)

    View Slide

  35. C4 model

    View Slide

  36. Improving chances of
    success

    View Slide

  37. Any up front design?

    View Slide

  38. Review?

    View Slide

  39. e.g. pull requests

    View Slide

  40. Early opportunity

    View Slide

  41. Temptation

    View Slide

  42. Pressure

    View Slide

  43. Balance?

    View Slide

  44. Documentation?

    View Slide

  45. Load testing?

    View Slide

  46. Too hard?

    View Slide

  47. Cumulative effect

    View Slide

  48. View Slide

  49. Planned maintenance?

    View Slide

  50. Schedule?

    View Slide

  51. Budget?

    View Slide

  52. Security patches?

    View Slide

  53. Recent Rails release?

    View Slide

  54. Reactive?

    View Slide

  55. Technical oversight?

    View Slide

  56. Sufficient weight?

    View Slide

  57. Negotiation with
    business owner?

    View Slide

  58. Sufficient?

    View Slide

  59. Alternative?

    View Slide

  60. What we neglected!

    View Slide

  61. View Slide

  62. What else?

    View Slide

  63. Be more disciplined

    View Slide

  64. Explain better

    View Slide

  65. Negotiating a
    better outcome

    View Slide

  66. Potential pitfalls

    View Slide

  67. Alternatives

    View Slide

  68. Be positive

    View Slide

  69. Goals?

    View Slide

  70. Continuous Flow

    View Slide

  71. View Slide

  72. View Slide

  73. Continuous “x”

    View Slide

  74. Reflecting on Agile

    View Slide

  75. Explore Agile’s essence

    View Slide

  76. Heart of Agile

    View Slide

  77. View Slide

  78. Be prepared to explain

    View Slide

  79. Don’t try to win
    arguments!

    View Slide

  80. View Slide

  81. View Slide

  82. Shared meaning

    View Slide

  83. View Slide

  84. Practice

    View Slide

  85. Relative ease

    View Slide

  86. Challenge: Persuasion

    View Slide

  87. It takes time

    View Slide

  88. Patience

    View Slide

  89. Persist

    View Slide

  90. Consult

    View Slide

  91. Keep learning

    View Slide

  92. Communication

    View Slide

  93. Endurance

    View Slide

  94. View Slide

  95. View Slide

  96. View Slide

  97. 1. Be more disciplined

    View Slide

  98. 2. Become more persuasive

    View Slide

  99. References
    • “Understanding the 4 Rules of Simple Design” by Corey Haines
    • “Refactoring: Improving the Design of Existing Code” by Martin Fowler
    • Simon Brown’s C4 model: https://c4model.com/
    • Simon Brown - “Software Architecture for Developers” at YOW! 2017: https://www.youtube.com/watch?v=z1xLDzx7hgw
    • “#noprojects - A Culture of Continuous Value” by Evan Leybourn & Shane Hastie
    • “Continuous Digital - An agile alternative to projects for digital business” by Allan Kelly
    • Heart of Agile (Alistair Cockburn): https://heartofagile.com/
    • Sandi Metz - “You are insufficiently persuasive” at RubyConf AU 2018: https://www.youtube.com/watch?v=Y3k7tHll3RY
    • “Crucial Conversations - Tools for Talking When Stakes Are High” by Kerry Patterson, Joseph Grenny, Ron McMillan, Al Switzler

    View Slide

  100. Image credits
    • https://unsplash.com/photos/1K9T5YiZ2WU - Photo by Tim Gouw on Unsplash
    • https://unsplash.com/photos/-IMlv9Jlb24 - Photo by Sebastien Gabriel on Unsplash
    • https://unsplash.com/photos/aWJ-QqrSU_E - Photo by Harrison Broadbent on Unsplash
    • https://unsplash.com/photos/lu15z1m_KfM - Photo by Lili Popper on Unsplash
    • https://heartofagile.com/wp-content/uploads/2018/09/hero_graphic2.png - Image
    courtesy of Alistair Cockburn

    View Slide

  101. Thanks for listening!

    View Slide