Save 37% off PRO during our Black Friday Sale! »

What were they thinking?

A871f5bf1b1a48262a04ec49bc60fa77?s=47 Keith Pitty
February 08, 2019

What were they thinking?

Talk given at RubyConf AU 2019 in Melbourne.

A871f5bf1b1a48262a04ec49bc60fa77?s=128

Keith Pitty

February 08, 2019
Tweet

Transcript

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

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. How did the code get like that?

  12. What was lacking?

  13. Design?

  14. None
  15. 1. Tests pass 2. Expresses intent 3. No duplication (DRY)

    4. Small
  16. Refactoring?

  17. None
  18. Dependent on automated testing

  19. 1. Tests pass ✅

  20. 2. Improve design

  21. 3. Others will thank us

  22. Automated tests?

  23. Confidence

  24. TDD

  25. Continuous Integration

  26. Sufficient?

  27. What else?

  28. Up front design?

  29. “Big design up front is dumb. Doing no design up

    front is even dumber.” — Dave Thomas (YOW! founder)
  30. C4 model

  31. Improving chances of success

  32. Any up front design?

  33. Review?

  34. e.g. pull requests

  35. Early opportunity

  36. Temptation

  37. Pressure

  38. Balance?

  39. Documentation?

  40. Load testing?

  41. Too hard?

  42. Cumulative effect

  43. None
  44. Planned maintenance?

  45. Schedule?

  46. Budget?

  47. Security patches?

  48. Recent Rails release?

  49. Reactive?

  50. Technical oversight?

  51. Sufficient weight?

  52. Negotiation with business owner?

  53. Sufficient?

  54. Alternative?

  55. What we neglected!

  56. None
  57. What else?

  58. Be more disciplined

  59. Explain better

  60. Negotiating a better outcome

  61. Potential pitfalls

  62. Alternatives

  63. Be positive

  64. Goals?

  65. Continuous Flow

  66. None
  67. None
  68. Continuous “x”

  69. Reflecting on Agile

  70. Explore Agile’s essence

  71. Heart of Agile

  72. None
  73. Be prepared to explain

  74. Don’t try to win arguments!

  75. None
  76. None
  77. Shared meaning

  78. None
  79. Practice

  80. Relative ease

  81. Challenge: Persuasion

  82. It takes time

  83. Patience

  84. Persist

  85. Consult

  86. Keep learning

  87. Communication

  88. Endurance

  89. None
  90. None
  91. None
  92. 1. Be more disciplined

  93. 2. Become more persuasive

  94. 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
  95. 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
  96. Thanks for listening!