Tuesday, February 26, 2002

Learning Proven Lessons

This article appears in slightly different form in the January/February 2002 issue of IEEE Micro © 2002 IEEE.

The books I look at this month cover a wide variety of subjects, but they are all about learning. None of them deals with a brand new topic. Two of them are new editions of successful books about important topics: XML and Perl. Two are successors or companion volumes to other works by the same authors: Gerald Weinberg on consulting and Kendall Scott on the Unified Process. One applies old principles to designing websites -- a no longer new, but still largely undisciplined activity.

These books illustrate an important idea. Fads come and go, but there is no magic. Fads become disciplines through patient progress, trial and error, and applying proven principles to new situations.


New Editions

XML Handbook, 4th edition by Charles Goldfarb & Paul Prescod (Prentice-Hall PTR, Upper Saddle River NJ, 2002, 1164pp plus 2 CDs, ISBN 0-13-065198-2, www.phptr.com, $49.99)

Prentice-Hall produces a series of XML books under the title The Charles F. Goldfarb Definitive XML Series, and this book is the flagship of that series. Some books in the series are pro forma attempts to describe logically necessary pieces of the XML world. They leave me unsatisfied, wondering "where's the meat?". This book, however, contains an overwhelming amount of meat.

On his website, www.xmlbooks.com, the senior author, Charles Goldfarb, lists and comments on hundreds of XML books, including 15 that he personally recommends. This one is first on his list. Here is what he says about it:
Everyone involved with the Web needs to know about XML: content creators, Website developers, programmers, and — most of all if you want your projects funded — managers. What reviewers have praised most about The XML Handbook is its ability to reach all these people, while still maintaining the accuracy and completeness that its technical readers require. So much has happened in the XML world since the last edition was published that we've prepared a revised and enhanced fourth edition with over 1200 pages and two CD-ROMs.
This may seem like shameless self promotion, but it's accurate. Goldfarb is essentially the father of XML. His deep involvement and many contacts make it possible for him to understand, make sense of, and explain the many application areas that have embraced XML. 

Many industries and application areas have turned to XML to help them standardize their information structures and business interactions. This has led to an alphabet soup with an oversupply of Xs. This book helps to sort out and demystify the new standards and terminology.

The accompanying CDs are a strong point of this book, because there are so many XML-related tools. It's hard to know which ones address the problems you're trying to solve, and of those, which are efficient and reliable. By collecting a large number of excellent free tools and explaining what they do, the authors have performed a service that you would have to spend a large amount of time to duplicate.

With all of this, XML is still a daunting area. Reading a book of nearly 1200 pages and exploring the contents of two CDs requires a large commitment. There's no royal road, but when you make that sort of commitment, it's nice to know you're not heading down the wrong path.    


Learning Perl, 3rd edition by Randal Schwartz & Tom Phoenix (O'Reilly, Sebastopol CA, 2001, 334pp, ISBN 0-596-00132-0, www.oreilly.com, $34.95)

People in the Perl community call this the Llama Book, because the cover bears the picture of a llama. Over the last nine years, thousands of programmers have learned Perl from the Llama Book.

I did not like the second edition of this book (Micro Review, December 1997) because I found many technically significant errors in it. When beginners see an unexpected result, they often cannot tell whether they have misunderstood an essential fact or simply encountered a harmless typo. For this reason, a tutorial full of errors is very hard to use. In response to my queries about the errors, O'Reilly technical support sent me a long list of corrections, so I assume they have fixed them all in this edition.

If this edition of the book is substantially error free, it's certainly worth looking at. The authors have a great deal of experience teaching Perl face to face with students. Their presentation and exercises have evolved as a result of that experience. In fact, they have essentially rewritten the book to follow their courseware more closely. Some of the structural changes make the material easier to digest. For example, they provide a gentler introduction to regular expressions -- a subject that could easily fill a book by itself. In fact, if you become intrigued with regular expressions, there is a whole book about them, Mastering Regular Expressions by Jeffrey Friedl (Micro Review, December 1997).

Unlike Charles Goldfarb, these authors are not the fathers of the subject they are writing about --  that distinction goes to Larry Wall. They are, however, recognized experts, active in the Perl community. Like Goldfarb, they can show you a path through a daunting body of material. The Perl community, like the XML community, is actively extending its reach, and it takes experts like Schwartz and Phoenix to keep track of all of that work and explain its significance. I like the fact that the authors tell you up front that you're not going to learn the material in a few hours.

If you're ready to learn Perl on your own, or if you want to teach an introductory course in Perl, this is the book to measure all others against.


Companion Volumes

More Secrets of Consulting -- The Consultant's Toolkit by Gerald M. Weinberg (Dorset, New York NY, 2002, 214pp, ISBN 0-932633-52-8, www.dorsethouse.com, $39.45)

In my review of the SHAPE Roundtable on Project Management (Micro Review, July/August 2001), I pointed out that some of the shared images that make that discussion work come from Gerald Weinberg's Secrets of Consulting (Dorset, 1985). Now Weinberg presents more secrets and a whole new set of images. The yes/no medallion, for example, reminds you to mean it when you say yes or no. And every time someone mentions the yes/no medallion in a discussion, I will think of the chapter from hell, Weinberg's wonderful illustration of why yes should mean yes and no should mean no.

In earlier books, Weinberg established many famous laws. This time he uses the metaphor of a consultant's toolkit to store items like the yes/no medallion, but he hasn't given up on laws either. For example, when one colleague used Weinberg's law of raspberry jam (don't spread it too thin) to question why he was writing a sequel to Secrets of Consulting, Weinberg answered with more laws. The law of strawberry jam says that if it has lumps, you can never spread it too thin. The law of grape jam says that if you don't expect much, you're unlikely to be disappointed.

