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

The Road To Legacy is Paved With Good Intentions

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.

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. 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
  23. The amoeba in the jar Noel Rappin | The Road

    To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  24. 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
  25. When is the jar half full? Noel Rappin | The

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

    The Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  27. 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
  28. 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
  29. Exponential complexity creeps up on you Noel Rappin | The

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  30. 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
  31. Siloing Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  32. "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
  33. "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
  34. "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
  35. 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
  36. 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
  37. 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
  38. Failure or Overwhelmed? Noel Rappin | The Road To Legacy

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

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  40. 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
  41. 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
  42. You always have process Noel Rappin | The Road To

    Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. Turnover Noel Rappin | The Road To Legacy Is Paved

    With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  49. 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
  50. Document questions Noel Rappin | The Road To Legacy Is

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

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

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

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  54. 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
  55. Similar issues when development in bursts Noel Rappin | The

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

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

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

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

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

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

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

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

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

    Road To Legacy Is Paved With Good Intentions | WCR 2017 | http://www.tablexi.com | @noelrap
  65. 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
  66. 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
  67. 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