Observations from an Old Maintenance Programmer

G. Wade Johnson

Who Am I?

Professional programmer for over 30 years. Notable features of my career.

notes

Our Business is Different

Used to justify not adopting a best practice: version control, unit tests, coding standards, agile, training, etc.

notes

Legacy Code - The Belief

notes

Legacy Code - The Reality

notes

Legacy Code - Bad Design?

notes

Realistic Design

notes

What's Important?

What is the most important thing we get from writing code?

notes

(Programmer) Religion

There is no one, true way.

notes

Language Doesn't Really Matter

That's a lie. But not as big a lie as you think.

notes

Know Your Tools

notes

Process

notes

Pitfalls

Just because senior people have experience, doesn't mean they are right. Sometimes the assumptions have changed enough that the experience doesn't apply. That's not true as often as people assume.

Junior people ask stupid questions. Treasure that. Those questions give you the opportunity to re-examine old assumptions. They also remind you that just because we've done something for a long time, does not mean that you should continue doing it.

Customers/clients/users often do things that seem to make no sense. That's because they are solving a different problem than you thought they were. Sometimes, the weird things are just a bizarre side effect of their mental model of a workflow. Sometimes, it is the reality of how they work, and you can make it easier for them by changing.

Always Be Learning

notes

Most Important Engineering Principle

Good Enough

Sometimes invoked recently as YAGNI

notes

Rewriting Code

notes

Constants

notes

Common Themes

notes

Education

notes

Industries I've Worked In

notes

Languages I've Used Professionally

notes

Operating Systems

notes

Any questions?

notes