|
|
|
Long, long ago in a universe far, far away, Charles Duff and Jim McCarthy were two of the three primary players in a small software company named the Whitewater Group. The Whitewater Group's main product was Actor, a programming environment for Windows version 2.03 that was a strange hybrid of Pascal, C, and Smalltalk. (For those of you with a historical bent, Charles Duff was previously the author of Neon, an idiosyncratic Forth-based object-oriented programming language sold by Kriya Systems for the Apple Macintosh. Kriya Systems, some say, fell victim to the eponymous founder's taste for white stretch limos and lavish Comdex parties, but Neon still clings to life in a public-domain implementation called Yerk.)
Both Actor and Windows 2.03 itself were too fat, slow, and fragile to be useful for much except toy applications, and in the fullness of time Whitewater Group exhausted its venture capital and vanished away. Jim McCarthy eventually landed in the Languages Business Unit at Microsoft, where he joined the C/C++ development team. At the time, Denis Gilbert and his hardy band of coders were frantically trying to recover from the disaster of MSC 7.0, a product that was almost universally scorned and abhorred. The release of Visual C++ in 1993, along with Microsoft's bottomless marketing resources and a series of fumbles by Borland, turned the tables: to everyone's astonishment, Visual C++ quickly dominated the market for Windows C/C++ development tools. McCarthy leveraged this reversal of fortune and his own not-inconsiderable abilities as a public speaker to build a reputation as an "industry guru" on software development.
Hence the book before us now, the latest in a long series of vanity books from Microsoft Press and without doubt the most obnoxious. Let me preface the rest of my remarks by saying that, in general, I (and the rest of the ERCB reviewers) will not waste your time and ours by reviewing bad books just for the sake of bashing them. After all, the number of truly dreadful computer books is formidable, and doing justice to all those shoddy tomes would be a Sisyphean (not to mention painful and thankless) endeavor. Far better to occupy ourselves reading and reviewing those much-scarcer books that combine readability, style, technical accuracy, and high-quality production! But this book, which is being hyped by Microsoft Press as an "instant classic" and as a guide to success for software developers everywhere, cannot be safely ignored.
There are some sound ideas in McCarthy's book, although few -- if any -- of them are original with him or even with Microsoft. Unfortunately, the morsels of common sense float in a sea of self-congratulation, bombastic psychobabble, and the insular jargon of Microsoft employees. Let's look at a few examples. From the Forward: "Imagine that Leonardo da Vinci, Tom Peters, and Robert Fulghum have co-authored a book on software development, and you'll have an idea of what to expect... Jim's book is a visionary, animated, and pragmatic guide to developing great software, maybe even historic software, on time." From page 13: "The leader and the team will feel and know as one, giving voice and identity to what was an incoherent psychological community substrate." From page 34: "Symptoms include... a conviction that management is incurably random." From page 51: "Greatness, which is a superset of timeliness, will result from proper ministration to the group psyche." From page 64: "Whenever you refocus... you run the risk of randomizing your team."
Occasionally -- well, much more than occasionally -- McCarthy gets carried away with his pop psychology and goes completely off the rails. From page 44:
"Many creative and brilliant people unconsciously insist that something hold them back, that some negative force prevent their gifts from emerging. They carry around within them a 'governor' function that blocks the ultimate release of their full creative energy. This self-inhibiting stems no doubt from some early parental rejection of the child's beauty, passed blindly from parent to child, some introjected fearfulness of being: If I truly reveal my uniqueness, the child senses, you (the parent) will abandon me. Since few parents ever explicitly demand that their child limit his or her growth, we all tend to develop extremely subtle sensitivities that enable us to detect these negative parental demands."
A great demonstration of how much arm-waving and how many untestable assertions can be compressed into a single paragraph! But the preposterous "Eclectic List of Resources" at the end of the book gets the Bogosity-of-the-Century Award, as McCarthy dispenses McCulture:
"Anyone claiming to be civilized ought to have a basic understanding of Freud. Read something that accurately describes Freud's signal insights: read Freud himself, his correspondence, his biographers, or even the Cliff notes -- or watch a movie... If you can, undergo some sort of psychoanalysis... Get a handle on Darwin's perceptions. The effort will pay you back a thousandfold in interpretive if not prescriptive information...Spend some time with Shakespeare, it doesn't have to be a lot of time... See the movie Babette's Feast as a primer on opening up people's awareness..."
And let us not forget the book's biographical note, presumably written by McCarthy himself, that has few parallels for sheer pretentiousness:
"...Although he delivers software development seminars and talks throughout the world, Jim is still developing and shipping commercial software for a living, and he says he is not yet a burnt-out case. Maybe that's because Jim also paints, writes, raises children, and sculpts stone and wood in a log house on Crystal Lake in the state of Washington. On occasion, his CRT still illuminates the woods."
Whoa, dude! What a Renaissance Man! Awesome!
Dynamics of Software Development does have some practical value as a peephole into Microsoft corporate thinking. From page 56: "Commercial competition evolves from a warrior ethic and is about blood lust. It's a slightly more refined stand-in for the primitive and nearly ubiquitous urge to conquer one's enemies, abscond with their property, and destroy their future." From page 57: "Teamwork is really exemplified by the image of a vicious pack of snarling wolves cornering a young lamb." From page 66: "To solve the current problems with a product, the customer gets the next one." From page 85: "Portability is for canoes." From page 115: "ZD stands for Zero Defects, although that doesn't mean that there are no bugs in the software, or that there is no missing functionality." From page 151: "You need to know the range of quality that's acceptable to your customers. How many low-priority bugs did your product ship with last time? Was it a problem?" From page 153: "The Beta is for spin development."
The most important service Dynamics of Software Development renders is one that its author, and publisher, never intended -- it provides a vivid example of what can go wrong in vanity publishing. Traditionally, "vanity publishing" refers to books whose printing and distribution are paid for out of the author's own pocket, usually because no commercial publisher thinks the manuscript is worth the bother. Vanity publishing is inherently broken because it defeats the normal checks and balances and the creative tension between the manuscript editor, the technical editor (in the case of computer books), the book designer, the graphics artist, the typographer, the marketing specialist, and the independent author -- each of whom brings his or her own special knowledge, talents, and vested interests to the table.
Microsoft Press practices its own unique brand of vanity publishing -- book contracts are granted to favored insiders such as Letwin, King, Brockschmidt, Custer, and McCarthy as perks, ego boosters, or occasionally just to make a content-controlled, risk-free end-run on the competition. In such a situation, the publishing process is corrupted because the author's clout within the corporate hierarchy or the overriding corporate goal disrupts the time-tested web of relationships in book production. For example, a workaday book editor at Microsoft Press is hardly in a position to tell Jim McCarthy, one of Bill Gates' current Golden Boys, to trim the gibberish out of his manuscript. As a matter of fact, Microsoft Press indulged McCarthy to the extent that they hired his brother to create the book's illustrations, with grotesque consequences (see samples below).
When it was first established, Microsoft Press was run by publishing professionals recruited from the outside, allowed to operate at arm's length from the parent corporation, and quickly built a reputation for publishing excellence on every level. Although that golden era is long over, and much of Microsoft Press's output is now recycled product manuals or insipid (and often inaccurate) systems and tools documentation, Microsoft Press does still release some very fine books. But this is not one of them.
-- Ray Duncan
The unceasing change in software is being driven by the global pulse of new operating system releases, which have become the central organizing element in this stage of the information revolution. Hardware, peripheral, software, and mass communications organizations are all cycling with major releases of Windows. This rhythm is not something that will let up soon. A techno-industrial heartbeat has emerged from the primordial technological soup we used to swim around in.
It's essential to the well-being of your organization that it respond aggressively to these regular international technological changes. Shrink-wrap software companies basically package their knowledge up into products. The product is the primary means of communication. To solve the current problems with a product, the customer gets the next one. This is an ongoing process, not a one-shot decision.
It's not so much that you want the next operating system release for its own sake, though that in itself is often quite desirable; rather, it's the accompanying technology that your product needs. And if you skip a release, your competitor may not. Your customers will no longer be able to integrate off-the-shelf components with your software. They'll miss the considerable productivity and performance gains each new generation of computer technology offers, and they'll suffer both the real and imagined pangs of feeling technologically inferior and unfashionable.
Don't neglect to consider the power of fashion. Don't dismiss it. Search your own feelings about model years or clothes or music before you relegate the notion of fashion to the irrelevancy bin. Factor the powerful appeal to your customers of a new start, with all the latest conveniences, into your plans.
-- from Dynamics of Software Development, page 66.
| "Burn-Out" |
| "Wolf Team" |
| Jim McCarthy, industry guru, painter, writer, sculptor, illuminator of the woods, etc. |
-- Steve McConnell, Rapid Development, page 388.
| Readability |
|
| Originality |
|
| Organization |
|
| Accuracy |
|
| Consistency |
|
| Depth |
|
| Timeliness |
|
| Editing |
|
| Design |
|
| Overall Value |
|
Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.