Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

"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

Slide 34

Slide 34 text

"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

Slide 35

Slide 35 text

"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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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