Geeks With Blogs
A Technical Debtor Toward continuous improvement

You’ll notice for the next little while, I’m going to be talking about architectural refactoring. These posts will be a reflection on the past couple years as a software architect, specifically centered around what some people call “brownfield” development. That is, taking something that is in a less than ideal state, and improving it… not starting from scratch as in new (or “greenfield”) development.

Leaving aside philosophical discussions about whether all software development is “brownfield” or not (no plan survives contact with the enemy; no architecture survives contact with the writing of code), what I’m really interested in sharing is the experiences I’ve had with architectural refactoring. If Martin Fowler stumbles across this blog, I’m sure he’ll take exception to my use of the term “refactoring.” After all, I’m not making a series of small changes, validated through unit testing. I’m not even leaving the functionality intact. In at least one of the cases that I’ll describe, what I did was more akin to lifting the house off the foundation, blowing the old foundation into rubble, pouring a new basement, and then setting the house back down.

(I say “I” in this case… but really, I was the one that pushed the button that blew the foundation apart, then handed a new set of blueprints to the development team – they did the work rebuilding the business logic to deal with the changes I made.)

I had the privilege to give a talk about this, at Paul Rayner’s encouraging, for the IASA ITARC (I don’t know what it stands for either – it’s a regional conference) in Denver in May. The talk was incredibly well received, and George Fairbanks was gracious enough to encourage me to write about what I presented in that talk. So, here I am… writing about it, and also doing a fair bit more talking about it.

Posted on Monday, July 12, 2010 8:23 PM Software Development , Software Architects Group | Back to top

Comments on this post: Architectural Refactoring… Why Now?

# re: Architectural Refactoring…. Why Now?
Requesting Gravatar...
you'd be better off calling it "evolutionary design"

The dilution of the word refactoring is disturbing, there's a certain rigor to "factorization" which shouldn't destroy the product.

refactoring != a cool way to say "I'm gonna change stuff"
Left by Keith Nicholas on Jul 12, 2010 8:56 PM

Your comment:
 (will show your gravatar)

Copyright © Jeff Certain | Powered by: