The Artima Developer Community
Sponsored Link

Weblogs Forum
And Now.. Legacy Code

6 replies on 1 page. Most recent reply: Dec 17, 2007 2:53 AM by Vincent O'Sullivan

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 6 replies on 1 page
Michael Feathers

Posts: 448
Nickname: mfeathers
Registered: Jul, 2003

And Now.. Legacy Code (View in Weblogs)
Posted: Apr 4, 2005 2:07 PM
Reply to this message Reply
The hardest part of writing a book is discovering that you can't read it any more. That's when you get scared.

A week ago, a friend of mine chided me for not having blogged my book 'Working Effectively with Legacy Code' (WELC). It was easy to tell him "No, I'm just not good at the self-promotion thing" but, thinking about it, I realized that there was also a deeper reason. The sad truth is, that the writing process got me to the point where I just couldn't write about the topic any more. I also could barely read what I'd written. You can only read your own words so many times before you just don't see them anymore. I remember talking to Martin Fowler at a conference just before his Refactoring book came out. I asked "So how's the refactoring book going?" and he answered with something to the effect that he couldn't look at it anymore. That's pretty much how I felt up until a month or so ago.

Anyway, I'm at the point now where I can read it, and I am going to do a lot more writing and talking about the topic, because I feel it is an important one even though it is hard to discuss. After all, who wants to talk about legacy code? What is it? Ancient COBOL? CICS? K&R C? Well, to me, legacy code is code that makes us say "eeeww... who did this?", even when the people responsible may be ourselves, days, months or years ago before we knew better. In other words, legacy code is code that we don't understand, code that is hard to work with.

The topic isn't as "cool" as MDA, .NET programming, or AOP. We don't get to imagine some pristine technological world where we are starting from scratch and all the problems get swept aside, it's just the sort of work that people can do day-to-day in existing systems to make them more pliable and easy to work with. Sounds like refactoring, doesn't it? Well, refactoring is involved, but most of what I've been writing and talking about is how to get portions of code under test so that you can refactor it or add new features safely.

A lot has happened since the book was published late last year. Like I said, I've had that period where I tried not to think about the topic, and I had a long period of self-doubt (when you can't even read your own words any more, it's very hard to convince yourself that what you've explained things well enough). Regardless, the book seems to be selling well and I've received some great personal notes in email (thanks). When I was at SD West a few weeks ago, during one of my visits back to the conference bookstore, the book seller said "Hey, I think you are my top seller." The next day the book sold out. The reviews on Amazon have been great. The book has been floating pretty high in the sales rank for a while. It dips down and then soars again, unpredictably. Brian Marick shocked me by calling the book one of the most influential computer books of the past ten years, JavaRanch gave it ten horseshoes and Gregory V. Wilson said, in a review in C/C++ Users Journal, "Working Effectively with Legacy Code is quite simply a great book. I've folded down more corners on it than any other book I've read this year..."

So, that's all the shameless promotion I'll do for the book here. It's hard to do because I see the little things I would change now, things I've learned since then, however I feel that I do have to push the book a bit. The term "legacy code" isn't very sexy and I want to make sure that the book gets in the hands of the people who need it the most.

Over the next few weeks, I'll be writing articles about various techniques that can be used in legacy code and I'll link them from here.

In other news, a good friend of mine, Brian Button has started a series of blogs about his experiences using techniques from the book, and I've gotten word my tutorials on WELC have been accepted by UML World in San Antonio and XP2005 in Sheffield, UK.

If you want to discuss issues related to the topic, feel free to post them here or join the WELC yahoo group at

I'll be speaking at SPA2005 next week in Bedfordshire, UK on a completely different topic (coaching) but I am looking forward to side discussions about legacy code. Please say hi if you are there.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: And Now.. Legacy Code Posted: Apr 5, 2005 12:29 AM
Reply to this message Reply
You'll doubtless be pleased to hear that the book arrived on my doorstep yesterday. I've only read a few pages of the 'Monster Methods' so far, but it looks good.

You say that the topic isn't cool but when you bear in mind that the majority of programmers spend the majority of their time with legacy code (often of their own making) then I think you've hit on a massive potential market that needs all the help it can get.


Terje Slettebø

Posts: 205
Nickname: tslettebo
Registered: Jun, 2004

Re: And Now.. Legacy Code Posted: Apr 7, 2005 7:50 AM
Reply to this message Reply
On the subject of coolness: Not at least because of my day-to-day experience with "legacy code", my main private computing interest at the moment is actually aligned with my professional interest: learning how to evolve code over time (I think it said something about that interest of Mikhael Feathers on the book bio, as well). This also fits well with my interest in refactoring, patterns, etc.

So, the issue of evolving code over time (regardless of its existing state), is something that can be very cool, indeed, I think. :)

Great book, by the way. :) (It was recommended to me by Dave Astels - I had given him some positive feedback about his blog (, and in the mail exchange, he recommended the book.) I'd say it's just what the doctor ordered. :)


Michael Feathers

Posts: 448
Nickname: mfeathers
Registered: Jul, 2003

Re: And Now.. Legacy Code Posted: Apr 9, 2005 3:15 PM
Reply to this message Reply
Thanks for the compliments.. now.. to sit down and write some articles.

Marcus Baker

Posts: 92
Nickname: lastcraft
Registered: Sep, 2004

Re: And Now.. Legacy Code Posted: Apr 10, 2005 9:00 AM
Reply to this message Reply

It's an excellent book. Stop whining ;).

yours, Marcus

Ori Peleg

Posts: 1
Nickname: orip
Registered: Dec, 2007

Re: And Now.. Legacy Code Posted: Dec 14, 2007 11:41 AM
Reply to this message Reply
Hi Michael!

I'm late in replying, but I've only recently received a copy of your book.


It's funny, I thought I knew a thing or two about working effectively with legacy code, including putting old, tangled code under test, but reading your book makes me feel like a beginner again - in a wonderful way! Thanks for sharing your experience!

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: And Now.. Legacy Code Posted: Dec 17, 2007 2:53 AM
Reply to this message Reply
Two and a half years later, it's still one one the (sixteen) books on my desk.

Flat View: This topic has 6 replies on 1 page
Topic: And Now.. Legacy Code Previous Topic   Next Topic Topic: Why I want a Ruby version of <Project-X>

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use