Weinberg bases his consultant's toolkit on the self-esteem toolkit devised by family therapist Virginia Satir, who wrote the foreword to the secrets of consulting. He does this because, in the words of Peter Block, 
The person is the product. Working on becoming a more authentic, whole person is the best business strategy.
The elements of the toolkit come dangerously close to new age superficiality. The wisdom box, the courage stick, the wishing wand, the heart, and others all have a new age sound. Weinberg used his courage stick when he chose this framework. And his wisdom box told him that it would work, because he wouldn't be gift wrapping garbage. He has so much to say and so many instructive stories to tell that any reasonable framework would have served the purpose.

The book is short and hard to summarize. If you're a Gerald Weinberg fan, you don't need me to tell you to buy this book. If you're not, I think you'll find this book a delightful introduction to the man and his work.


The Unified Process Explained by Kendall Scott (Addison Wesley, Boston MA, 2002, 206pp, ISBN 0-201-74204-7, www.aw.com/cseng, $34.99)

In UML Explained (Micro Review May/June, 2001) Kendall Scott explains the unified modeling language (UML), which is at the heart of the unified process. Now he has written a companion volume to describe that process.

The unified process is fairly simple in its essence, but large and complex in its implementation. By omitting material on UML and project management, Scott is able to focus on the core of the process.

The unified process structures software development around five workflows, four development phases, and a large number of deliverables that arise from the workflows and phases. Scott imitates this structure in his book. Using the online bookstore application he developed for UML Explained, he explains the process about as clearly and lucidly as possible.

The unified process is to a certain extent an iterative and incremental approach to development, which inevitably invites comparison with extreme programming (XP). Scott examines the question of whether XP is a special case of the unified process, and decides that it is not.

Like XML and Perl, the unified process has a large body of contributors who continually refine and elaborate it. This short book can give you a roadmap. But if you want to understand the unified process, you must take the next step and use it in a real project. If you are trying to decide whether to use the unified process, this book can help you to make that decision. 


Old Principles

The MIT Guide to Teaching Website Design by Edward Barrett, Deborah Levinson, and Suzana Lisanti (MIT, Cambridge MA, 2001, 114pp, ISBN 0-262-02500-0, mitpress.mit.edu, $22.95)

Edward Barrett teaches in the MIT program in writing and humanistic studies. Deborah Levinson is a graduate of that program who now works as a designer. Suzana Lisanti directs web publishing at MIT. These authors do not focus mainly on engineering; they focus on teaching and communicating. They are skeptical of claims of new paradigms, a digital wonderland, and the death of print. They apply time honored principles to teaching people how to communicate via hypertext-based systems.

Unlike most website design books, this one covers topics like optimal class size and classroom configuration. It emphasizes the need for collaboration, and it focuses on traditional topics like understanding the audience and tailoring the communication to that audience.

If you need to understand or teach website design, you may find this book a lot more helpful than a shelf full of books on HTML or web graphics.