Written by one of the founders of Vermeer Technology (creator of Front Page, later sold to Microsoft), the book is an excellent presentation of the rise and fall of Netscape, the Internet revolution and of course Microsoft, both the smartness of the company and the predatory behaviour.
There are so many interesting things in the book and on so many topics like:
- everything about a high tech start up
- why is Microsoft so successful at destroying other companies
- venture capitalist practices
- how to create a software product architecture
- how to hire and not to hire a CEO
- and many others
Some of my favourite paragraphs are below:
- Whether through haste, overconfidence or ignorance, in 1994 and 1995 Netscape
made a series of catastrophic technical and strategic errors that eventually proved their
undoing. These included sloppy, indeed almost non-existent, technical architecture;
foolish, immature hype that awakened Microsoft; failure to create proprietary advantage;
failure to generate 3rd party support and lock-in;poor testing and quality control;
excessive attention to minore markets to the neglect of windows
- the next mistake was the hiring of a non-technical CEO
- the CEO of a serious high technology company must have a serious technical
background, or at least the ability to understand technology and a deep appreciation of
its importance in strategic and organizational decisions
- i have a generally low opinion of professional CEOs, although some are superb. They
frequently have poor technical backgrounds, no concern for anything other than their
bank accounts, and skills that are more political than substantive. And their track records
are not great. Of the industry's most successful companies, there's only one - Cisco - that
has been run for a long time by a conventional professional CEO. Intel, Microsoft, Oracle,
Aol, Compaq, Dell and Gateway are all run by founders, early employeesand/or former
academics who somehow do okay despite not having Harvard mbas and perfect resumes.
When you stack them up against the people responsible for the last 20 years performance
of Apple, IBM, Netscape and Lotus and many others, you come away thinking that
unqualified, socially dysfunctional, impatient, ruthless, egomaniacal founders arent so
bad after all
- writing a clever piece of code that works is one thing; designing something that can
support a long-lasting business is quite another. Commercial software design and
production is, or should be, a rigurous, capital - intensive activity. Software products
should be based on a broad, deep structure that can support much more than whatever
the product contains at any given time. In addition to code that works, you need
documentation, help functions, error handling, multi-platform support, and multiple
languages. You also need an underlying architecture that allows you to add and
change features, purchase and integrate external software components, and allow
other software vendors to make their products talk to yours, add customized widgets to
it, or embed your product into something larger of their own. A good architecture, one
that will carry you for a decade's worth of unpredictable technology and market
changes, takes months to develop. But if you skip this step, as Netscape did, you
have made a truly Faustian bargain
- one goal of good architecture is to enable systems to be partitioned so that people
can work effectively in parallel, their progress can be measured periodically and
everyone can finish at the same time
- There were lots of kids and Unix people at Netscape, but few seasoned technologists
with PC software experience. Andreessen's job as chief technology officer was
supposedly deciding what Netscape's future products should be. But he had no
experience, and there was no chief architect; so for architectural change, who was
minding the store? Moreover, of the entire top management team, only one person
had any experience with a pc succssful software company
- the mangling of large companies by polished, politically astute, non-technical CEOs,
which is a major part of what happened at Netscape, is a movie that Silicon Valley
has seen many times before. ….. firing highly visible CEOs is all too rare, no matter
how bad they are. Ben Rosen has done it twice, when he replaced the CEO of
Compaq in 1991 and again in 1999. More often, however, everyone sits around,
afraid to be the first to blow the whistle and provoke a fight. But by the time an obvious
crisis forces action, it's often too late.
- Netscape's story also provides a remarkable case study in how to run a high tech
company, and how not to, at both strategic and operational levels.
- Perhaps never in American history has a new company faced larger opportunities
and such profound choices as Netscape did.
- Netscape's browser was a mess from the very beginning. Their first browser was
relatively simple, so choosing hacker style and spaghetti code to reach the market
fast was tempting. But there is a general rule in software engineering that the cost of
fixing an error doubles with every step down the engineering sequence, from initial
conception to architecture to commercial release, and these costs continue to double
with subsequent releases.
- Navigator 1.0 had almost no architecture. In Netscape's rush to market, it was
conceivably justifiable to do this. Even if so, the failure to fix it immediately by developing
a real architecture for the next product was utterly, totally fatal. Navigator 1.0 was
throwaway code that they didnt throw away.
- underlying each of the next browsers (navigator 2.0, 3.0, 4.0) was the non-architected
faustian bargain of the navigator 1.0. With each release, Netscape's cost structure,
technical limitations and development times worsened relative to Microsoft's, as did its
ability to support new features and interfaces, with the result that Netscape's lead, which
was at least a year, was eliminated within two years
- Netscape's failure to architect its browser was just one of many engineering errors.
Another, also serious, concerned testing. Software quality assurance is a complex activity,
with a range of best practices and capital-intensive software tools for automating testing,
bug tracking and error correction. For complex products, you even design the testing
systems into the original architecture of the product. That's not the way Netscape did it, to
put it mildly. According to some reports, Navigator 1.0 testers were hired by placing notes
on bulletin boards offering to hire random college students at ten dollars per hour. A
dangerous casual attitude toward QA persisted even well after Netscape had focused
on mission critical application and server products for conservative, quality-conscious
Fortune 500 clients
- during the development of Communicator 4.0, Netscape allocated about half of its
browser development team to an effort to redesign the browser from scratch, using the
java language. It would be difficult to exxagerate the idiocy of this choice. At this writing,
nobody yet uses Java to write large Windows applications, because its performance is
still mediocre and its tools, environment and user interfaces are insufficiently mature.
After a few months, Netscape canceled the effort
- Netscape went to great lengths to make its own life more difficult and succeeded.
- Netscape decided to develop its early browsers so that they can be developed and
released for many operating systems simultaneously, not just the multiple versions of
Windows but also the McIntosh, OS/2 and a half dozen varieties of Unix. These operating
systems and their user interfaces are fundamentally different from one another.
Consequently, Netscape developed a major piece of software, the Netscape portable
runtime layer that covered up the specific features of various operating systems. Netscape
developers then wrote code targeted to this generic intermediate layer rather than to
specific operating systems. This decision was an enormous strategic error. …. it was a
major technological and engineering disaster. It meant that Netscape deprived itself of the
best available tools for developing software, particularly for Windows.