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
 
      