Presentation: "The Joys and Pains of Long-lived Codebases"

Time: Thursday 13:00 - 14:00

Location: Olympic


Agile development practices and good Object Oriented Design principles are supposed to enable unending, gentle modification of an existing codebase. Is this really true, though? In the course of 5+ years developing and evolving an open source framework, I've learned a lot of painful lessons about the issues that retard code extensions and modifications. I've also learned a little bit about the design decisions that dramatically increased my ability to extend the code. In this talk I'll show several instances of how failing to heed design fundamentals introduced code viscosity, and how some strategic refactorings opened up the flood gates for new functionality.

Undoubtedly, the practice of Test Driven Development directly supports your ability to modify a system, but I found out the hard way that there are also plenty of ways to do it wrong. I'll share examples of high friction TDD and the changes in strategy I employed to reduce that friction to wring more value out of TDD.

The programming languages we use for .Net development have changed dramatically in 5 years. We can apply the new language features in C# 3.0 to improve the readability and structure of both our code and the way that we express unit test specifications.

Lastly, I'll discuss our changing expectations on framework usability and the resulting impact on design.

Jeremy Miller, Author of StructureMap

 Jeremy  Miller

Jeremy is the Chief Software Architect for Dovetail Software in Austin, TX. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development.

Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net and writes the Patterns in Practice column for MSDN Magazine.

Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#.