The Artima Developer Community
Sponsored Link

Evolutionary Design
A Conversation with Martin Fowler, Part III
by Bill Venners
November 18, 2002

<<  Page 4 of 4


Good Design and Productivity

Bill Venners: I think one problem with getting people to care about design is that people change jobs. The developers who originally created the 11-page while loop had left the company by the time we had to clean it up. I think often programmers figure the chances they will actually experience the pain of dealing with their bad designs are slim, so they don't necessarily have an incentive to care. And even if a programmer does care, design is still hard to do well. Good design takes time, and it seems like there is always time pressure.

Martin Fowler: I don't agree that it takes longer to create well-designed code.

Bill Venners: Why not?

Martin Fowler: It is a curious thing. We seem to have a notion in the software industry that doing a good job slows you down. And yet when I think about working to keep code well-factored and writing tests, I find that makes me go faster.

I think people look at the time spent cleaning up a design as lost time. They don't see the time they gain when they change the code later and it is so much easier. It only takes a few minutes to make the change when it otherwise would have taken a couple hours.

People also underestimate the time they spend debugging. They underestimate how much time they can spend chasing a long bug. With testing, I know straight away when I added a bug. That lets me fix the bug immediately, before it can crawl off and hide. There are few things more frustrating or time wasting than debugging. Wouldn't it be a hell of a lot quicker if we just didn't create the bugs in the first place?

Talk Back!

Have an opinion about planned design, evolutionary design, or bad smells? Discuss this article in the News & Ideas Forum topic, Evolutionary Design.


Refactoring: Improving the Design of Existing Code, by Martin Fowler with Kent Beck, John Brant, William Opdyke, and Don Roberts is at at:

To Be Explicit, an article by Martin Fowler first published in IEEE Software:

Public versus Published Interfaces, an article by Martin Fowler first published in IEEE Software:

The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas, is at at:

IntelliJ IDEA, a Java IDE with refactoring support:

Eclipse, an open source IDE with refactoring support:

A catalog of summaries of refactorings mentioned in the book, Refactoring:

A refactoring portal maintained by Martin Fowler contains links to refactoring tools and other refactoring sites:

Martin Fowler's links to extreme programming resources:

Articles written by Martin Fowler about XP and agile methods:

Patterns of Enterprise Application Architecture, by Martin Fowler is at at:

UML Distilled: A Brief Guide to the Standard Object Modeling Language, by Martin Fowler and Kendall Scott is at at:

Planning Extreme Programming, by Kent Beck and Martin Fowler is at at:

Analysis Patterns: Reusable Object Models , by Martin Fowler is at at:

Martin Fowler's website contains many articles, book chapters, and other information from Martin:

<<  Page 4 of 4

Sponsored Links

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