Saturday, June 25, 2005

The World is Flat

This article appears in slightly different form in the May/June 2005 issue of IEEE Micro © 2005 IEEE.

Friedman's Flat World

The World is Flat: A Brief History of the Twenty-First Century by Thomas L. Friedman (Farrar, Straus, and Giroux, New York NY, 2005, 496pp, ISBN 0-374-29288-4, www.fsgbooks.com, $27.50)

Tom Friedman is a New York Times columnist who has won the Pulitzer Prize three times. He often appears on in-depth interview programs like Charlie Rose or C-SPAN's Book TV. He has an optimistic and enthusiastic manner, which is built on the confidence that comes from doing the underlying journalistic work.

Friedman addressed globalization with his book The Lexus and the Olive Tree: Understanding Globalization (FSG, 1999). In that book he noted that half the world was trying to make excellent products that they could sell worldwide, while the other half was fighting over who owns which olive tree. After the terrible attacks of September 11, 2001, however, Friedman focused almost entirely on the Middle East (the olive tree side of that book) until early in 2004 when he looked around and noticed that a great deal had happened on the Lexus side. He set about to understand and explain the new developments, and this book is the result.

Friedman's melodramatic title is beautifully matched by a dust jacket featuring Ed Miracle's lithograph I Told You So. Friedman's title represents his discovery that the "playing field" is much larger and more level than he had realized. That playing field does not, however, encompass the whole world. Friedman acknowledges this late in the book and admits that his rosy picture of globalization has a dark side. He has suggestions for addressing the dark side, but they depend on an understanding of his flat world.

Friedman equates the flat world with a rising spiral of horizontal collaboration. This arises from a convergence of the following factors:
  • Synergistic interaction of what Friedman calls the ten flatteners.
  • Widespread adjustment of business practices to accommodate the flatteners.
  • Three billion new players on the field.
Friedman's flatteners are a little arbitrary, but I think they cover the ground pretty well. They are the following, roughly in chronological order.

The fall of the Berlin Wall on November 9, 1989 marked a big step toward worldwide unity. One of the world's two main economic systems had collapsed, leaving just one viable model. This was tremendously liberating for both India and China, as well as the 600,000,000 inhabitants of the former Soviet empire. By an odd coincidence, roughly the same date marked the emergence of Windows 3.0 -- not a very good operating system by today's standards, but good enough to become the worldwide standard.

The Netscape initial public offering on August 9, 1995, is the signpost for Friedman's second flattener. The browser made huge numbers of public sites available to anyone with a modem and a PC, practically anywhere in the world. Just as important, the Netscape offering kicked off the dotcom bubble, resulting in vast amounts of fiberoptic cable providing high-speed communication between the United States and much of the rest of the world, including India. When the bubble burst, companies were able to use this cable for very little money.

The third flattener is the development of what Friedman calls work flow software. By this he means the XML-based protocols that allow software packages to communicate. The loose coupling that this architecture provides has allowed many ad hoc collaborations between software packages that were never designed to collaborate.

The fourth flattener is the open source movement. Friedman tells the story of Apache, which has enabled companies to use a worldwide free standard as the basis for their application servers, then add (and charge for) their own bells and whistles. He distinguishes this from the Gnu/Linux model in which it is much harder for companies to charge for their add-ons. Both of these models make world class software available free to anyone in the world, and they also serve to keep the prices of competing commercial products low.

The next four flatteners describe business practices that exemplify horizontal collaboration. Flatteners five and six are outsourcing and offshoring, practices that many people confuse. Outsourcing describes the identification of discrete business modules that can be done elsewhere and the delegation of those modules to other companies. Offshoring entails moving an entire operation to another country, but keeping control of it. 

Outsourcing to Indian firms, according to Friedman got a big head start during the Y2K scare. Many United States companies outsourced their Y2K repairs to Indian firms because they simply couldn't find enough workers and enough money to do the work in the US. This built the reputations of many Indian firms for high quality work at low cost. Then, when the dotcom bubble burst and US firms had a lot less cash, they turned to India out of need, but with confidence, for many of their software development needs. And the abundance of fiber-optic cable made the collaboration much easier than it would have been otherwise.

Friedman's discussion of offshoring focuses on China. That country, with its authoritarian structure, was able to impose a change in its economic system from the top down. All it took was for Deng Xiaoping to say "Black cat, white cat, all that matters is that it catches mice. To get rich is glorious." As we all know, however, top down changes don't always percolate smoothly to the bottom. Many firms got burned before they learned the best strategies for offshoring to China, but many US firms now have highly successful and profitable operations in China.

The seventh flattener is supply chaining. Friedman describes the far-flung Dell supply chain that produced the notebook computer on which he wrote the book. He also describes the intimate relationship between WalMart and its suppliers. Not only does WalMart integrate its suppliers' workflows into its own, but it feeds information about sales back to its suppliers to help them improve their offerings. Of course, this relationship gives WalMart extraordinary leverage over its suppliers, and WalMart uses this leverage to full advantage.

Friedman calls the eighth flattener insourcing. You could call it outsourcing as seen from the vendor's point of view, but it is qualitatively different. If you call Toshiba to report a problem with your laptop, they tell you to take it to UPS. UPS, however, does not deliver the laptop to Toshiba. Instead, UPS repairs the laptop at its own hub and delivers it back to you. This is just one of many examples of how UPS encourages its package delivery customers to outsource functions that happen just before or after package delivery to UPS.

The ninth flattener is Google and related services. Anybody can find out practically anything from anywhere at any time. This automates and expands what assistants or librarians used to do. As Friedman points out, when Colin Powell wanted to look at UN Resolution 242, he didn’t need to call an aide. He just Googled it. Powell's aides had to find other ways to add value. 

The availability of powerful search capabilities has many implications for ordinary citizens. A great deal of personal history and information is readily available to potential employers, lenders, or even acquaintances. And your mistakes will follow you forever.

Friedman rounds off his ten flatteners with one he calls the steroids. By this he means that computers provide greater MIPS, more memory, and faster I/O. File sharing, multipurpose devices, voice over IP, and wireless communication all work to supercharge the other flatteners.

For Friedman's triple convergence, the ten flatteners reinforce and amplify each other. Businesses change their practices to accommodate the new reality. Business, technical, and even liberal arts schools start turning out graduates who are comfortable with the flat world. And the entire populations of China, India, and the former Soviet Union enter the worldwide job market. Of course, not all of these people are prepared to compete in the global marketplace, but Friedman estimates that at least 150,000,000 technically qualified workers who couldn't do so before are now competing directly with US workers. That number is about the size of the US workforce.

Having laid out a picture of the flat world in highly optimistic terms, Friedman tries to address the troublesome points. To do so, he begins with an amazingly prescient excerpt from a work written in 1848, more that 150 years ago. Karl Marx in Das Kapital predicts that capitalism will dissolve national and religious identities to produce a universal civilization governed by market imperatives. Fortunately, this has not happened, but the forces of globalization do provide just that sort of pressure. Friedman contends that we need to distinguish between different categories of obstacles to globalization. Some obstacles are sources of waste and inefficiency. Others are sources of identity and belonging.

The political discussion of a social contract that distinguishes between the bad obstacles and the good ones has to happen at the level of individual countries. Large companies, however, can provide transnational influence. Friedman cites the cases of companies like HP, Dell, and IBM, which have set standards of socially responsible manufacturing practices that all of their suppliers throughout the world must meet. This is one side of the transnational companies. The other side is that being in many countries gives a company the flexibility to avoid the troublesome regulations of any particular country. 

