Archive for the ‘Book’ Category

Notes on the book: Supercapitalism

January 6, 2008

Supercapitalism: The Transformation of Business, Democracy, and Everyday Life, by Robert Reich, is the most interesting book on the American government and how it relates to our lives that I’ve read in a long time.

In a nutshell, the thesis is: “Capitalism has become more responsive to what we want as individual purchasers of goods [and investors], but democracy has grown less responsive to what we want together as citizens.” “Democracy means more than a process of free and fair elections. Democracy, in my view, is a system for accomplishing what can only be achieved by citizens joining together with other citizens–to determine the rules of the game whose outcomes express the common good.”

He makes what I consider an extremely cogent, well-written, and persuasive argument to support this. He explains why it happened, focusing on the history of the American economic and governmental structure starting in the post-War era (the fifties), and showing how major changes started in the Seventies and continued to the present.

He offers explanations for:

  • Why CEO pay has soared into the stratosphere and what prevented it from soaring before
  • Why inflation has become less of a threat than it was three or four decades ago
  • Why antitrust laws are less important today as a means of restraining economic power than they were previously.
  • Why there are so many more corporate lobbyists and lawyers in Washington, D.C.
  • Why politicians demand that companies be “patriotic” and put America before other nations
  • Why a bigger fuss is being made over corporate philanthropy when corporations were never set up to be charitable institutions
  • How someone can fret about the decline in hourly wages and simultaneously hunt for the best deal from China or India, which is often at the expense of an American’s wages or even job.
  • How someone can lament the decline of independent retailers on Main Street while at the same time do most of their shopping at big-box retailers and online.
  • Why a person who is deeply concerned about global warming might nonetheless buy an SUV
  • Why politicians like to publically excoriate CEOs but then enact no laws making what they did illegal
  • Why the move toward improved corporate governance makes companies less likely to be socially responsible
  • Why the promise of “corporate democracy” is illusory
  • Why the corporate income tax should be abolished
  • Why companies should not be held criminally liable
  • Why shareholders should be protected from having their money used by corporations for political purposes without their consent
  • Why large companies have less economic power now than they had three decades ago
  • Why the immense increase in corporate lobbying is due to a decrease in the market power of the corporations

You may be thinking about some of these points: “Oh, it’s obvious why.” But Reich’s explanations are often not what you’d expect.

None of this happened because of Ronald Reagan or Margaret Thatcher; the trends were clearly under way before they came to power, and the same trends can be seen in other countries to some extent. Neither were they caused by heroic or villainous CEOs; the changes are structural, not personal.

“The executives of Wal-Mart or any other large company are not brutally insensitive or ruthlessly greedy. They are doing what they’re supposed to do, according to the current rules of the game–giving their customers good deals and thereby maximizing the returns to their investors. Just like players in any game, they are doing whatever is necessary to win. But just as all games require rules to define fair play, the economy relies on government to set the economic ground rules. If government wanted to do something about the means Wal-Mart employs, it could change the current rules. In theory, it could enact laws to make it easier for all employees to unionize, require all large companies to provide their employees with health insurance and pensions, enact zoning regulations to protect Main Street retailers from the predations of big-box retailers, and raise the minimum wage high enough to give all working people a true living wage. All such measures would have the likely effect of causing Wal-Mart and other large corporations across the board to raise their prices and reduce returns to investors.”

Reich is not especially advocating that government should do these things. His point is to show what could happen, and why things are happening the way they are. He would like there to be more public conversation about whether or not to make these kinds of tradeoffs. The last sentence is “The first step, which is often the hardest, is to get our thinking straight.”

The writing style of the book is simple and direct, and fun to read. He has a lot of supporting facts and figures as well as good illustrative stories.

I believe that his overall point is extremely valid, and provides a useful framework for thinking about the vital issues of our economy and our government.

Notes on the book: Dreaming in Code

December 27, 2007

I just finished reading an amazing book: “Dreaming in Code” by Scott Rosenberg. Like many good, recent non-fiction books, it alternates between a specific narrative with colorful real people, and general background information. In this case, it’s the story of Chandler, a personal information management tool, and the team who are building it, led by Mitch Kapor.

The general background explains far more about real, contemporary software, how it is built, and what it’s all about, than anything I’ve read before. Everyone learning to be a software engineer, or who wants to understand what software engineers actually do, should read this book.

In only 355 pages, Rosenberg discusses, in clear language that’s easy to follow, at least the following:

  • What working on a software project in a team is like, the subjective experience
  • Open software, and the “Cathedral vs. Baazar” concept
  • Doug Englebart’s ideas (very germane to Chandler)
  • Famous software fiascoes
  • Computer languages, especially Python and how it compares to others
  • Reusable software, software libraries, build versus buy
  • What “geek” really means
  • CVS, Bugzilla, and Wikis
  • Why user interfaces are so hard to design
  • Dependencies between parts of a system and how they block work
  • Release management and scheduling
  • Specifications and their nature
  • Layers of abstraction
  • Scaffolding
  • Code reviews
  • WebDAV and CalDAV
  • Microsoft FUD
  • Requirements analysis
  • Methodologies: waterfall, agile
  • The gist of No Silver Bullet and The Mythical Man-Month
  • Ruby on Rails
  • Software engineering, its history and what it means
  • Complexity
  • Late binding
  • Object-oriented programming
  • Recursion
  • The halting problem

The story of Chandler and the team is compelling and instructive. On page 173 of the book, he says: “By now, I know, any software developer reading this volume has likely thrown it across the room in despair, thinking, ‘Stop the madness! They’re making every mistake in the book!’” I did indeed feel that way by page 173. Here’s my sense of what went wrong, based on the account in the book:

  • They did not have one architect (Brooks makes a very good point about why there should be a single person)
  • They didn’t work out the architecture in advance, and they went back and changed it many times
  • They had a very flexible data concept/model, in which items change type frequently in a user-visible way, which they didn’t work out until quite late
  • They kept changing their mind about their UI substrate: wxWidgets? Mozilla internals?
  • The software ecosystem changed around them after all those years, and using a Web UI now made sense, but it was too late for them
  • They could not figure out what database technology to use (they finally decided not to use the Zope Object Database, although their reasons for that decision don’t impress me)
  • It was originally supposed to be peer-to-peer, but they could not figure out how to make that work, so they changed it to be server-based, a major change very late in the design
  • They had to design a security model for all this
  • It was all extensible, which is great but takes a lot of work to do right
  • There were complicated semantic issues with sharing, “chain-sharing”, etc. which were not worked out early.
  • They wanted to have extensional and intensional collections, like iTunes, but also wanted to combine the two (the so-called “exclude Bob Marley” feature), which makes the semantics a lot harder
  • Their internal terminology was inconsistent, symptomatic of a lack of architectural integrity
  • They did serious requirement analysis only late in the project
  • It was putatively open-source, but it was much too immature to really get outside developers involved
  • They were too focused on doing “the right thing” instead of getting something out fast; see Gabriel’s “Worse is Better” paper
  • They released much too early, partly because of the glare of publicity due to Mitch Kapor’s involvement

I see that they are still in “preview” releases. This has been going on for six years now! They have no projected release date for 1.0. It will be free, under the Apache license.

I have always wanted a good personal information manager, and a lot about Chandler looks very promising. Someday I may be a happy user. Right now, I think I’ll wait until release 1.0.

I hope they have moved beyond the problems illustrated in the book and are running smoothly now. Kudos to the whole Chandler team for letting Rosenberg be so involved, being so honest with him, and letting him produce this unique, spectacular book.