Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Road To Legacy is Paved With Good Intentions

6b767d8a4c9910e007c122d81eb4de73?s=47 Noel Rappin
September 14, 2017

The Road To Legacy is Paved With Good Intentions

Legacy code. We’ve all dealt with it, we’ve all screamed at it. And we’ve all written it. A project becomes legacy when developers no longer have the context of old decisions. The transition to legacy status happens step by step, decision by decision. This talk will examine patterns that lead to legacy code, such as “personnel turnover”, “shifting priorities”, and “developer fads”. We’ll show how the pattern turns code into legacy and, more importantly, how it can be avoided or mitigated. At the end of the talk, you’ll be able to keep your project from sliding quickly into the legacy swamp.

6b767d8a4c9910e007c122d81eb4de73?s=128

Noel Rappin

September 14, 2017
Tweet

More Decks by Noel Rappin

Other Decks in Technology

Transcript

  1. I'm not sure why this slide is blank It was

    blank when I got here and I'm afraid to change it Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  2. I'm going to start with a definition Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  3. Definitions shape discussion Noel Rappin | The Road To Legacy

    Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  4. Legacy code is code without tests — Michael Feathers Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  5. http://www.techdoneright.io/11 Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  6. Legacy code is code where the context of its creation

    has been lost — Me! Me! Me! Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  7. Is the solution More tests? More context? Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  8. How does code become "legacy"? Noel Rappin | The Road

    To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  9. Can we stop it? Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  10. Why don't we do things that would mitigate it? Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  11. The Road To Legacy Is Paved With Good Intentions →

    Noel Rappin (@noelrap) → http://www.tablexi.com → http://techdoneright.io → http://www.noelrappin.com Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  12. Michael Feathers knows that legacy code is about context Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  13. I'm not talking about technical debt Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  14. Technical Debt is things that you know are wrong when

    you do them Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  15. Legacy Tech Debt Bad At the time Good, or at

    least OK Bad, but we know why Bad Now Forgotten, but not gone Bill is due Bad Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  16. What is the problem with legacy code? Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  17. Change is expensive and risky Noel Rappin | The Road

    To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  18. hidden dependencies Noel Rappin | The Road To Legacy Is

    Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  19. "Dependency" ➡ code problem "Hidden" ➡ context problem Noel Rappin

    | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  20. I have a theory Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  21. The nature of complexity Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  22. None
  23. 3 to 15 5x the people 35x communications path Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  24. The amoeba in the jar Noel Rappin | The Road

    To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  25. Double every minute. Fill the jar in an hour Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  26. When is the jar half full? Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  27. 50% of the jar = 59 minutes Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  28. 1 percent of the jar = 53 minutes (more or

    less) Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  29. How do you feel saying you need a new jar

    at the 53 minute mark? Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  30. Exponential complexity creeps up on you Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  31. And by the time you realize it it's too late

    Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  32. Siloing Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  33. "Noel did the last money story, let him do the

    next one" Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  34. "Oh, Noel has all the context on money" Noel Rappin

    | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  35. "Noel has left the project, what now?" Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  36. On some level, we know the solution Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  37. But you feel silly talking about what's coming with an

    empty jar Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  38. It feels like too much ceremony on small projects Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  39. Failure or Overwhelmed? Noel Rappin | The Road To Legacy

    Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  40. Let's talk about process Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  41. Process: Any activity on a software project that is communicating

    information about the project Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  42. Standup Code Review Story Tracker Slack chat Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  43. You always have process Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  44. Explicit process can be evaluated and improved Noel Rappin |

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  45. Let's think about process not just across a single moment,

    but over time Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  46. Can we use our process to better capture context? Noel

    Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  47. I know, we'll have a wiki! Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  48. Make it easier to do the right thing than not

    Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  49. Turnover Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  50. new member's first PR is updating the readme Noel Rappin

    | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  51. Document questions Noel Rappin | The Road To Legacy Is

    Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  52. Departing members do an exit interview Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  53. Siloing Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  54. Pair programming Code review Code presentations Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  55. If an interesting question comes up in review, make it

    a comment Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  56. Similar issues when development in bursts Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  57. Don't have Dead Code Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  58. Priority Shifts Developer Fads Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  59. Don't Half-ass testing Noel Rappin | The Road To Legacy

    Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  60. Upgrade Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  61. $$ Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  62. Other things you could do Noel Rappin | The Road

    To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  63. Code retrospectives Noel Rappin | The Road To Legacy Is

    Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  64. Video? Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  65. Outside of code, legacy is good Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  66. What is a legacy? It’s planting seeds in a garden

    you never get to see. — Lin-Manuel Miranda Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  67. So the answer to dealing with legacy is... Plant more

    seeds? Noel Rappin | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  68. Noel Rappin (@noelrap) Table XI http://pragprog.com/book/nrwebpay http://pragprog.com/book/nrtest3 http://techdoneright.io/ Noel Rappin

    | The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap