I started reading a very recently published book. I don’t want to mention the name of the book, but it is a tome targeted at “application developers.” After reading a small number of paragraphs from the book, I had to check my calendar to see whether this was 2009 or 1995.
Some choice sentences from the book that just grabbed me right off the bat:
-
“Software applications should simulate (model) the real world with close affinity to the problem domain.”
-
“…the average developer should spend 40 to 50 percent of his or her time in design and not writing code.”
-
“Similar to comments and just as important [emphasis added], the design documents a program.”
-
“An artist does not start with a paintbrush and a canvas. There is considerable preparation before painting can begin. … Similarly, developers do not simply start writing code. The requirements analysis must be undertaken, a design drafted, the prototyping [emphasis added] of class operations, and only then, finally, the implementation.”
-
“The goal of TDD is simply to be a framework for addressing customer requirements with software through an iterative approach to testing and coding.”
[ All told, the author uses around 10 paragraphs in the book to describe TDD, not providing a single example. ]
For me, one of the most illuminating benefits of all this up-front emphasis on design seemed to be realized in the brilliant class diagram for a simple retail banking system. It looks something like:
Employee <|---- Teller <------ Customer
|
|-- Manager
The power of the “real world” comes alive! This ingenious class diagram existed to support building the following code:
static void Main(string[] args)
{
Customer cust = new Customer();
cust.Teller = new Teller();
cust.Deposit();
cust.Withdrawal();
}
Per the author, this code “validates” the design.
I’m speechless. (Well, no, I’m fingerless, or something. There must be a better word for being so flabbergasted that you can’t start to type a response.) I could rail on this book to no end, but it would only draw attention to the book (and you’ll note that I’m not providing a link to it either).
Comments
leebrandt March 26, 2009 at 01:37pm
well, now I’m going to be looking for the book, so I can avoid it and tell any junior/aspiring developers to avoid it….
Anonymous March 27, 2009 at 10:02am
a birdie told me it was a MS Press book