Friedman also sets up a contrast between WalMart and Costco, firms that provide approximately the same services. He notes that WalMart provides much less in the way of health care coverage than Costco. WalMart gives a better return to its shareholders, but states and communities in which WalMart does business may have to pick up the tab for WalMart's underinsured employees. This raises the question of where the boundaries between companies and their surrounding communities lie.

In the 1930s, in the midst of the Great Depression, the United States adopted many laws to protect workers and to provide a social safety net. In addition to laws, though, companies felt a civic responsibility to provide for their workers. Lifetime employment followed by a good pension was common. Local governments kept property taxes low to protect homes. This unwritten social contract pertained for many years, but in the 1970s it started to break down. People saw ways to squeeze the fat out of companies and real estate. Leveraged buyouts led to layoffs, reduced medical benefits, and evaporating pensions. High property taxes and other housing price pressures led to increased homelessness. Without a social contract these trends will continue into the flat world. 

Friedman draws upon his analysis of the flat world to make separate recommendations to the United States, developing countries, and individual companies. Friedman's rules for companies boil down to the following: introspect and collaborate. You should understand all the parts of your business, outsource the parts that you don't really specialize in, and develop the others. This requires you to develop the ability to collaborate as a core competency.

For the United States, Friedman paints a picture of an impending perfect storm. He calls this a quiet crisis, because the storm isn't imminent, but all the factors are in place to make it inevitable if nothing changes. The factors, in brief, are the shrinking numbers of available scientific and technical workers, the fact that other countries are producing higher quality technical and scientific work, and the fact that we are not investing in education and research to a sufficient degree.

Friedman sees similarities to the situation that existed after 1957 when the Soviet Union deployed Sputnik, the first artificial Earth satellite. When President Kennedy spoke to Congress on May 25, 1961, he said:
Let it be clear that I am asking the Congress and the country to accept a firm commitment to a new course of action, a course that will last for many years and carry very heavy costs. . . This decision demands a major national commitment of scientific and technical manpower, materiel, and facilities, and the possibility of their diversion from other important activities where they are already thinly spread. It means a degree of dedication, organization, and discipline which have not always characterized our research and development efforts.
Friedman's quiet crisis demands a similarly serious and honest call to action. In the absense of other leadership, Friedman offers his own doctrine of "compassionate flatism." The essential features of this program are portable pension and health care benefits, opportunities for lifelong learning, and more demanding parents.

Friedman has a lot to say about geopolitics. He talks about the parts of the world that are not flat and explores the reasons why some countries are globalizing while others are not. He presents some strategies for developing countries, and he looks at factors that can work against globalization and even set it back. He draws on his deep knowledge of the Middle East to explain why some countries in that area of the world, aside from oil, contribute more to Osama bin Laden's supply chain than than to those of global companies.

Finally, Friedman poses his Dell theory of conflict prevention. He elaborates it to some degree, but in essence it says that no country that belongs to a major supply chain wants to risk war. There are other suppliers out there, and the if the business goes away, it won't come back soon. He cites the pressure of the Indian IT industry on India's government to persuade it to back away from a conflict with Pakistan. 

Friedman writes colorfully, and there is much to quibble with, but on the whole, this is an incredibly useful book. It contains much more information than I can summarize here. I highly recommend it to everybody. 

Postscript - August 2005

I still recommend the book to everybody, and much of the reaction I've seen to this book is positive. The negative reactions I've seen tend to focus on Friedman's writing style and his rosy view of globalization. I heard one media critic describe Friedman's style as both tortured and goofy, and I have to agree. 

The cover illustration of the softcover version is more subtle and perhaps more appropriate than the melodramatic one on the dust jacket of the hardcover, but I like the melodramatic one better. It is truer to the style of the book. Unfortunately, the publisher could not reach a suitable agreement with the artist, Ed Miracle, so they had to change.

Friedman's rosy view is a bigger problem than his writing style. To be fair, Friedman does address the dark side of globalization, but my review glosses over this part of the book, because it is not Friedman's real focus. While Friedman draws attention to some of the darker consequences of globalization, he provides no insightful analysis. His great insight is into the mechanisms of globalization. He regards these mechanisms as inexorable technological forces that we must all learn to live with and use to our advantage.

The way to address the problems of globalization is to develop local and global social contracts. This entails widespread thought, discussion, and negotiation. Friedman's book can help by providing a common understanding of the facts and mechanisms of globalization. An interesting case in point is the reaction to the Chinese government's offer on June 22, 2005 to purchase the Unocal oil company for 18.5 billion dollars. Friedman addresses the problem of the coming oil shortage and strongly advocates steps to avert it. He suggests a joint US-Chinese program, with the urgency of the Manhattan project, to find and move to alternate energy sources. This is much more likely to be effective than the easier step of giving speeches about foreign ownership of US companies. 

Monday, April 25, 2005

Thinking About History and Design

This article appears in slightly different form in the March/April 2005 issue of IEEE Micro © 2005 IEEE.

History

Many of us have artifacts of our lives stored away in closets, drawers, cellars, garages, and other places that we intend to clean out and organize some day. Many of us have heard inside stories over the years and wish that somebody would write them down. 

In an industry concerned with the future, few take time to consider the past. Myths grow up and, if unchallenged, become history. The two books I look at here focus on events that are worth thinking about.


