Sponsored Link •
Bill Venners: You say in your article Is Design Dead, "For me, patterns are still vitally important," in the light of XP. Where do patterns fit in now?
Martin Fowler: Patterns give us targets that we look at. I still do some up-front design. Patterns are about that. They also give us targets for refactorings. We know what we want to aim towards. Also, knowing patterns gives us a way to kind of tune our sense of design aesthetics, because patterns are at least put forward as examples of good design. You can learn a lot by looking at examples. So I still think patterns have a very important role to play. It's no surprise that most of the people who've been pushing the XP movement are also really big in the patterns community. There's a huge overlap between those two communities.
Bill Venners: The last question I have is, what the heck is the agile software manifesto?
Martin Fowler: A bunch of people who have been very heavily involved in what we now call agile software methodologies--approaches such as extreme programming, scrum, crystal, fix-driven developments, and DSDM --got together and compared notes. We realized we have a lot in common and decided to write down the things we agree on. We made the manifesto as a kind of rallying symbol for this style of methodology we're all in favor of. At the meeting we decided to call them agile methodologies. The manifesto is the closest thing you'll ever get to a definition of what agile software development is about. The manifesto is meant to be a rallying cry to say this is the way we think a large chunk of the industry should go.
Bill Venners: Let's talk about one of the four principles: "valuing Individuals and interactions over processes and tools." What does that mean?
Martin Fowler: That principle basically says that rather than focusing on processes and tools as a way to further your software development organization, it is more valuable to focus on the people on your team, on individuals and the way that they interact at a personal level.
Bill Venners: Do you mean improving their skills?
Martin Fowler: That principle means a whole bunch of things. It involves improving skills. It involves perhaps deciding to go to greater lengths to make developers happier so the abler ones will stay. It means taking personality conflicts more seriously. It means spending time dealing with people rather than figuring out the perfect software process and telling everyone they should follow that process. One of my connotations from that principle is that rather than choosing a process and then fitting the team to the process, teams should chose their software process. You should have the process fit the team, not the other way around.
Even though many of us at the meeting were expounding processes of our own and several of us were tools vendors, we all agreed that software processes and tools are second order effects as to a project's success. The people you have in the team, and how they work together on a human level, is a much bigger factor.
Refactoring: Improving the Design of Existing Code, by Martin Fowler with Kent Beck, John Brant, William Opdyke,
and Don Roberts is at Amazon.com at:
Patterns of Enterprise Application Architecture, by Martin Fowler is at Amazon.com at:
The Manifesto for Agile Software Development, and its four principles are at:
Is Design Dead, an article by Martin Fowler, is 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:
JesTer, the tool mentioned by Martin Fowler that finds places in your code
not covered by a unit test:
The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt
and David Thomas, is at Amazon.com 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:
UML Distilled: A Brief Guide to the Standard Object Modeling Language, by Martin Fowler and Kendall Scott
is at Amazon.com at:
Planning Extreme Programming, by Kent Beck and Martin Fowler is at Amazon.com at:
Analysis Patterns: Reusable Object Models , by Martin Fowler is at Amazon.com at:
Martin Fowler's website contains many articles, book chapters, and other information from Martin: