Saturday, December 15, 2007

Young Investigator, Agile Restrospectives, Oracle Essentials

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

Advice for a Young Investigator by Santiago Ramón y Cajal, translated by Neely Swanson and Larry W. Swanson (MIT, Cambridge MA, 1999, 172pp, ISBN 0-262-68150-1,, $19.95)

Santiago Ramón y Cajal (1852 - 1934) shared the Nobel Prize in Physiology or Medicine in 1906, just over a century ago. He established the structure of the brain and nervous system as networks of neurons connected by synapses.

In 1897, on the occasion of his induction into a Spanish scientific academy, Ramón y Cajal gave a speech in which he advised young investigators to focus their work in ways that he felt would help them avoid many of the mistakes that he made as he began his own scientific career twenty-five years earlier. The speech eventually evolved into this book, with editions in 1898, 1912, 1916, and 1923.

Ramón y Cajal lived in a time when Spain was not in the mainstream of scientific work. Much of his advice concerns overcoming this obstacle -- learning languages, studying abroad, and so forth. His advice in this area is fascinating to look back on in the light of the shifts of power and influence that occurred in the twentieth century. He pronounced German the most important language for scientists, followed by English and French. He considered Italian to be important too, but so much like Spanish that any Spaniard can read it without difficulty.

The most thoroughly obsolete part of this book concerns how a young investigator should choose and relate to his wife. One of his milder precepts in this area is as follows:
As a general rule, we advise the man inclined toward science to seek in the one whom his heart has chosen a compatible psychological profile rather than beauty and wealth. In other words, he should seek feelings, tastes, and tendencies that are to a certain extent complementary to his own. He will not simply choose a woman, but a woman who belongs to him, whose best dowry will be a sensitive compliance with his wishes and a warm and full-hearted acceptance of her husband's view of life.
Some of Ramón y Cajal's advice is as apt today as it was a century ago. Some of the examples he gives are tied to old technologies, but the principles are still correct. For example, he warns young investigators against undue admiration of authority. Ultimately, they must find their own way and dethrone established wisdom, just as Galileo refuted Aristotle's view of gravity and Copernicus displaced Ptolemy's view of the universe.

Ramón y Cajal also warns agains the fallacy that everything important has been discovered. The twentieth century is filled with counterexamples to that nonsense.

In his recitation of desirable intellectual qualities, Ramón y Cajal concurs with the twenty-first century view in some areas, but perhaps not entirely in others. For example, he advocates independent judgment and concentration. Few today would argue with those qualities. On the other hand, he lists passion for reputation and patriotism among his desirable intellectual qualities. Here his arguments are not as persuasive.

Ramón y Cajal adheres to the "hard work" theory. He feels that most young investigators can do good work, but that lack of self-confidence leads many to fail. 

In Devices of the Soul (Micro Review, Jul/Aug 2007) Steve Talbott says that self forgetfulness is the reigning temptation of the technological era. He complains that we do not observe aspects of the world around us that fail to fit into our preconceived models. Ramón y Cajal would agree. He advocates specialization in the sense of mastery. His ideal investigator has the same relationship to his craft as the Waorani hunter has to his prey.

This a fascinating book. It gives valuable insights into the changes of the last hundred years, and it contains nuggets of advice that are as valuable today as when Ramón y Cajal wrote them. I commend MIT Press for making it available, and I recommend it to any student of science.

Agile Retrospectives: Making Good Teams Great by Esther Derby and Diana Larsen (Pragmatic Bookshelf, Raleigh NC, 2006, 192pp, ISBN 0-9776166-4-9,, $29.95)

In the May/June 2001 Micro Review, I reviewed Project Retrospectives by Norm Kerth. That book proposes a dramatic improvement over the perfunctory "post-mortems" that software teams sometimes engage in when they have finished a project. Derby and Larsen have adapted Kerth's retrospectives to work with iterative and incremental development methods. Their retrospectives cover a short stretch of development -- perhaps a few weeks -- and drive changes to goals and processes for the next short stretch.

The project retrospectives that Kerth describes can entail a week spent at a resort. Derby and Larsen describe a process that proceeds on a much tighter schedule -- perhaps an hour or so. Short meetings, like short letters, are hard to achieve. They require focus and discipline. This book defines a structure and timeline for such meetings. By concrete examples, it shows why each element of the structure is important and how to meet the goals of that element within the allotted time.

As regular readers of this column know, Esther Derby is one of the people who work with Gerald Weinberg to produce the annual Amplify Your Effectiveness conferences. These conferences emphasize the human side of software development, and this book does the same. It shows how to identify and solve many team interaction problems that occur again and again in development projects.

If you engage in any sort of agile development, you should read this extremely concrete and practical handbook. 

Oracle Essentials, Fourth Edition by Rick Greenwald, Robert Stackowiak, and Jonathan Stern (O'Reilly, Sebastopol CA, 2008, 406pp, ISBN 0-596-51454-9,, $39.99)
Jonathan Stern, the author most responsible for the original edition's structure and clarity, died in March, 2007. The remaining authors dedicate this edition to him.

A few years ago I reviewed the second edition of this book (Micro Review, July/August 2001). As I noted then, I love books like this. I wish there were more of them. I spent over a year working with the Oracle server technology publications group and wrote some of the documentation that the earlier edition of this book is based on. The few hours that I spent reading this book gave me a much better sense of all the pieces and how they fit together than I ever achieved reading or writing Oracle documentation.

This edition does not differ greatly from earlier editions. It covers the new features of Oracle 11g: caching of query results, automatic memory management, real application testing (analyzing data from production runs), total recall (a data archive that allows querying "as of" a specified time), active data guard (simultaneous query and update of a standby database), and many other changes and additions. The authors integrated the new features into the book at the appropriate places, making the book look as if it were written from scratch for this edition.

The economics of the computer book business seem to favor books that cover a wide variety of features in a cursory way. Many books provide excellent task-oriented instructions for end users or even administrators, but give them little insight into the underlying structure and concepts.

The authors of Oracle Essentials follow a different path. They present a concise, coherent picture of the entire Oracle system. This picture does not cover every feature of Oracle, nor does it cover any feature in complete depth. The picture is broad enough and deep enough to give you a good understanding of the main structures, processes, and issues involved in planning for and deploying Oracle, developing and optimizing schemas and applications for it, and administering its use.

One of the hardest tasks in working with Oracle is understanding the kind of big picture that this book presents. Thousands of highly skilled software developers have worked on the system over a period of more than twenty years. Inevitably, layer upon layer of enhancements have distorted and obscured the clarity of the original design. Furthermore, the system is so large and complex that people who start to work with it usually join a group that specializes in one aspect of it. Even the oldtimers in the group may not know much about the rest of the system. And because they are comfortable in their corner of the product, they may not even consider it important to orient newcomers to the whole system.

The difficulty with this situation surfaces when different groups of specialists must work together to solve a common problem. Activities ranging from developing new versions of the product to designing new applications suffer from the inability of groups of specialists to understand one another's problems and issues. For that reason, I think this book will do as much good within the walls of Oracle Corporation as it will outside.

If you work with any aspect of Oracle, or if you'd just like to understand the ins and outs of an important complex technology, this book is a must. 

Sunday, August 26, 2007

Devices of the Soul

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

Thinking About Technology

Devices of the Soul by Steve Talbott (O'Reilly, Sebastopol CA, 2007, 298pp, ISBN 0-596-52680-6,, $22.99)

In this book, Steve Talbott distills and sharpens a message he has been working on for a long time. Here is an excerpt from my review of Talbott's The Future Does Not Compute (Micro Review, Nov/Dec 1995):
While many pundits sing the praises of the coming global village, Talbott wants us to examine their unspoken assumptions. Many seem to be saying that simple technological tools can guarantee freedom and privacy, make learning and personal growth easy, and build strong democratic communities.

Talbott sees this as wishful thinking -- magical, automatic solutions to complex human problems. He sees the effects of the new technology as an extension of a trend that runs through most of the twentieth century. We spend more and more of our lives "running on automatic."
Since 1995, Talbott has edited an online newsletter at Most of the material in his new book appeared first in that newsletter. Perhaps for that reason, this book has many interwoven themes that all reinforce the basic message: Self forgetfulness is the reigning temptation of the technological era. 

I often watch the CNBC program Mad Money with former hedge fund manager Jim Cramer. The other day Cramer, who likes to make classical allusions, was talking about the many voices trying to frighten people into the anti-pattern: buy high, sell low. He stuck his fingers in his ears and said, "Don't listen to them, like Ulysses." My fourteen year old daughter and I have been reading the Odyssey, so I told her this. "But that's not what Odysseus did," she replied. "He made his men lash him to the mast so he could hear the Sirens' song." I'm not sure what implications this story has for investing, but it is a key element of a central metaphor of Talbott's book. 

The Sirens sang that they knew all and would tell all to those who approached. Those who listened could not resist approaching, so they perished on the Sirens' rocks. Odysseus saw that the Sirens presented a grave danger. His self-awareness allowed him to perceive the risk and to conceive the clever device that saved him.

Talbott sees the Odyssey as a story of the dawn of technology. Odysseus's growing self-awareness, apparently not so common back then, allowed him to harbor secrets and concoct the many schemes for which he was famous. He conceived and executed the plan of the Trojan Horse, which brought victory to the Greeks in the Trojan War. He devised a complex scheme to free himself and his men from the cave of the cyclops Polyphemus. 

Talbott equates the Sirens' false promise to tell all with today's promises of salvation through digital technology. "You are powerless to affect the technologically mediated future," sing today's Sirens. "Come dull the pain by partaking of its wonders." Talbott believes that we are not analyzing and mitigating against the risks of technology. We are letting the repeated assurances of progress through technology lull us into self-forgetfulness.

Odysseus's technology consisted mainly of mental devices. The golden age that followed Homer's time gave rise to great advances in art, drama, philosophy, mathematics, and science. But the Greeks, except for Archimedes, did little in the area of engineering. By contrast, we are surrounded by gadgets, but we forget that they are human inventions, carrying the aims and assumptions of their creators. This is self-forgetfulness, because we can forget our own aims, assumptions, and skills as we conform our behavior, and even our thinking, to the gadget's requirements.

Talbott contrasts Odysseus, the self-aware contriver, with the cyclops Polyphemus who lived in a simple natural state. While Odysseus moved away from this natural state slowly, today we are almost completely out of touch with nature. We have learned to ignore whatever our mechanisms fail to take account of, thus making us descend to the level of the machines. Holistic medicine, for example, seeks balance, not absence of pathogens. But we do not teach doctors to detect balance, because it is not part of the western model of disease and treatment. The doctors who follow this model cannot see what is evident to the practitioners of, say, traditional Chinese medicine.

The Harvard ethnobotanist Richard Evans Schultes was famous for his qualitative knowledge. He could resolve questions in the field, simply by holding a blossom up to the light. Yet even Schultes was amazed at the ability of the forest residents to distinguish ten different kinds of yagé plants by sight at great distances, even though the distinguishing criteria made no sense in the standard botanical scheme.

Talbott views the history of technology as the history of walking away from ourselves. He describes the enormous skill of Tomo, a Waorani (Auca) hunter who could "knock a hummingbird out of the air and hit a monkey in the canopy 120 feet above the forest floor." In learning to use the blowpipe, Tomo had to develop stealth, physical skills, patience, focused attention, and, most important, a qualitative understanding of the animals he hunted and the forest they lived in. He knew, without thinking about it consciously, how it felt to be the animals he hunted.

Tomo, however, preferred a shotgun -- a vastly inferior weapon for his purposes -- because of the intrinsic attraction of the object itself. This is the same sort of intrinsic attraction I have always felt in hardware stores and, more recently, in electronics stores. In Tomo's case, the shotgun might lead him to specialize in shooting large animals at close range -- a task that requires some, but far from all of his skills. It is not hard to imagine his losing the unused skills over time.

Walking away from old skills and developing new ones is not the problem. This happens whenever people grow and progress. The problem Talbott sees is the direction and emphasis of the change. We often let labor-saving technology do the parts of the job that are easy to automate and simply drop the parts that depend on skills that our machines don't have.

Another central metaphor of Talbott's book is the conversation. Talbott calls for a respectful conversation between humans and nature, and a similar conversation between the technology around us and our aware selves. Talbott's model for conversation is human relations. We grant the autonomy and worth of others, and at the same time we act in ways that affect them. The approach we take in human relations models the approach Talbott suggests in the areas of ecology and technology.

A conversation without preconceptions or artificial boundaries necessitates the risk of offense and misunderstanding. We have limited knowledge of the effects of, say, a new industrial process, an experimental gardening technique, or even a new type of bird feeder. This ignorance mandates that we proceed cautiously, but absolute caution makes progress impossible. The important thing is to listen carefully and openly to the answer. This is essentially the approach Bill Joy advocates in his April 2000 Wired Magazine article, The Future Does Not Need Us. There he warns about genetics, nanotechnology, and robotics (GNR) and the potential catastrophes they might precipitate (see Micro Review, July/August 2000).

Bill Joy often appears paired with Ray Kurzweil, author of The Singularity is Near: When Humans Transcend Biology (see Micro Review January/February 2006). Kurzweil and Joy agree on the dangers, but they disagree on how to deal with them. Joy's proposal is to restrict GNR work until we have mechanisms in place to prevent bad consequences. Kurzweil's approach is to accelerate GNR work in order to avert catastrophes and solve humanity's problems. Talbott's approach is much closer to Joy's than to Kurzweil's.

In the conversation between our aware selves and our technology, Talbott raises the question of how our tools should act. Should they act like friends, praising our efforts and offering us companionship? Should they be as unobtrusive as possible, so we can concentrate on the tasks they are helping us with? We can rule out the first one pretty quickly. Hardly anyone likes the Microsoft paper clip. But Talbott regards the second as unhealthy too. Because it is so important to remain conscious of the assumptions and unseen factors that affect us, it's a good idea not to forget about our tools. An invisible tool still embodies the ideals and assumptions of its creator.

Talbott devotes a portion of his book to addressing the views of researchers who, like Kurzweil, paint pictures of a future when computers will think and act like people. He ridicules Rodney Brooks for saying things like "We, all of us, over-anthropomorphize human beings, who are after all mere machines." He convincingly brands Brooks as a bully who argues from ignorance.

He also heaps scorn on certain efforts coming from the prestigious and well funded MIT Media Lab. Computers, in Talbott's view, will think and act like people only if people abandon their humanity and reduce themselves to the level of automatons. The fact that people can imagine being replaced by computers shows how far along that path the Sirens of technology have led them. 

To emphasize the aspects of humanity that computers are unlikely to achieve, Talbott tells the stories of people whose handicaps did little to impair their humanity. I don't go into those astonishing stories in this review, but I hope you will read about them when you buy the book.

Education is another main theme of the book. The essence of education,according to Talbott, is helping children develop their own connections to the world. The Tracker by Tom Brown (Prentice Hall, 1978) tells the story of how an Apache elder, Stalking Wolf, taught Brown about the wilderness. When asked a question, Stalking Wolf would not reply with the requested information. Instead he would say "go ask the mice," "feed the birds," or something of the sort to send his student off on an adventure. 

Our culture, however, works against understanding the world this way. Talbott gives the example of Monty Roberts, who learned to relate to horses in a way that allowed him to persuade untamed horses to do what he wanted, quickly and without force. Roberts, however, was rediscovering what John Solomon Rarey had already published in the mid 1850s. Rarey's work, though sensational at the time, was forgotten, because it did not fit the dominant paradigm.

As Talbott points out, every educator publicly deplores the fact-shoveling model of education, but our educational system moves further and further in that direction. Jane Healy's Failure to Connect: How Computers Affect Our Children's Minds--for Better and Worse (Simon and Schuster, 1998) analyzes the use of computers in elementary school classrooms. Healy sees few benefits, especially for younger children, and many bad consequences. Nonetheless, we continue to computerize classrooms at the expense of programs with greater educational benefit (for example, art, music, physical education, reduced class sizes).

In a chapter called Educational Provocations, Talbott makes blunt assertions about elementary education that he hopes will stimulate discussion. The gist of this eclectic recital is that the push for computers in elementary schools comes from giant computer companies and the parents that they have frightened or enthralled. The justifications are at best unproven and are probably untrue. The change in emphasis that computers produce goes against what educators know. Students need significance, not data. They need individual attention from caring adult mentors, not more sedentary time in front of screens. Finally, nobody has even considered the potential negative effects of the technology itself on developing children. Talbott even questions whether exposing children to the Internet at all is a good idea. Children need safe places in which to develop. The Internet is not a place, and there is no effective way to make it safe.

The fact-shoveling model of education has also brought great harm to higher education. If education is just data transfer, nobody needs to pay $40,000.00 per year to a university. The computer can transfer data much more efficiently than four years of college can. The aspects of education that residence at a four year college is designed to foster are no longer highly valued in the business world. In many jobs, an obedient worker who goes to the help system for just in time learning can be more cost-effective than a worker who has learned to think, introspect, challenge, and do research. In the credentialed society, the hiring manager is happy with fungible degrees based on measurable outcomes like numbers of hours of classes taken or specific scores on standardized tests.

Talbott also addresses the question of privacy. He points out that privacy is not the same as anonymity. It only matters where we know each other well enough to care. If our social functioning is reduced to data interactions, there is nothing for privacy to attach to.

Talbott is not a Luddite. He likes and values the technology he warns us about. He doesn't want us to discard it. He wants us to become fully aware of the tradeoffs between its positive and negative effects. Only with awareness can we make rational decisions.

This book is a highly distilled presentation of more than ten years of Talbott's thinking about these issues. This review only scratches the surface. To do Talbott's ideas justice, you should read the book, look at the works he refers to, and think deeply about the issues. I hope that you will.

Sunday, April 15, 2007

Looking Back over 20 Years

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

With this issue I start my twenty-first year writing the Micro Review column. Microsoft Windows, the World Wide Web, Java, the Y2K flap, the dotcom bubble, and a new wave of globalization all happened on my watch (not to mention the Loma Prieta earthquake, the Oakland/Berkeley Hills fire, 9/11, the Afghanistan and Iraq wars, the Indian Ocean Tsunami, and Hurricane Katrina).

Quite a lot has changed in our industry since my April 1987 column, in which I reviewed Motorola's manual for the MC68851 paged memory management unit and Danny Hillis's book about the connection machine. That year I reviewed Michael Slater's marvelous book, Microprocessor-Based Design and Maurice Bach's The Design of the Unix Operating System. I also looked at Microsoft Word 3.0.1 (for the Macintosh, of course) and an implementation of Donald Knuth's TeX.

Microprocessors and Computer Architecture 

Over the years I have branched in many directions, but I continue to focus on Micro's core themes. I reviewed the long awaited Hennessy and Patterson book on computer architecture in 1990 and their sequel on hardware/software integration in 1994. I reviewed Mike Johnson's Superscalar Microprocessor Design in 1991. I have reviewed books on cache design, busses, spread spectrum, high-speed digital circuits, logical design, the Pentium architecture, the PowerPC architecture, and more. Especially notable were Muhammad Ali Mazidi's coffee table sized book on the 80x86 architecture and Clive Maxfield's quirky Bebop to the Boolean Boogie (Micro Review Sep/Oct 1995) and its sequel, BeBop Bytes Back (Micro Review Jul/Aug 1997).

Computers and Consciousness

A consistent theme of my columns over the years has been the human mind and how it works -- especially when the workings turn out to be similar to computer architectures. In 1988 I reviewed Johnson-Laird's The Computer and the Mind. This got me into trouble with my friend Bernie Baars, because I never did review his much better book on the same subject, A Cognitive Theory of Consciousness. In subsequent years I reviewed Penrose's The Emperor's New Mind, Dennett's Consciousness Explained, Dyson's Darwin among the Machines, and, in 2004, Dan Lloyd's Radiant Cool -- A Novel Theory of Consciousness

If we broaden the subject to include decentralization and self-organizing behavior, we can include my Nov/Dec 1994 column, in which I reviewed Michael Resnick's Turtles, Termites and Traffic Jams -- Explorations in Massively Parallel Microworlds. In that book Resnick puts forth the general theory that Systems don't need a controlling intelligence to achieve purposeful behavior. No leader directs birds to fly in formation or ants to form trails from their nests to food sources. Instead, large numbers of independent entities, each following simple rules, produce the large scale patterns that we observe. This is also, essentially, Dennett's idea of how consciousness works. It is also the theme of Michael Crichton's Prey, which I reviewed in my May/Jun 2003 column.


In 1988 I took issue with a blurb on the back of a book about WordPerfect. The blurb quoted Andy Rooney as saying that the author had written the first book about computer software that does not appear to have been translated from the Japanese. I said, somewhat pompously, that the situation that Andy Rooney mocks does not result from an inability of Japanese speakers to express themselves but from a general unwillingness of Americans to learn the language of a people whose products they crave insatiably. I'm mellower now, but Andy Rooney hasn't changed. 

China, India, and 9/11 have placed American concerns about Japan on the back burner, but in 1990 I reviewed The Fifth Generation Fallacy, a book about the difficulties of processing Japanese characters using computers. Moore's law has made that problem vanish too. Language processing that seemed out of reach in 1990 is commonplace today.

I began to focus on globalization in 2005 with the publication of Tom Friedman's The World Is Flat. Since then I have reviewed several more books on the subject. My Job Went to India by Chad Fowler, which I reviewed in my Jan/Feb 2006 column looks at how individual workers can remain valuable to employers. In my Jan/Feb 2007 column, I reviewed Joseph Stiglitz's Making Globalization Work, which authoritatively identifies the essential problems of globalization and shows how to solve them.

Windows and Its Challengers

In the early days of my column, the software I reviewed, like my consulting business, was largely based on the Apple Macintosh. Microsoft Windows 3.1 tipped the balance in the early 1990s, and by the time Windows 95 came on the scene, most of the books and software I saw were PC-related.

My 1995 columns are full of books about the Internet and browsers. My favorite is Lamont Wood's The Net After Dark, which focuses on the fun side of the Internet. Netscape and the World Wide Web nearly derailed the PC train, but Microsoft took decisive action to avert the Netscape challenge. Courts later found some of that action to have been illegal, but it had the desired effect. In my Jan/Feb 1996 column I reviewed Bill Gates's The Road Ahead, in which he asserts Microsoft's intention to dominate the information superhighway. 

With Netscape subdued, another challenge to Microsoft arose. I devoted my May/Jun 1996 column to Java, which, with the advent of application servers, resulted in a platform to rival Windows. At the time, I contrasted Java with C++ and predicted that the Java and Microsoft lines would look more and more alike as time went on. Java has done very well since 1996, and Microsoft has moved strongly in the same direction with .NET. I have reviewed many books on Java and .NET, but my favorite is Josh Bloch's Effective Java, which I reviewed in my Jul/Aug 2002 column. I met Bloch at JavaOne in 2006, and he told me that sales of his book increased sharply after my review. I suspect that's just a coincidence, but I'm glad the book is doing well. It's essential reading for anybody who develops Java-based systems.

Of course, Microsoft's first important battle was the original DOS vs CP/M affair. In my Mar/Apr 2005 column I reviewed Harold Evans book They Made America -- From the Steam Engine to the Search Engine: Two Centuries of Innovation. The book is a collection of short essays about innovators and innovation. The one that drew me to the book describes the way Bill Gates outmaneuvered the brilliant, talented, idealistic Gary Kildall to freeze CP/M out of the IBM PC picture.

Programmers and Their Tools

Another major theme of my columns has been computer programming. I have looked at tools like the Brief editor, Visual SlickEdit, True Basic, the Microsoft and Borland IDEs for C++, the MKS Toolkit, UML, design patterns, the open source movement, Perl, Ruby, regular expressions, and Rails. I have reviewed books like Debugging, Code Complete, The Pragmatic Programmer, Literate Programming, The Cathedral and the Bazaar, Programming Pearls, and The Practice of Programming

Several publishers produce excellent books for programmers, but the undisputed leader is O'Reilly. In my Jul/Aug 1989 column, I reviewed Managing Projects with Make by Steve Talbott, one of the Unix in a Nutshell series. I have reviewed dozens of O'Reilly books since then, but my most recent favorites are the Head First series. My thirteen year old daughter is learning to program using Head First Java by Sierra and Bates. The depth of her understanding of the topics she has read about astonishes me.

In my Nov/Dec 1999 column, I reviewed Kent Beck's Extreme Programming Explained, the first of many books about that phenomenon. Extreme programming is part of a larger topic called agile programming. These methodologies try to strip away a lot of bureaucratic overhead. They follow a simple pattern of asking customers for requirements in small bites called use cases, then quickly implementing bits of software that satisfy the use cases. Agile techniques work well for small projects, but many large firms are finding ways to apply them to parts of large projects. 

The theme of programming is close to the themes of usability, interaction design, and project management, all of which have appeared many times in my columns. 

Usability and Interaction Design

In my Jan/Feb 1993 column I reviewed the second edition of Paul Heckel's The Elements of Friendly Software Design. My old friend, the late Rudolph Langer, then editor-in-chief of Sybex, was very fond of this book, which had gone out of print. He encouraged Heckel to republish it with Sybex. I'm not aware of a more recent edition, but the book's principles go beyond the details of particular software packages. I haven't seen another book that looks at interface design quite the way this one does. It is still worth reading today.   

In my May/Jun 1992 column I reviewed Tog on Interface by Apple Computer's human interface evangelist, Bruce "Tog" Tognazzini. Tog applied the Jungian I-E and N-S axes (popularized by Isabel Meyers-Briggs) to interface design. He pointed out that a small cadre of IN designers are creating interfaces for the great multitude of ES users. In The Humane Interface by Jef Raskin and The Inmates Are Running the Asylum by Alan Cooper, both of which I reviewed in 2000, the authors make the same point in different ways. Several years later, Cooper followed his observations with a detailed explanation of how to perform interaction design. It appears in his book About Face 2.0, which I reviewed in my May/Jun 2006 column.

Even more detailed and academic books on usability are User and Task Analysis for Interface Design by Hackos and Redish (Micro Review Mar/Apr 1998), Dynamics in Document Design by Karen Schriver (Micro Review Jul/Aug 1999), and the imposing Contextual Design by Hugh Beyer and Karen Holtzblatt, (Micro Review Jan/Feb 2001). 

Project Management

More than thirty years ago, long before I was a columnist, I read Gerald Weinberg's The Psychology of Computer Programming, where many ideas we take for granted today first appeared as startling innovations. For example, Weinberg is responsible for the concepts of egoless programming and code walkthroughs. Nowadays Weinberg frequently teams up with the wonderful small publisher Dorset House to produce pithy books on technical leadership. He has become a guru in this area, so that many Dorset books by other authors have the Weinberg look and feel. One of my favorites is Waltzing With Bears: Managing Risk on Software Projects by Tom DeMarco and Timothy Lister, which I reviewed in my Jul/Aug 2003 column. Failure to manage risks is one of the biggest reasons that software projects cost more and deliver less than their planners imagined that they would.

Another excellent Dorset book is Project Retrospectives: A Handbook for Team Reviews by Norman R Kerth, which I reviewed in my May/Jun 2001 column. Disdaining the usual 2-hour project post-mortem held in a conference room, Kerth suggests spending a few days at a resort (or at least off-site). The idea is to let people feel safe enough to speak their minds and then provide enough time to explore the issues that arise.

Yet another wonderful book about managing software projects is Tom DeMarco's Deadline: A Novel About Project Management, which I reviewed in my May/Jun 2000 column. Every bad management practice that has ever been inflicted on you is in this book, and DeMarco turns them all into aphorisms.

My Favorites

In writing a regular column, I tell you about many things that will soon be unimportant. Sometimes, however, I write about something that gives me, and I hope you, a special feeling. Here, in chronological order, is a list of reviews that I look back on with special pride:
  • Consciousness Explained by Daniel Dennett (Mar/Apr 1992)
  • The Man Who Knew Infinity (about S. Ramanujan) by Robert Kanigel (Mar/Apr 1993)
  • Code Complete by Steve McConnell (Jul/Aug 1993)
  • Digital Mantras by Steven R Holtzman (Mar/Apr 1995)
  • Java (May/Jun 1996)
  • Only the Paranoid Survive by Andy Grove (Mar/Apr 1997)
  • Darwin Among the Machines by George B Dyson (Jul/Aug 1997)
  • Extreme Programming Explained by Kent Beck (Nov/Dec 1999)
  • The Pragmatic Programmer: From Journeyman to Master by Hunt and Thomas (Jan/Feb 2000)
  • Bill Joy's warning from the April 2000 Wired Magazine (Jul/Aug 2000)
  • The Inmates Are Running the Asylum: Why High-Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper (Sep/Oct 2000)
  • Effective Java by Joshua Bloch (Jul/Aug 2002)
  • Me++: The Cyborg Self and the Networked City by William Mitchell (Nov/Dec 2003)
  • The World Is Flat: A Brief History of the Twenty-First Century by Tom Friedman (May/Jun 2005)
  • The Singularity is Near: When Humans Transcend Biology by Ray Kurzweil (Jan/Feb 2006)

Wednesday, February 14, 2007

Invisible Engines, Making globalization Work

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


This time I write about two books by economists. The first looks at the economics and winning business strategies of industries that require software platforms. The second addresses globalization.

Invisible Engines -- How Software Platforms Drive Innovation and Transform Industries by David S. Evans, Andrei Hagiu, and Richard Schmalensee (MIT, Cambridge, MA, 2006, 395pp, ISBN 0-262-05085-4,, $34.95)

The authors are experts who consult regularly with leading platform-based businesses. Evans and Schmalensee have advised Microsoft for many years, particularly about Microsoft's antitrust difficulties. Hagiu wrote a doctoral dissertation on two-sided economies -- situations in which two groups must participate (for example, auctions, which need both buyers and sellers). 

In this book the authors lay out the underlying principles and parallels of personal computers, mobile phones, video games, online auctions, search engines, and similar industries. All of these have in common that they have more than one "side." For example, the Microsoft Windows operating system creates an ecosystem of hardware manufacturers, application developers, and end users.

The various sides in the ecosystem that a software platform creates depend on each other in various ways. Hardware manufacturers need software support to maximize their performance/price ratios. Hardware manufacturers and developers need buyers for their products, while the existence of desirable products on a platform leads to more buyers. These are the well known network effects that cause some platform ecosystems to grow rapidly while others shrink and die.

The interdependence of the sides in a platform-based ecosystem is commonplace knowledge. This book, however, goes into the details. It provides brief histories of various platforms and shows how their business and pricing strategies evolved. 

The authors find that in each platform ecosystem, one side gets a better deal than the others. For example, in the Windows ecosystem, developers receive valuable tools and support for minimal cost, while buyers of Windows-based computers and software provide most of Microsoft's profits. In the video game business, on the other hand, users receive the game platforms at highly favorable prices, and the platform makers receive most of their profit from game developers. Media players (for example, Real Player or Apple Quicktime) are always free to end users, while the developers of the player software obtain their profits from content developers and distributors.

The book delves into pricing issues such as price discrimination, bundling, and charging for access versus charging for usage. The authors find, sadly, that it almost always pays the manufacturer to bundle features together, even though most buyers won't use most of what they buy. This leads to a kind of Moore's Law of software bloat: software platforms double in size roughly every two years.

The access versus usage question arises most notably in communication platforms like phones or personal digital assistants (PDAs). In theory, platform providers should charge for both, but in practice they usually charge for just one.

Interestingly, an industry rarely changes its pricing strategy as it matures. It tends to stick with the model that made it successful. An industry does, however, change its integration strategy. New platforms usually provide all sides of the ecosystem, because the network effects have not yet occurred. Later, as the ecosystem grows, the provider defines application programming interfaces (APIs) to allow outside vendors to supply alternatives to the platform provider's offerings. Microsoft Windows, for example, defines many standards to allow computer and peripheral makers, application developers, and even browser makers to complement each other's offerings. The Apple media delivery system, on the other hand, works best when all of the components (iTunes, iPod, the Apple music store, and the associated digital rights management software) come from Apple. Apple buys and resells content for this system.

As the authors discuss one platform after another, they repeatedly stress the importance of APIs and other standards that allow different sides of the platform ecosystem to innovate without entanglement with other players. We all know this, but it is interesting and useful to see the principle at work in many different platform ecologies.

The best thing about this book is the concrete detail. While the authors work hard to show the similarities between different platform-based businesses, their theories are not a procrustean bed. They discuss the quirks and odd corners of each industry and show how those quirks lead to the unique business strategies of that industry.

This is a valuable book for anyone who wants to understand or engage in a business based on a software platform. I recommend it highly. 

Making Globalization Work by Joseph E. Stiglitz (Norton, New York, NY, 2006, 384pp, ISBN 0-393-06122-1,, $26.95)

In The World Is Flat (Micro Review, May, 2005), New York Times columnist Tom Friedman emphasized the bright side of globalization. In Globalization and Its Discontents (Norton, 2002), Nobel Prize winning economist Joseph Stiglitz addressed the dark side of globalization. In his latest work, Stiglitz fuses these threads. He proposes ways to correct the problems he described in his earlier work, so everyone can benefit from globalization.

Joseph Stiglitz shared the 2001 Nobel Prize in Economic Sciences for his analysis of markets with asymmetric information. His research disproved many cherished assumptions that had persisted from the time of Adam Smith to the late twentieth century. In 1776, Adam Smith argued that free markets lead to efficient outcomes as if by an invisible hand. Starting with his field work in Kenya in 1969, Stiglitz accumulated the insights that led him finally to the conclusion that the invisible hand, if it ever existed, had disappeared. In its place, Stiglitz argues, government has a role in keeping free markets working. For example, free markets naturally lead to rapid flows of speculative capital into and out of developing countries. Institutions and regulations must protect those countries from the resulting instability.

By the time he received his Nobel Prize, Stiglitz had put his ideas into practice. He served as chair of President Clinton's Council of Economic Advisors, then as Chief Economist of the World Bank. While at the World Bank, Stiglitz went to war against the policies of the International Monetary Fund (IMF) and its chief supporter and shareholder, the United States Treasury Department. 

Stiglitz's 2002 book Globalization and Its Discontents contends that IMF policies favored United States financial interests, while short-changing the poor nations that the IMF is supposed to help. That book was widely influential, especially after huge protests against globalization like the one at the Seattle World Trade Organization meeting in November, 1999. The book identified many problems and suggested some changes, but it didn't offer a comprehensive solution. Four years later, Stiglitz continues the story of the adverse effects of globalization, but also offers solutions to many of the problems he sees.

Stiglitz summarizes the main complaints against the current implementation of globlization:
  • The rules favor the industrialized countries. The rules are so unfair that the poorest countries are worse off.
  • Material values are more important than the environment or even life itself.
  • Developing countries lose sovereignty over decisions that affect their citizens' welfare, thereby undermining democracy.
  • There are many losers in both developed and developing countries.
  • Developing countries must accept Americanization of their economies and their culture.
An issue that exemplifies several of these points is especially relevant to technology-based industries. The protection of intellectual property ensures that those who invest their time and money in writing books or developing inventions receive a reward for their efforts. Granting a time-limited monopoly to creators encourages innovation and helps to expand the body of knowledge.

In recent years, however, United States laws about intellectual property have become a drag on innovation in the software industry. In the drug industry, patent laws favor the development of minor variations of high-volume drugs rather than cures for "orphan" illnesses with low potential sales. They also keep life saving drugs out of the hands of people who need them but can't afford to pay.

In 1993, bypassing the existing World Intellectual Property Organization, the World Trade Organization adopted the TRIPs agreement (for trade-related intellectual property). This subjected developing countries to even more onerous intellectual property restrictions. The most well known example is the fight over the right of countries with high incidences of HIV AIDS to manufacture generic versions of expensive drugs for that disease. More humorous examples are attempts to enforce western patents on traditional Chinese medicine or on the medicinal use of turmeric in India.

I never advocate any particular political point of view in this column. Globalization, however, is inherently political. In laying out his program to address the problems of globalization, Stiglitz makes many statements that others might regard as politically biased. Nonetheless, Stiglitz presents a compelling, comprehensive case for his program. Like Thomas Jefferson, he believes that an informed electorate that is willing to hold its leaders accountable can solve problems like those of globalization. He hopes to help today's voters and leaders understand the issues that globalization has raised.

I won't go into Stiglitz's views further here. I recommend that you read his book for the details of his analysis and his solutions.