Revolution in the Valley -- The Insanely Great Story of How the Mac Was Made by Andy Hertzfeld (O'Reilly, Sebastopol CA, 2004, 291pp, ISBN 0-596-00719-1, www.oreilly.com, $24.95)

Andy Hertzfeld was present at the birth of the Macintosh. He has cleaned out his garage and written down the stories of the time. Hertzfeld joined Apple in February 1981 and left in March 1984, when he went on a leave of absence and, for reasons he details in the book, did not come back. When he decided to record his recollections, he set up www.folklore.org, so he could compare notes with others who had been there.

I find this book fascinating. Reading about the people and the public events of the early 1980s brings back many memories for me. During the time when Hertzfeld was at Apple, the principal microprocessor vendors were Intel and Motorola. I worked for two of the others: Zilog and National Semiconductor, both of which had offices near Apple's. In January, 1984, when the famous Macintosh ad appeared during the Super Bowl, my article, "1984: The Year of the 32-Bit Microprocessor" appeared in Byte Magazine. 

I obtained my first Macintosh in 1984, and I used Macintoshes almost exclusively until the early 1990s. I remember the day Andy Hertzfeld came to a meeting of Berkeley Macintosh Users Group to demonstrate his Switcher program. That all seems so long ago, but I enjoyed reading Hertzfeld's account of the bad design decision that made a program like Switcher necessary. 

One of the many old books I have lying around is The Macintosh Basic Handbook by Thomas Blackadar and Jonathan Kamin (Sybex, 1984). This book describes a product that never saw the light of day, because of certain dealings that went on between Apple and Microsoft. I enjoyed reading Hertzfeld's account of those dealings and the repercussions inside Apple. Macintosh Basic was an excellent program for its time. I wish I could have had a chance to play with it. 

While the book is fascinating, there are parts that are depressing. For example, Hertzfeld writes about his bad performance review. His technical work was fine, but he was "too big for his britches" and continually went over his boss's head. His boss told him to stop talking to Steve Jobs. All of this reminds me of similarly sordid corporate power games that I have seen first hand. 

In Micro Review, May/June 2000, I reviewed Jef Raskin's book The Humane Interface and alluded to the widely held belief, or perhaps legend is a better word, that Raskin is "Father of the Macintosh." Hertzfeld examines that belief and concludes that it is not really accurate, though he does give Raskin a lot of credit for his contributions. Hertzfeld concludes that Steve Jobs deserves the title. It's hard to argue that point.

Hertzfeld's book, like many others, presents a mixed picture of Steve Jobs. Jobs is the brilliant visionary who sees what the product might become. He is also the quirky manager who promulgates Sayings from Chairman Jobs. A maxim like "It's better to be a pirate than join the navy" captures the Jobs style.

This industry has produced more than one quirky personality, so it's interesting to read about some of their interactions. For example, after Adam Osborne taunted some Apple employees at the 1981 West Coast Computer Faire, Jobs called Osborne and left a message with his secretary saying "Tell him the Macintosh is so good that he's probably going to buy a few for his children even though it puts his company out of business." Of course, Osborne put his own company out of business by obsoleting his cash cow, the Osborne 1, then failing to deliver its successor. And Osborne never saw the value in making a portable clone of the IBM PC.

Another interesting confrontation occurred between Jobs and Bill Gates, after Microsoft had announced Windows in November 1983 -- ten years before there was a decent working version. When Jobs accused Gates of stealing Apple's ideas, Gates replied, "We both had this rich neighbor named Xerox, and I broke into his house to steal the TV set, only to find that you had already stolen it."

The failed relationship between Steve Jobs and John Sculley is well known. Hertzfeld gives a clear picture of the situation that led to the confrontation in which Sculley removed Jobs from his executive position.

My favorite Steve Jobs story from the book concerns his attempt, seven months before the Mac was due to ship, to clone Sony's 3.5 inch floppy drive, rather than buying drives from Sony. This plan ultimately failed. Fortunately, the team anticipated this and continued to work secretly with the Sony engineers. At one point they had to hide a Sony engineer in a closet to keep Jobs from seeing him.

I have my own small Steve Jobs story. I remember the day I attended a big press event for NeXT computers. Steve Jobs promised to send me a NeXT machine to review for Micro, but he never did. He did give me a nifty Wingz World Tour jacket, though. In case you don't remember, Wingz was a spreadsheet designed for the NeXT machine. Somewhere I have a book about Wingz, though I don't believe it ever became commercially available.

Hertzfeld and Jobs are not the only players in this story. There are others I haven't mentioned, but Hertzfeld includes many anecdotes about them. This book is a collection of anecdotes, but together they give depth and color to the story of the Macintosh.


They Made America -- From the Steam Engine to the Search Engine: Two Centuries of Innovation by Harold Evans (Little Brown, New York NY, 2004, 496pp, ISBN 0-316-27766-5, www.twbookmark.com, $40.00)

According to the publisher, Harold Evans was the editor of the Sunday Times of London for fourteen years and then the Times of London before settling in 1984 in America, where he has held a number of important publishing positions. In 2002, Britain's journalists voted Evans the greatest all-time British newspaper editor. He was knighted in Queen Elizabeth's 2004 New Year honors list. He lives in New York with his wife, Tina Brown (famous in her own right), and their two children.

In this book Evans brings his impressive journalistic talent to bear on an area that many consider America's greatest strength, namely, its ability to nurture and reward innovation. He tells the stories of innovators from the country's earliest days to the present.

This massive coffee table book is extremely interesting, but I am focusing on one small part of it: the story of the late Gary Kildall and his role in the personal computer revolution. Gary Kildall's company, Digital Research, made the CP/M operating system, which almost became the operating system for the IBM PC. Many people have heard the (untrue) story of how Gary Kildall chose to go flying instead of meeting with the IBM lawyers, so they chose Microsoft as their supplier instead.

I only visited the Digital Research headquarters at 801 Lighthouse Avenue in Pacific Grove once, in the very early 1980s. Starting from Cupertino, I drove the beautiful mountain roads to Pacific Grove. I came to pick up the Olivetti M20 personal computer that Digital Research had used to develop a Z8000-based version of CP/M. I had written a book about the Z8000, and Olivetti gave me the machine in hopes that I would write a book about the M20. I never wrote the book, but I ran a floating point benchmark on the M20 for Jerry Pournelle's survey. I still have the M20.

On that visit to the Digital Research headquarters, I experienced the wonderful relaxed west coast atmosphere and idyllic setting that must have seemed so foreign to the east coast IBM lawyers when they came to call. Contrary to legend, Gary Kildall did not stand them up, but the informal setting may have given the lawyers the impression, which later proved to be true, that they could take advantage of Kildall and get away with it. The full story is long and sordid, and Evans goes through it in detail. He draws on many sources, including Gary Kildall's unpublished memoir.

Telling Kildall's side of the IBM PC story is important, but I think that a more valuable and lasting benefit of Evans' research about Gary Kildall is to highlight the large and important influence that this brilliant, thoughtful, gentle man had on our industry. From the 1960s to his untimely death in the 1990s, Kildall never stopped working to make computers available to people. 
  

Interaction Design

Thoughtful Interaction Design -- A Design Perspective on Information Technology by Jonas Löwgren & Erik Stolterman (MIT, Cambridge MA, 2005, 212pp, ISBN 0-262-12271-5, mitpress.mit.edu, $39.95)

Jonas Löwgren is Professor of Interaction Design at Malmö University, and Erik Stolterman is Professor of Informatics at Umeå University, both in Sweden. As you might expect, their book has a strong flavor of academia. It would certainly have benefited from the guidance of a good technical editor. They say at the start of their final chapter, "It is perfectly possible that this book seems diverse and incoherent so far," and I am forced to agree that it does. Nonetheless, it contains many nuggets of insight, and even some useful advice.

One of the oddest aspects of this book is its references to Robert Musil's great unfinished novel, The Man Without Qualities. Musil's ideas about thinking and creation resonate with the authors' ideas about interaction design. They even borrow his title and say that information technology deals with a material without qualities.

The key point I take from this book is that designing digital artifacts is difficult. You cannot prescribe simple rules and a definite methodology for doing this kind of design. Instead, you must inform yourself of many general considerations, then think about the situation before you. Your deep knowledge of the design process and your design ability will help you to see the larger context and contrive digital artifacts that fit that context.

This is a thin book, but not one that you can read casually. If you are in the business of interaction design, you should at least glance at this book. I don't know of another that takes the same point of view.

Friday, February 25, 2005

Too Much Information

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

Sometimes the stack of interesting books gets too tall. I can only review a few each time, but there are many more that are too good simply to pass over. This time I look briefly at a number of books I wish I could spend more time with.

Patterns and Code

The idea of a pattern language arose in the context of architecture. In their 1977 book, A Pattern Language: Towns, Buildings, Construction, Christopher Alexander and others try to abstract and name the architectural approaches that lead to satisfying spaces. 

Computer scientists took up Alexander's ideas. In October 1994, Addison-Wesley published Design Patterns -- Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (these authors are now commonly referred to as the gang of four). This book gave programmers a new vocabulary and a new way to look at the structure of their programs. 

Over the ten years since Design Patterns appeared, the book's influence has grown. Design patterns have become a part of the computer science curriculum. Yet many programmers are unsure of how to apply well known design patterns in practical situations. The gang of four did not write an easy book, and more accessible books are just beginning to appear.


Head First Design Patterns by Eric Freeman & Elisabeth Freeman (O'Reilly, Sebastopol CA, 2004, 676pp, ISBN 0-596-00712-4, www.oreilly.com, $44.95)

Eric Freeman and Elisabeth Freeman are computer scientists who led digital media and Internet efforts at the Walt Disney Company. They have produced a series of Head First books (www.wickedlysmart.com) in what they describe as "a visually rich format designed for the way your brain works." Not everyone's brain works the same way, of course. I usually find "visually rich" formats confusing and distracting, but I like this one. They have not used pictures as a substitute for words. Rather, they present material in a variety of ways. They encourage you to read the book with a pencil in hand and to write your own solutions to problems before you read their solutions. They work their way through problems -- with plenty of alternatives and instructive false starts -- until you really understand the pattern they are discussing.

The authors are aware that books about programming can be boring. They have succeeded in making this one fun. They assume that you are reading their book because you want to know:
  • The patterns that matter.
  • When to use them, and why.
  • When not to use them.
  • The object-oriented design principles underlying them.
If you read their book, I think you will achieve those objectives.


Refactoring to Patterns by Joshua Kerievsky (Addison-Wesley, Boston MA, 2004, 394pp, ISBN 0-321-21335-1, www.awprofessional.com, $49.99)

Joshua Kerievsky runs a company that specializes in extreme programming (XP). One of the core competencies of an XP practitioner is refactoring (see Micro Review Nov/Dec 1999). Martin Fowler's book Refactoring -- Improving the Design of Existing Code (Addison-Wesley, 1999) puts names on common forms of refactoring and shows how to perform them. 

The original gang of four book claims that design patterns are targets for refactoring, but Fowler does not make this connection explicit. Kierevsky does so. He also introduces the concept of a before-and-after study of a refactoring.

In studying refactorings, Kerievsky comes back to the principles underlying the design patterns and object oriented design. He writes clearly and patiently. He is an excellent teacher. He moves easily between principles and details

Books often have forewords by well known names in the field. This book carries that sales pattern to a new level. It contains forewords by Ralph Johnson and Martin Fowler and an afterward by John Brant and Don Roberts. It also has blurbs of advance praise from Kent Beck, Erich Gamma, Ward Cunningham, Sven Gorts, Bruce Eckel, Craig Larman, and others. All those people have read this book, and you haven't? What are you waiting for?


Fearless Change -- Patterns for Introducing New Ideas by Mary Lynn Manns & Linda Rising (Addison-Wesley, Boston MA, 2004, 296pp, ISBN 0-201-74157-1, www.awprofessional.com, $24.99)

This book addresses a problem that most people can understand and identify with, namely, how to put forth your ideas in a way that maximizes their chance of adoption. Mary Lynn Manns is a manaagement professor who has specialized in introducing new patterns into organizations. Linda Rising is an independent consultant who has worked on several books dealing with software design patterns.

With a nod to Christopher Alexander, the authors set out to identify and discuss 48 patterns for introducing change. These are not deep structural patterns. They are more along the lines of Ask for Help, Do Food, and Whisper in the General's Ear. The authors discuss these patterns and provide examples. The book is an easy read, but well worth the effort if you have ideas you hope to get across.


Software Endgames -- Eliminating Defects, Controlling Change, and the Countdown to On-Time Delivery by Robert Galen (Dorset House, New York NY, 2005, 328pp, ISBN 0-932633-62-5, www.dorsethouse.com, $39.95)

This book does not use the language of patterns, but it deals with an area of software development that could certainly use some good patterns. Galen defines the endgame as the time between release of the product to the testers and release to customers. This can be a harrowing time, full of traps and pitfalls. Galen calls on his 25 years experience to provide practical strategies for dealing with the situations that arise.

Galen starts his book by citing two of Jim McCarthy's maxims from Dynamics of Software Development (see Micro Review, Sept/Oct 1997): 
  • Triage ruthlessly
  • Don't shake the Jell-O 
Perhaps you could call these patterns. The first asks you to develop excellent judgment about which defects are worth fixing. The second asks you to develop a horror of changing anything that doesn't need to change. As Galen puts it, "triage and change management are central to a successful exit from the endgame."

This book is a little longer and more detailed than the typical Dorset House book, but the subject warrants it. If you get one good idea out of this book, it could save your company.


Working Effectively with Legacy Code by Michael Feathers (Prentice Hall, Upper Saddle River NJ, 2005, 456pp, ISBN 0-13-117705-2, www.phptr.com, $44.99)

If the endgame seems harrowing, it's nothing when compared to the problems of dealing with legacy code. Nobody wants to touch it, but what do you do if you have to?

Michael Feathers works with Object Mentor, where he teaches classes in many aspects of software development. This book grew out of some of those classes.

As Robert Martin writes in the foreword, dealing with legacy code is like removing rot or reversing entropy. These are difficult tasks for which there are no magic bullets. Feathers provides strategies, but you can follow them with all the best intentions and still get into big trouble. Still, if you have to go into the jungle, it's good to have a guide.

Feathers starts with a brief discussion of principles. The bulk of the book -- about 90% -- is a set of short essays focused on specific problems that you might face. He addresses nitty-gritty issues such as what to do if you find yourself making the same change in many different places.

If you don't have to deal with legacy code, consider yourself lucky. If you do, you'll probably find this book helpful.

 
Miscellany

A Semantic Web Primer by Grigoris Antoniou & Frank van Harmelen (MIT, Cambridge MA, 2004, 258pp, ISBN 0-262-01210-3, mitpress.mit.edu, $40.00)

The semantic web is a term that encompasses a variety of efforts to make information in websites more easily read by machines. Search engines like Google make the web usable, but they often return both too many and too few references. Lots of barely relevant information may come back to you, while highly relevant nuggets remain hidden.

While huge amounts of information about the semantic web are freely available online, Antoniou and Harmelen have put together a concise introduction that emphasizes the resource description framework (RDF), its associated RDF schema, and the web ontology language, called OWL -- no doubt in homage to A. A. Milne's Owl, who spelled his name WOL.

The book starts from the basics, but parts of it are fairly technical. Some aspects of knowledge management are difficult, but the authors do not shy away from them. If you want to know about the semantic web, this is a good place to start.


Mind Hacks -- Tips and Tools for Using Your Brain by Tom Stafford and Matt Webb (O'Reilly, Sebastopol CA, 2004, 394pp, ISBN 0-596-00779-5, www.oreilly.com, $24.95)

This is a very interesting book, but it's a stretch to include it in the O'Reilly Hacks series. The authors have dutifully broken down their subject matter into 100 relatively independent essays, but it might fit better into a more traditional presentation.

Tom Stafford is a psychologist. Matt Webb is an engineer. They are British, as are nearly all of the 18 people they list as contributors. They refer to the subject matter of their book as recreational neuroscience. They provide a collection of optical illusions, puzzles, and sensory-motor experiments that you can use to gain greater insight into how your brain and nervous system work. 

The authors follow a pattern for each hack. They talk about the general area. Then they tell you what to do. Finally, they tell you about the underlying mechanism. It may not have much to do with hacking, but it's fun and informative.

Monday, December 20, 2004

Hiring Knowledge Workers, Radiant Cool

This article appears in slightly different form in the November/December 2004 issue of IEEE Micro © 2004 IEEE.

More on Old Themes

The two books I look at this time have little in common, except that each provides a fresh angle on a theme that I have addressed in earlier columns. The first shares valuable information about how to hire knowledge workers. The second seeks to shed light on the way our brains support consciousness.


Hiring the Best Knowledge Workers, Techies, and Nerds by Johanna Rothman (Dorset House, New York NY, 2004, 352pp, ISBN 0-932633-59-5, www.dorsethouse.com, $43.95)

In Micro Review, Jan/Feb 2004, I reviewed How Would You Move Mount Fuji? -- Microsoft's Cult of the Puzzle. In that book, William Poundstone describes the Microsoft's hiring strategy: disqualify anyone they're not completely sure about. This strategy works for Microsoft, because the number of highly qualified job applicants vastly exceeds the number of available positions. 

Hiring managers at other companies, however, face many different situations. Johanna Rothman shows how to analyze your own situation and devise and execute a hiring strategy that is right for you. 

Johanna Rothman obtained simultaneous bachelor's degrees in English literature and computer science. Later she obtained a masters degree in systems engineering. She says on her website, 
I consult, speak, and write on the issues of managing product development -- specifically as a project management consultant, risk management consultant, and people management consultant for software or IT products. I help take the pain out of managing people and projects.
Gerald Weinberg is a highly respected consultant in the area of software project management (see Micro Review, July/August 2001). Rothman has worked with Weinberg for many years. Weinberg wrote a foreword for this book in which he says that he can think of no way to improve it. He calls it essential reading for practically everyone.

In Micro Review Sept/Oct 2002 I reviewed a collection of essays, edited by Weinberg and others, called Amplifying Your Effectiveness. In one of her essays in that collection, The Perils of Parallel Projects, Rothman quantifies the degree to which context switching reduces effectiveness. A person working on 5 projects, according to Rothman's numbers, spends 75% of the time on context switching and 5% on each of the projects.
  
In the same collection, Rothman's essay It's Just the First Slip tells you to listen to your project. The first slip is a whisper: "Your expectation is not matching my reality. Listen to me. I can tell you my reality." By the fourth slip, it's yelling "You'll pay for this!"

I've focused on Rothman's background and examples of her work, because this book so strongly reflects her way of thinking. Rothman provides an overall roadmap and many procedures and checklists. Nonetheless, the flavor of the book is generally practical and anecdotal. Her mingling of systematic and pragmatic material makes this book unlike most management books. I especially like the boxed anecdotes, each labeled "a true story," that appear throughout the book.

If a central theme underlies this book, it is that knowledge workers are not fungible. Of course, every typist or assembly line worker is also unique. Nonetheless, cookie cutter hiring techniques tend to be more successful with such workers than they are with, say, programmers or technical writers. Thus, Rothman advocates tailoring your hiring strategy and tactics to each specific situation.

One of the most appealing aspects of this book is that Rothman does not try to push you into doing things the way you "ought" to do them. In one of her true stories, for example, she describes a situation in which a "considerate, empathetic, consensus driven" group of testers hired compatible people, only to find that many of the new hires left soon after being exposed to the two main development managers, who were loud and argumentative. Her solution was to include the development managers as part of the hiring team. Rather than trying to change the behavior of the development managers -- the "right" thing to do -- she accepted them as a part of the environment. She made the ability to tolerate the development managers one of the qualifications for the job.

Another example of Rothman's flexibility has to do with multitasking. In the study noted above, Rothman shows that multitasking is inefficient. In the hiring process, however, she suggests exploring that subject with applicants to find out how well their working styles mesh with the company's. If the company believes in multitasking, regardless of how inefficient it is, then make willingness to multitask a qualification of the job.

Despite Rothman's emphasis on tailoring each hiring project to the specific situation, she does provide an end-to-end procedure for acquiring and keeping good workers. Rothman lays out the tasks and the issues, then addresses actual situations that may arise. She covers the entire subject thoroughly.

In the July/August 2003 Micro Review, I reviewed Waltzing With Bears -- Managing Risk on Software Projects by Tom DeMarco & Timothy Lister. That book made me much more sensitive to risk management issues than I once was. As a result, I'm especially happy to see that Rothman addresses risks, contingency planning, and mitigation actions in the hiring process. For example, she includes a helpful discussion of what to do if you can't find the right person for the job.

If you are a hiring manager in a high tech field, you must read this book.  


Radiant Cool -- A Novel Theory of Consciousness by Dan Lloyd (Bradford/MIT, Cambridge MA, 2003, 386pp, ISBN 0-262-62193-2, mitpress.mit.edu, $14.95)

Over the years, I have reviewed a number of books that deal with human consciousness. The most notable of these is Daniel Dennett's Consciousness Explained (Micro Review, April 1992). On the back cover of Lloyd's book, Dennett says:
I had dreamed of writing a book like this someday, and Lloyd has done it, taking us backstage and explaining how the brain plays its tricks creating the benign illusions of consciousness.
As Lloyd hints in the subtitle to the book, he has built his argument around a novel, a mystery in the film noir style. His hardboiled detective is Miranda Sharpe, a graduate student in philosophy, who investigates the disappearance of her thesis advisor. This leads her to Dan Lloyd -- the author turned protagonist -- who helps her discover a virus designed to modify all of the worlds computers. The modification replaces pointers to websites dealing with consciousness and phenomenology with pointers to exact duplicates of those sites.

The novel provides the underlying examples that help explain Lloyd's theory of consciousness. But Lloyd largely avoids the trap that most didactic novels fall into. He doesn't stop to explain everything. Instead, he divides the book into the novel, told from Miranda's point of view, and his own philosophical essay. This allows the novel to move quickly. It is, in fact, a real page turner.

One of the delightful aspects of the novel is Lloyd's frequent use of allusions and unexpected connections. This ultimately ties in with Lloyd's theory, but it also makes the book fun to read. For example, at one point a famous but shallow self-help expert engages in a consultation in which she sounds exactly like Joseph Weizenbaum's famous 1966 computer program, Eliza, the therapist. At another point, in the midst of a farcical climactic encounter, there is a knock at the door and Lloyd says "That'll be the Car Talk guys." You'll have to read the book to see why that line is so funny. And I haven't even mentioned Boris Badenov.

When it comes to Lloyd's theory, the book is no longer a page turner. Perhaps an example from popular fiction can help to explain the problem Lloyd is trying to address. In the Harry Potter books by J K Rowling, the world's preeminent wizard, Albus Dumbledore, is headmaster of Hogwarts, the wizarding school that Harry attends. Dumbledore has a storage device, called a pensieve, for his thoughts. He places his wand tip into his hair, and when he draws it out, wisps of thought adhere to it like threads. He places them into the pensieve, where he can sort them and access them.

On one occasion Dumbledore leaves Harry in his office while he goes to attend to an urgent matter. While Dumbledore is gone, Harry's curiosity leads him to investigate the pensieve. Harry is drawn into a large courtroom and sees Dumbledore sitting and watching the proceedings. Nobody seems to notice Harry's presence, so Harry concludes that he is experiencing one of Dumbledore's memories. Harry, however, does not know what is going on. He experiences the scene as a movie. Events proceed sequentially in time, but Harry embues them with his own, rather than Dumbledore's, knowledge and feelings. Soon the scene shifts to a different proceeding in the same room. Then the new sequence of events unfolds. Harry remembers the first scene as he experiences the second.

Lloyd is a phenomenologist. He does not see mind and body as separate. He recognizes the importance of time sequences, but he points out that your memories must be as you experienced them, not as an external observer would see them. And each memory carries with it all of the past memories that helped to shape it. This superposition of memories upon memories leads to a recursive model -- perhaps an allusion to Douglas Hofstadter's Gödel, Escher, Bach: An Eternal Golden Braid (Basic Books, 1977).

Lloyd goes into plenty of detail about his theory, but I won't. One interesting point about it is that he uses data from functional magnetic resonance imaging (FMRI) studies to support his conclusions. You can visit his website (www.trincoll.edu/~dlloyd/) to see some of the images that play an important role in the novel and in his theory.

Even if you're not interested in consciousness, Radiant Cool is fun to read. If you are interested in consciousness, you'll find Lloyd's ideas stimulating.

Monday, October 25, 2004

Seek and Show

This article appears in slightly different form in the September/October 2004 issue of IEEE Micro © 2004 IEEE.

Data, information, knowledge, content -- whatever you call it, there is more of it than any of us can keep track of. The volume continues to increase, and the tools for managing it don't keep pace with that growth.

Most people, however, don't even use the existing tools effectively. In The Pragmatic Programmer (Micro Review Jan/Feb 2000), Andrew Hunt and David Thomas admonish you to become an expert on using your tools. Their main example of this is a programmer's text editor, but it might apply equally well to Google, Adobe PDF, or Microsoft Excel. The books I look at this time show you how to get more out of tools that you probably already use every day. 
  

Online Search Tools

One of the main ways to find individual nuggets in the vast sea of online information is to perform effective online searches. Search sites like Google and Yahoo receive millions of requests for information every day and provide useful results with astonishing speed. Most people with online access know how to use at least one of these sites, but few people know how to exploit their full power.

The books in this section help you to use search tools more effectively. The first focuses on Google and all of its features, many of which are unrelated to searching. The second focuses exclusively on searching, but discusses a broad range of search sites.


How to Do Everything with Google by Fritz Schneider, Nancy Blachman, and Eric Fredricksen (Osborne, Emeryville CA, 2004, 382pp, ISBN 0-07-223174-2, www.osborne.com, $24.99)

Nancy Blachman is president and founder of Variable Symbols, a company that specializes in consulting and training on technical software. She has written books and training materials about Mathematica (Micro Review, August 1991 and February 1992). She holds a BS in mathematics from the University of Birmingham in the UK, an MS in operations research from UC Berkeley, and an MS in computer science from Stanford, where she has taught for eight years. She is the creator of the Google Guide website (www.googleguide.com).

For this book, Blachman teams up with two Google software engineers to produce a comprehensive guide to using Google. Unlike Blachman's Google Guide website, this book does not go into the underlying technical details. It focuses almost completely on how to use the various features of Google. It does this with a large number of step-by-step procedures, examples, and screen shots.

Google is mainly a search tool, but it is much more besides. Everybody, including me, who looks at this book says something like "I had no idea Google could do that!" about some feature Blachman describes. I also found explanations of many features that I had noticed but never looked into. I'm much more likely to use those features now that I've read about them.

If you want to know everything about Google, read this book.


Google and Other Search Engines by Diane Poremsky (Peachpit, Berkeley CA, 2004, 376 pp, ISBN 0-321-24614-4, www.peachpit.com, $19.99)

This is another book in Peachpit's marvelous Visual Quickstart Guide series. Previous editions were written by Alfred and Emily Glossbrenner, but Diane Poremsky (www.poremsky.com), an expert on Microsoft software, has taken over. Peachpit provides no information about the reason for the change.

The cover of the book puts the word Google into much larger type than the rest of the title. This probably reflects the current huge interest in Google and its public offering of stock. It also reflects the fact that Google has indexed far more pages than any other search tool. Nonetheless, the book is not principally about Google. Its message is to use the right search tool for the job at hand, and that may not be Google. Poremsky provides detailed information about Alta Vista, MSN, Yahoo, Ask Jeeves, Excite, Lycos, and even AOL. Moreover, she explains the differences between these search tools, so you can choose the right one for the search at hand.

If you want to know how to perform online searches effectively, read this book.


PDF and Acrobat

Another widespread approach to handling information is the Adobe portable document format (PDF) and the Adobe Acrobat tools for managing documents in PDF format. All publishing applications and all Microsoft Office programs can generate PDF documents. Almost everyone who goes online encounters PDF documents and can view them within a browser.

Beyond what everyone knows, however, are enormously powerful and varied publishing, viewing, and searching capabilities. Most people who use PDF every day know very little about these capabilities. The books in this section seek to correct that situation. The first focuses on Adobe Acrobat. The second focuses on PDF.


Carl Young's Adobe Acrobat 6 -- Getting Professional Results from Your PDFs by Carl Young  (Osborne, Emeryville CA, 2004, 412pp, ISBN 0-07-223138-6, www.osborne.com, $34.99)

Carl Young is an Adobe certified expert in Acrobat and FrameMaker, as well as a certified technical trainer. Adobe selected him to run the first public Acrobat 6 training sessions at their worldwide launch of Acrobat 6. As eminent as Carl Young is, however, I heard about this book from someone even more eminent.

Shlomo Perets has specialized in online documentation applications since 1993. He trains technical communicators to get the most out of FrameMaker and Acrobat and the combination of these tools. Perets started his company, MicroType (www.microtype.com) in 1989 to train and consult about electronic publishing tools and techniques. Based in Israel, Perets often comes to the United States on business. In June 2004, I saw him speak at the Berkeley chapter of the Society for Technical Communication (STC), where he presented a good deal of useful information about using Adobe Acrobat. Perets served as technical editor for Young's book, so perhaps his recommendation is not entirely unbiased. Nonetheless, Perets recommends Young's book as the best book to read about Acrobat 6.

Acrobat 6 has many powerful features, but its maddening user interface and its arcane options and settings make it opaque to most users. Futhermore, it is easy to produce a PDF that has mysterious flaws. For example, you may make a beautiful PDF document, but when someone else views it, it looks bizarre, because all the fonts have changed. Or the PDF may look right on screen, but the graphics look terrible when you print the document.

These problems and many more arise because users do not understand the consequences of their choices. Young explains how to make choices that lead to PDFs that behave the way you expect them to.

Once you understand the basics, you can try adding movies or sound. You can make your documents accessible to people with disabilities. You can investigate automation, reviewing tools, forms, digital signatures, differing access permissions, and many other advanced features.

To understand everything that Acrobat can do to make publishing, reading, and reviewing PDF documents go smoothly, read this book.


PDF Hacks -- 100 Industrial Strength Tips & Tools by Sid Steward (O'Reilly, Sebastopol CA, 2004, 296pp, ISBN 0-596-00655-1, www.oreilly.com, $24.95)

The O'Reilly Hacks series focuses on enabling clever programmers to customize software applications in ways the inventors of those applications never envisioned, or at least never publicized. O'Reilly has tried to reclaim the positive connotations that the term hacker had before it came to mean computer criminal. Hacks are clever, quick-and-dirty solutions to small problems. 

According to the book's publicity, Sid Steward has analyzed, extended, secured, cracked, authored, converted, embellished and consumed PDF over the last 5 years. He maintained and created custom software. He has pushed the envelope of Acrobat API programming. He has developed a toolset that is the core of a PDF conversion service bureau. He also performs PDF finishing, which includes optimizing PDF file size and adding navigation features.

This book is not about Adobe Acrobat, though Steward does provide some tools and tricks that apply to Acrobat. PDF adheres to a published specification, so anyone can process it. The Macintosh operating system has tools to process PDF. So does Ghostscript (www.cs.wisc.edu/~ghost).

I use Acrobat all the time, so my favorite hacks apply to Acrobat. For example, Steward shows how to shorten the time Acrobat takes to start, by disabling plugins that you are not likely to use. He also shows how to let Acrobat 6 use the important Acrobat 5 TAPS plugin, which Adobe does not provide with Acrobat 6. TAPS allows you to copy tables and other formatted text from PDF documents and paste them into other documents. This bit of information alone is worth the price of the book.

If you use PDF and like to tinker with your tools, this book is for you.

Wednesday, August 25, 2004

Attacking Complexity

This article appears in slightly different form in the July/August 2004 issue of IEEE Micro © 2004 IEEE.

For as long as I have been in the computer industry, increasing complexity has been a constant problem. Every advance in computer speed and storage capacity has been met by increased requirements and expectations for the software that runs on those computers. Moore's Law continues to bail us out, but it does not encourage efficiency. 

Efficiency is not a problem if we simply trade inexpensive hardware for expensive development time. Bloated and inefficient code and cumbersome development methodologies cause few problems for products that provide basic functionality with minimal demands on computing resources. Inefficiency becomes a problem at the cutting edge, when we try to squeeze out that last bit of added functionality to gain commercial advantage over our competitors.

This time I look at three books. One book shows how to apply the techniques of agile software development to projects of large size and scope. Another explains the ins and outs of an operating system that might be a little simpler than the one you're currently using. The third provides principles and techniques for simplifying Java application programs.


Agile Software Development in the Large -- Diving into the Deep by Jutta Eckstein (Dorset, NY, 2004, 246pp, ISBN 0-932633-57-9, www.dorsethouse.com, $39.95)

Since reviewing Extreme Programming Explained (Micro Review, Nov-Dec 1999), I have often written about agile software development techniques. Extreme Programming is the most famous of these techniques. Some others are Scrum, Crystal Methodologies, Feature Driven Development, and Adaptive Software Development. The proponents of these and other techniques have banded together into the Agile Alliance (www.agilealliance.org). The alliance has agreed upon a set of choices and a set of principles, known collectively as the Agile Manifesto.

Their basic choices are to value:
  • Individuals and interactions over processes and tools.
  • Working software over comprehensive documentation. 
  • Customer collaboration over contract negotiation. 
  • Responding to change over following a plan.
You can find the agile principles that flow from these choices expressed in twelve short paragraphs on the Agile Alliance website.

Many firms have tried to adopt or adapt agile techniques. Many of these attempts simply entail calling their existing processes agile or adopting a few superficial aspects of Extreme Programming. Other firms have seized on the second value choice as an excuse to eliminate documentation or to stop commenting code.

Such superficial or misguided attempts to use agile techniques have little practical benefit. Other attempts, however, have been successful, but almost always in projects of relatively small scale. The techniques described in most books on agile development do not apply easily to large projects. For example, using Extreme Programming on a large project might entail placing 100 people in a single room. This is likely to be impractical for most projects.

Jutta Eckstein is a member of the board of Agile Alliance and a software development consultant. In this book she shows  that there are practical ways to adapt agile development techniques to projects of large scale. As you might expect, these adaptations rely heavily on good project communication and on finding ways to assign tasks to small subteams.

Eckstein proceeds methodically through the aspects of agile processes that work differently in large projects. She brings the benefit of her real world experience to these questions. If you work on large projects, you'll find it well worth your time to read this short book.


How Linux Works -- What Every Superuser Should Know by Brian Ward (No Starch, San Francisco, CA, 2004, 366pp, ISBN 1-59327-035-6, www.nostarch.com, $37.95)

Unix in its many forms has been around for about thirty-five years. When it was half that age , I reviewed Maurice Bach's The Design of the Unix Operating System (Micro Review, Sept/Oct 1987). In the same column I reviewed Douglas Comer's book Operating Systems Design, The XINU Approach. XINU is a recursive acronym that stands for "Xinu is not Unix." It is also Unix spelled backwards. 

Xinu is one of many attempts to simplify and reinvent Unix, wholly or in part. Linux is the most successful of these attempts. It began in late 1991 as the work of Linus Torvald, and has grown into a poster child for open source development. Linux is the base operating system for many production web servers.

Brian Ward has been working with Linux since 1993. In this book he tries to give you an understanding of the inner workings of Linux. Rather than providing procedures for common Linux tasks, Ward provides conceptual information. He hopes that after you read his book, you can read and understand the documentation of any system program.

One interesting part of the book is Ward's explanation of the boot process. If you've ever watched a Unix system start up, you know that screen after screen of information goes scrolling by. In about ten pages, Ward explains what all of that information is meant to tell you.

Because Linux is frequently the base operating system for web servers, Linux administrators must understand networking and firewalls. Ward explains how these features work.

Operating systems must often support software developed by third parties. For example, in Windows, the .NET framework provides a way to encapsulate applications and avoid the DLL hell of earlier Windows systems. Shared libraries provide support for third party software in Linux. Ward shows how to manage -- and avoid the pitfalls of -- shared libraries.

One of the most powerful features of any Unix system is the programmable command shell. Many books explain how to use different shells. Ward gives a clear account of the basics of using the Bourne shell.

Ward addresses all of the main tasks that Linux administrators must face, but this book is not for current Linux administrators. They already know all of this and more. But if you have little experience with Unix and you want to set up a Linux system -- possibly on an old computer that can no longer run the latest Windows version -- this book is essential reading. You'll probably find the chapter on hardware especially useful.


Better, Faster, Lighter Java by Bruce A Tate & Justin Gehtland (O'Reilly, Sebastopol, CA, 2004, 262pp, ISBN 0-596-00676-4, www.oreilly.com, $34.95)

Tate and Gehtland are well known authors of books on software development. In this book they attack the current state of Java development, which they characterize as follows:
Development is getting so cumbersome and complex that it's threatening to collapse under its own weight. Typical applications use too many design patterns, too much XML, and too many Enterprise JavaBeans.
This is not,as you might have expected from the title, a book about improving your personal coding habits. Its main approach to producing better, faster, lighter Java applications may require you to change things that you do not control. Specifically, the authors ask you to consider abandoning heavyweight frameworks like WebLogic, Jboss, and WebSphere in favor of lightweight open source architectures like Hibernate and Spring. If such decisions are outside your control, you probably don't need to read this book. But even if you can't follow the book's advice, you may still find it enlightening.

The authors begin by painting a bleak picture of creeping bloat, though their principal target seems to be container managed Enterprise JavaBeans. They then enunciate basic principles that few are likely to disagree with:
  • Keep It Simple.
  • Do One Thing, and Do It Well.
  • Strive for Transparency.
  • Allow for Extension.
  • You Are What You Eat.
These are understandable enough, except for the last. In that one, the authors appear to mean that you shouldn't swallow every bit of conventional wisdom and vendor hype that comes your way. Instead they want you to be a heretic -- challenge a few things that "everybody knows."

From this point, the plan of the book is clear: discuss the selection of underlying technology in the light of each of the basic principles. Then introduce Hibernate and Spring. Finally, develop actual applications.

The authors have a lot to say, and they are fighting a good fight. It won't take you a long time to read this book, and you might learn something important.

Friday, June 25, 2004

Dvorak Predicted

This article appears in slightly different form in the May/June 2004 issue of IEEE Micro © 2004 IEEE.

This time I look at a ten year old book of predictions about the computer industry. Most of the predictions are wrong to some degree, yet the book provides a valuable look at a pivotal time in our industry.

Dvorak Predicts -- An Insider's Look at the Computer Industry by John C. Dvorak (Osborne McGraw Hill, Berkeley CA, 1994, 184pp, ISBN 0-07-881981-4, $16.95)

I met John Dvorak in the early 1980s. I don't think we've talked since then, but I've caught many of his radio and TV programs. I think we met at a reception put on by Media Alliance. In a room full of writers enjoying the late afternoon view of the San Francisco Bay and chatting, over drinks, about all manner of subjects, we were the only two who wrote about computers. It's amazing to compare that image with the jostling throngs of computer media representatives queued up to enter the hall for a Bill Gates or Steve Jobs keynote today.

In 1994, when this book appeared, Dvorak had been in the computer business as an entrepreneur, and then as a writer, for nearly twenty years. He had immersed himself in the computer industry. His columns dealt with nuts and bolts issues about computers, peripherals, storage media, firmware, operating systems, development tools, word processors, spreadsheets, and anything else you might think of. 

Dvorak's book is out of print now, but I found copies on the Internet for 80 cents and up. After all, who wants a ten year old book of predictions about the computer industry? The title is deceptive, though. Dvorak makes many predictions, but he also brings in a good deal of history and analysis to support them. Reading this book provides a fascinating look back at an important time in the history of our industry.

In 1994 practically nobody had heard of browsers and the web. The closest approximation to a website was a bulletin board system (BBS). The Java language had not yet sprung into prominence, and the closest approximation to "write once, run anywhere" was software or hardware emulation of the Intel 486 microprocessor. Online pornography was in its infancy, and junk email was a minor nuisance. Broadband to the home was a thing of the future, though a few people were using ISDN connections. Hardly anybody remained connected all the time. Most people dialed up their service providers when they wanted their mail. Even though Robert Morris's worm in 1988 had spawned the virus epidemic, malicious attachments were few and easily avoided. Rapidly spreading viruses and continually updated virus protection software were rare.

Dvorak does not mention Java, browsers, the World Wide Web, or spam. It's unfair to expect complete prescience, though. His analysis and some of his predictions capture the spirit, if not the details, of many developments that he did not complely foresee. He predicts a few things that have definitely not come to pass, but by and large, his predictions are good. In fact, the worst thing about the book is the many correct predictions he makes about things that do not matter at all ten years later. I think this points up the most problematic point about reading predictions -- it's rarely clear how to act to take advantage of them.

Though Dvorak didn't see the web coming, he saw something similar in his analysis of other people's predictions of 500 interactive TV channels. He said
It won't be 500 channels. It will be 50,000 or more channels all individually pumped out of homes and businesses in much the same way as computer bulletin  boards work today.

 . . . We can assume that people might just put a camera in their dining room, allowing us to watch a  family eat and argue.
He imagined that this might be implemented using BBS technology, with people dialing up over ISDN. From this he extrapolated to an amazingly prescient prediction.

Dvorak predicted that "Little brother will be watching, and little brother will be everywhere." From videotape of the Rodney King beating in 1992, to Amy Goodman's trickle-up journalism, to recent photographs of the coffins of war dead, we see how Big Brother cannot control the content of the news.

In 1994, Dvorak grudgingly conceded that we would have to take windowing seriously and that command line interfaces would die out. He felt that Unix, despite a nifty graphical user interface (motif), would nonetheless remain a niche operating system. He did not foresee Linux and the whole open source movement, though he did consider the possibility that the Public Windows Interface, as proposed by Sun Microsystems, might help keep Microsoft from building obstacles to competing products into its operating systems ("DOS isn't done until Lotus won't run").

Dvorak felt that Microsoft would try to achieve a monopoly in the industry. In 1994 it was not obvious that this could happen. IBM was still in the picture with OS/2. Apple was continuing to grow and was looking forward to a future based on the PowerPC architecture. WordPerfect was a popular competitor to Microsoft Word. Windows for Workgroups and its successors had not yet shown that they could push Novell from its network dominance. In fact, Dvorak believed that if Novell gave away DR DOS 6.0 to the entire industry, it could seriously undercut Microsoft. Novell did not do this, of course, so there is no way to know how effective that action would have been.

Dvorak also predicted that Microsoft would open a chain of software stores, so it could control both the shelf space and the sales pitch. This did not happen, of course, but that may be largely because Microsoft achieved those goals through other means. In the 1960s, IBM was amazingly successful at selling to data processing (DP) managers, which gave IBM market dominance at that time. IBM was a safe buy, so why risk anything else? Today's equivalent of the DP manager is the information technology (IT) manager, and Microsoft can reach them with a similar argument about networked Windows machines. On this basis Dvorak concluded that Macintosh sales to business would fall off drastically.

Dvorak's predictions of Microsoft's future were not all rosy. He said "Microsoft's domination will come to an abrupt end." He didn't say when, so he could still be right, but ten years later, there's no sign that this will happen. Dvorak's reasoning is interesting, though. He saw Microsoft as a company of youngsters willing to work 70 hour weeks and take gratuitous abuse from the management, because the rising stock price kept turning them into millionaires. He reasoned that the stock price could not keep going up without a few dips and that nobody would put up with Microsoft working conditions without that incentive. On top of that he says
Lotus has reemerged as a leader in the spreadsheet arena and pretty much owns the groupware category. WordPerfect is spending all its extra money marketing its word processor. . . . The best development tool are now produced by Borland and others. . . . NT does  not look like it will be much of a success either as  a network server operating system or as a standalone  operating system.
Dvorak also believed that hiring "old pros" would hurt Microsoft by eroding the general naivete and diverting energy into corporate empire building games. 

Dvorak devotes a large portion of his book to the microprocessor wars. He had great hopes for the PowerPC architecture. I was the guest editor for the Micro issue on PowerPC (Sept/Oct 1994), so I remember quite well the enthusiasm that everyone felt at the time. That architecture has been a success, and Apple has successfully moved to it. Dvorak believed that IBM had a secret strategy to include a clone of the Intel 486 chip as part of a PowerPC chip. I don't recall whether IBM actually did this. In any event, PowerPC has done little to affect Intel's dominance.

It is a cliché of futurism that people tend to overestimate the short term impact and undersestimate the long term impact of new technologies. In 1994 Dvorak said that voice recognition would be the killer app of the 1990s and would take off explosively in the next two years. This prediction is probably correct for the long run, but it hasn't happened as fast as Dvorak predicted. Similarly, Dvorak predicted that the Unicode character encoding scheme would lead to the death of ASCII by 1995. ASCII is alive and well today, though Unicode has become increasingly important.

Dvorak predicted that virtual reality would be a dud and that the TV and the computer will not merge. Dvorak saw that the marketing hype of the time overestimated the short term impact of these technologies. I suspect that Dvorak underestimated their long term impact.

I could go on and on. This short book contains a great deal of material. If you are at all interested in how we got where we are today, you should find a copy of this book and read it.