Planned Obsolescence: Built to Last, or Build One to Throw Away?

Erin Dees (Tektronix), Baq Haidri (LinkedIn)
Software Architecture
Location: Portland 255 Level: Intermediate
Average rating: ***..
(3.94, 17 ratings)
Slides:   1-PDF    external link

We strive to create designs that will last. But in doing so, we run the risk of over-engineering: building in so many abstractions at the beginning of a project that it degenerates into unmaintainable code.

What causes these risks, and what can we do about it? If there were a simple answer, everyone would be doing it already. Instead, we have to make do with a few heuristics, practices, and insights into human nature.

In this talk, we’ll look at a number of different code samples from a number of different angles, including:

  • Good reuse vs. bad reuse, and how to know which is which
  • When it’s okay to build an abstraction in advance
  • How we measure our self-worth as engineers, and why that affects our designs
  • What to do when we’re faced with an endless series of one-off projects
  • How we can stop worrying and learn to love the Delete key
  • Rules of thumb for abstraction
Photo of Erin Dees

Erin Dees


Ian Dees saw his first Timex Sinclair 1000 over 20 years ago, and was instantly hooked. Since then, he’s debugged embedded assembly code using an oscilloscope, written desktop apps in C++, and joyfully employed scripting languages to make testing less painful. Ian currently writes GUI code for field instruments as a Software Engineer at Tektronix.

Ian is author of the Pragmatic title Scripted GUI Testing With Ruby, and co-author of Using JRuby and Cucumber Recipes.

Baq Haidri


I’ve been writing code since the days when QBasic shipped with Windows 3.0, but it wasn’t until years later that I learned that programming is both creative expression and analytical exercise, and that I could get paid to do it. Since then, I’ve loved making computers do useful things for people, whether they be other programmers, or biologists, or my mom. These days I can be found at LinkedIn trying to get their computers to help other people find jobs that they’ll love as much as I love mine.


Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or

Contact Us

View a complete list of OSCON contacts