top
Home
Bio
Revolution!
Classes
What I do in my Free Time
Links
 
 

Diffusion of Innovations

Communications and Journalism 595

I took this class in 1995 from Dr. Everett M. Rogers, who wrote the classic textbook in the field "Diffusion of Innovations", which is now in its fourth edition. I enjoyed the class, and learned a lot from Ev. As I go through life and see new projects, I'm constantly amazed at how much people don't know about this topic. I consider knowledge of it vital to anyone who wants to change the world.

I highly recommend that you read Ev's book. I found it one of the most profound books that I've ever read. But, I also found it to be one of the most profoundly boring books that I've ever read. I forced myself to read it, reading paragraphs over and over again until I understood them. I'm really glad that I did, because I took away some really powerful ideas. But, I had to work at it. Ev, if you're reading this, please let me suggest again that you try to find a ghost writer.

Here's my term paper from the course. You may notice that it looks slightly unfinished in places. Ev is a really easy grader. I took him this rough draft, to show that I had actually done some work, and asked for an extension. He took it and gave me an A instead.


NeXTStep

An Innovation that (so far) has failed

by Pat McGee

November 1994

Diffusion of Innovation

Communications and Journalism 595

Prof. Everett Rogers

 

Abstract

NeXT was founded in 1985 by Steve Jobs, one of the co-founders of Apple Computer. The stated goal was "to build computers that change the world...." In late 1989, they finally delivered the production version of their world-changing software. Customers responded by staying away in droves, and the company lost money continuously until 1994. Estimates of the cumulative losses range up to $250,000,000.

What does Diffusion Theory have to say about this company? With more attention to theory, could this story have had a different outcome?


NeXT, the company

NeXT Computer, Inc. was founded by Steve Jobs in September 1985, shortly after he lost a battle with John Sculley for control of Apple Computer. He collected a small group of bright ex-Apple employees, and challenged them to make a product that would change the world. The initial target customers were colleges and universities, a market that Apple had used with great effect in the introduction of the Macintosh. [Stross 93]

After a legal battle with Apple which was settled in January 1986, NeXT started serious design work. They unveiled their first 'personal workstation' on 12 October 1988 to an exhultant crowd in Davies Symphony Hall in San Francisco.

The hardware combined several specialized components. NeXT was one of the first users of the Motorola 68030 processor, and they included a digital signal processing chip, several direct memory access channels, and a 250 Megabyte read/write optical disk drive in each system. Each of these components was used in other systems, but only as expensive add on's. NeXT combined them into every computer delivered with the intention of raising the 'lowest common denominator'. In this way, software developers could assume that all of these features were present in every machine and design their programs to use these features.

NeXTStep, the product

As innovative as the hardware was, the software was the real innovation. The software, called NeXTStep, was based on several components. The window system used Display PostScript, licensed from Adobe. The compiler used a language called Objective-C, from StepStone. They were combined using a new program called Interface Builder.

All those things were put together in a way that allowed a program developer to quickly connect pre-programmed pieces together in novel ways to accomplish the desired task. Objective-C supports a technique called 'run-time binding'. When a program is running, it can load a subroutine from a file, link to it, then call it. Most other languages use 'compile-time binding', which requires the connections be done when the programmer compiles the program. Other C and C++ compilers do not yet support run-time binding, more than 10 years after the introduction of Objective-C.

Run-time binding is the key to the Interface Builder and the Appkit, the two most innovative parts of NeXTStep. A developer could point to an icon on the screen that represented a subroutine, drag it into a window representing the program being developed, and instantly use the added functionality. This dramatically shortened the 'think-program-test' cycle, which substantially improved the productivity of the programmers using it.

To show the effectiveness of NeXTStep, consider the development of Lotus Improv. In a time when large projects were routinely delivered years late and millions of dollars over budget, the Improv development team delivered in 18 months a product that had been scoped for 2 years. They were under budget a substantial, but undisclosed amount. This revolutionary product was available only on the NeXT for several years. [???]

Context and Competition

When the NeXT computer was first announced, the world was substantially different than it is today. Many of the ideas used in the first NeXT computer are now routinely used in other systems. NeXT continues to innovate, and by some estimates, retains a one to two year technology lead on the competition. This is down substantially from the time of first delivery, when they commercially introduced ideas that were not otherwise available for three to four years.

When NeXTStep was first delivered, it was not clear whether Objective-C or C++ would be the mainstream successor to C. X Windows was battling with NeWS (from Sun Microsystems and very similar to Display PostScript) for preeminence as the preferred solution for doing windows over networks. There were more versions of Unix than there were workstation manufacturers, and there were lots of those. Smalltalk (an object oriented language) was a research curiosity, and companies that sold tools for developers sold compilers and subroutine libraries. If you wanted to create a GUI (graphical user interface), you either used a graphical tool to place objects on a window, then told the tool to generate C code you could compile, or you wrote the C code directly.

Now, thanks at least in part to NeXT, state-of-the-art developer tools include visual programming systems and integrated user interface builders. Everything is object oriented, even COBOL and FORTRAN. Many interface developer tools similar to the first version of Interface Builder are available, and many can generate code for any of several different hardware platforms.

Other parts of the industry have moved in other directions. There are fewer major workstation manufacturers, and fewer operating systems for them. Smalltalk is now selling better than NeXTStep. C++ and X Windows are everywhere, Objective-C is a bit player, and NeWS has disappeared.

How much more different could the world be now if NeXTStep had diffused faster? That's a question that probably can't be answered, but we can look at why NeXTStep did not diffuse faster than it did. To start answering that question, first we need to examine theoretical factors affecting rate of diffusion.

These theoretical factors can be divided into two main groups. The first group to be examined include factors related to the industry as a whole. Then, characteristics of the innovation will be examined.

Finally, some more recent history and possible future trends will be examined.

Industry Factors

Industries typically go through several stages in their journey from research to commodity. The first stage of an industry is often composed of many very small firms, each one "Two men in a Garage". After this, stages typically involve increasing concentration of production into the hands of fewer, larger companies, decreasing prices, increased sales, increasing standardization, and increased barriers to entry for new firms.[Rogers 82, p141-143]

There are several distinct parts to the computing industry, and different parts are in different stages at the same time. At the current time, there appear to be distinct markets for computer hardware, operating systems, and program development environments. These are in approximate order of appearance and development.

During the period NeXT has been in existence, the market for computer hardware has shown considerable consolidation, especially in the workstation market. Hewlett-Packard and Apollo have merged, and other firms have left the market.

It is not clear how to compare the markets for workstation hardware and operating systems. Before 1975, every hardware vendor had their own proprietary operating system; some had more than one. Since then, there has been a steady consolidation toward Unix and its variants. Now, there are companies that sell only operating systems for various hardware platforms, SunSoft and Microsoft being the two leading examples.

The market for program development environments is still in its initial stages, with many new firms entering the market. During the last ten years, the tools available for this market have moved further upstream in the development process, to address problems closer to the beginning of a programs life.

NeXT, with its first product, attempted to join all three of these markets at the same time with a single product.

It should be no surprise that they first ran into problems in the hardware market. They were unable to stay current with the state of the art. Other companies were putting a lower percentage of sales, but a much higher total amount into hardware research and development. This resulted in NeXT hardware trailing the state of the competition in speed and cost/performance ratio, two very, very important factors in this market. [Thiegpen 94]

This resulted in NeXT dropping their hardware business entirely in February 1993. NeXT, Inc. (nee NeXT Computer, Inc.) was now in the software business exclusively. Market consolidation had claimed yet one more victim. [Find some articles about this]

Now, let us turn our attention from an industry focus to a focus on the innovation. For the remainder of this discussion, I will focus only on NeXTStep as a software product.

Types of Adopters

Before considering the innovation, let's talk about the potential adopters.

Computer application programs become available through two main mechanisms. The first one to be used, in the late 1940's and 1950's, was that companies who bought computers hired their own programmers to develop applications just for that company [Goldstine 80]. This is still the typical method for programs that are now called "Mission Critical Custom Applications" (MCCAs) [Stross 93, p 311]. In this model, the company, or a unit of a company, may be considered the unit of adoption. Both the end users and the programmers are employed by the company, and the decision to adopt a specific computer innovation is made as a group decision.

About a decade later, the market segmented as some companies realized that other companies needed many of the same programs as they did. So, companies started selling programs. This became, in time, the shrink-wrap software market. In this market, there are two types of units of adoption, the developers and the end users.

Another market exists, that of free software. However, this can be considered to be essentially similar to the shrink-wrap software market except that the coin of the realm is admiration and other intangibles, instead of money.

So, there are three types of adopters relevant to the further discussion: companies who develop and use MCCAs, developers who sell applications, and end users who buy these applications. Each of these types of adopters had different reasons to adopt NeXTStep, and each will be considered separately.

NeXTStep found a home in companies who wanted custom applications for their employees and greatly valued quick development time (e.g. Swiss Bank, many  firms in the securities industry.) This is a market that NeXT continues to sell well into today [ref?].

The reception of NeXTStep among the developer community was initially quite good. Many innovative programs were first developed on NeXTStep. Some have been ported to other computers (e.g. Lotus Improv). Others remain available only on the NeXT (e.g. ???). Much of this activity was found on college campuses and research institutions, where doing innovative things was valued over commercial success. In the commercial community, however, interest was not as intense, and has never gotten past a fairly low level.

Among general end users, NeXTStep has essentially been ignored. [ref?].

There are many reasons for these results. What follows is a discussion based on the theory of diffusion of innovation, with an additional factor that seems to have been relevant, but is not considered in that theory.

Relative Advantage

Relative advantage is "the degree to which an innovation is perceived as being better than the idea it supersedes" [Rogers 82, p 213]. This includes such factors as profitability, social status, and satisfaction.

For companies with MCCAs, NeXTStep offers several advantages, all of which can be related to the time necessary to produce such applications. NeXTStep allows corporate developers to develop applications in a fraction of the time and money required for competing systems. This allows companies to deploy those applications faster, thus making it possible to take advantage of emerging markets much more quickly.

This speed of development is also a relative advantage for developers. Using NeXTStep makes it possible to substantially reduce time to market for an idea, thus allowing a company to bring an idea to market before their competitors.

However, those applications only ran on NeXT computers. If a potential customer for that application had another computer, the customer had to either buy an additional computer for the new application, or to replace their computer and all of their applications with similar ones that ran on the NeXT computer. In many cases, the second alternative was not viable because many types of programs that were available for other computers were not available on NeXT computers. Even if they were available, this was an expensive alternative. The other alternative, buying an additional computer, was even more expensive.

This substantially decreased the relative advantage of NeXT computers for end users. In general, unless an end user needed a capability that was available only on NeXTStep, that person could not justify adopting this innovation. Since there were very few capabilities available just for NeXTStep, there were few end users for whom adopting gave them a relative advantage.

Compatability

Compatability has several different dimensions. Among them are compatability with existing culture and practice and with previously adopted innovations, and compatability with the needs felt by the potential adopter. [Rogers 82, p223]. Of course, each company has a different set of current practices, previous innovations, and felt needs.

For companies with MCCAs, NeXTStep can be very compatible with existing culture because the applications can be developed to be compatible with existing company business practices. Applications developed internally, as MCCAs usually are, typically are more compatible with the felt needs of the users than those purchased from outside.

However, if the business unit has previously adopted a standard computer system, NeXTStep will be incompatible with that choice. This could cause additional costs in duplication of computer system for those users who need NeXTStep computers in addition to their company standard computer.

Programming for NeXTStep involves learning a new system. Many parts of NeXTStep are compatible with other workstations (e.g. C, bsd Unix, PostScript), but others are not (e.g. Objective-C, AppKit, Interface Builder). Learning to effectively use these elements is essential to getting the most value out of NeXTStep, but because they are not compatible with other systems, it does take some time.

For developers, new computer systems are always incompatible to some extent with their current practice and systems. NeXTStep builds on many compatible elements (C, bsd Unix, PostScript), but adds new incompatible elements (Objective-C, AppKit, Interface Builder). For developers who previously worked on X Windows, NeWS, or Macintosh, the event driven programming paradigm is the same, but for programmers coming from the DOS world, this is a major incompatability. On the subject of needs, however, NeXTStep can be very compatible with the tasks typical of developers.

For end users, compatability has several elements. Macintosh users find applications on the NeXT very similar to use. However, the lack of application programs in many areas can make the NeXT very incompatible with the users needs.

Complexity

Complexity is "the degree towhich an innovation is perceived as relatively difficult to understand and use." [Rogers 82, p230]. Of course, complexity must be measured by the potential adopters, and is relative to other innovations that have been tried or rejected.

For this measure, it is more appropriate to consider corporate MCCA developers together with independent developers, and to consider corporate MCCA users together with other end users.

For developers, NeXTStep is less complex than X Windows or Macintosh, the two main competitors when it first came out. Programming on any event-driven system, as all three of these are, is more complex than writing an in-line program, but NeXTStep is the simplest to learn of these three.

Applications developed for NeXTStep tend to be very similar in complexity to Macintosh programs and therefore less complex to use than those for DOS systems.

Trialability

If an innovation can easily be experimented with, it has high trialability. Trying out an innovation before making the decision of whether or not to adopt it is a way of reducing the uncertainty involved.

For corporate customers, trying out any new programming system is troublesome. New computers and operating systems have to be purchased. Programmers have to be sent to classes. A trial project has to be selected. The project has to be implemented in such a manner as to allow comparison of results. The results have to be evaluated. All this consumes resources, which have to be diverted from productive work. Only innovations that promise a substantial relative advantage can make it through this labrynth.

Trialability for developers became better last year, when a tutorial book on NeXTStep programming finally appeared [Garfinkel 93]. Before that, the only way to really succeed in trying out NeXTStep was to go to a week-long class. The documentation that came with the system explained how to use the various tools, but didn't explain the philosophy of the best way to use them. Therefore, it was difficult to try out the system and actually get any results.

End users who needed application types that were available found NeXTStep very easy to try, as long as they could locate a machine to experiment with. However, running NeXTStep applications on other operating systems is impossible, and running NeXTStep on a computer other than one specially configured for it is problematical. This makes it very difficult to try NeXTStep without knowing a current user, or buying a machine just for the trial.

Observability

Innovations that have very visible results are said to be highly observable. This makes it easier for potential adopters to find out about the benefits of the innovation.

Observing the results of adopting NeXTStep can be done in several ways. For potential corporate adopters, looking at the results of other corporate adopters can be very instructive. These results can be not only seeing the programs that are developed and used, but seeing the financial results from getting services and products to market faster. However, most businesses do not reveal relevant financial results except in the most general terms. Observing the programs that are developed can also be problematical, especially if the programs are critical to the financial success of the developing company. This tends to be less true if the potential adopter is not in competition with the past adopter, but can still be a problem.

Developers can also observe the results of other developers; the application programs. Looking at applications that others have developed gives an observer indications of what can be done with NeXTStep. To some extent, this can also show how long it took to get those results, as the number of hours per year that an individual developer can spend tends to be roughly the same. If several applications are developed by one person each, and they have significantly larger functionalitys than applications for other systems, then much of the difference can be assumed to be because of the development environment.

For end users, observability is mainly the ability to see that other people can get their work done. The ability to get work done strongly depends on the availability of application programs with which to do that work, which depends on the type of work to be done. This, in turn, depends on the rate of adoption among developers of that type of application. Since NeXTStep was not adopted by developers of all types of applications, not all types of applications are available. So, observability for end users varies across types of applications. If the type of application that the end user needs is available, it is possible to observe the results of adopting.

Risk of Adoption

This is a characteristic that I have not seen addressed in theoretical discussions, but was widely discussed by potential and actual adopters following the introduction of NeXTStep. It was widely perceived that if a company made an investment in NeXTStep, and NeXT did not become a viable market force, then the company would be forced to discontinue the adoption. This discontinuance could potentially be very costly, losing the investment with no return from the benefits. Other possible losses are the opportunity costs, the amount of money that could have been made by adopting some other innovation. This perceived risk seems to have influenced many potential adopters to not further consider the benefits of adoption.

Risk is already implicitly a part of diffusion theory. As people move through the various stages of considering adoption of an innovation, they reduce their  uncertainty (risk by another name) about the innovation. But, for some innovations, risk is an additional explanatory factor in how fast the innovation is adopted. Potential adopters usually recognize that higher potential payoffs are often accompanied by higher risk.

Different people and groups have different amounts of risk tolerance. Some companies and people are very risk averse. If an innovation is not very likely to pay off, these companies will not consider adopting that innovation. Others have slack resources that can be used for more risky innovations, where they are not betting the company on any particular adoption decision.

For an innovation with a high risk factor, the number of potential adopters is reduced, so the rate of adoption over the entire population is accordingly slower.

The semiconductor hardware market is also characterized by considering risk in adopting innovations. For example, adoption of the Advanced Micro Devices 2901 chip was slowed because they were only available from AMD [Rogers 84, p49]

Different developers had different views of the acceptability of this risk, and of the potential rewards for entering the market. Large companies typically thought the potential rewards were too small for the amount of risk involved. Small companies had smaller sales needs to turn a profit, so they thought the reward to risk ratio was sufficient to justify entering the market.

Corporate decision makers typically saw a high risk from adoption of NeXTStep. Deciding to make mission critical applications dependent on a product from a small company with so few sales as NeXT was perceived as a high risk move.

End users also typically saw a high risk from adoption of NeXTStep. Selecting a new computer system was a major investment. Selecting a system from a small company usually made the risk unacceptably high. I feel this was a large factor in the non-adoption of NeXTStep among end users. To quote an old industry saying "Nobody ever gets fired for buying IBM."

Summary of factors

<summary table here>

In light of what we have learned from diffusion theory, what could NeXT have done differently to cause their innovation to diffuse faster?

What could NeXT have done differently?

This is not an attempt to criticize NeXT in hindsight. It is an attempt to understand what happened, in light of theory that existed at the time NeXT started. Most of this analysis could have been done anytime in the last 12 years. Nonetheless, there is some unavoidable element of hindsight involved.

NeXT attempted to compete in three different markets at the same. In the hardware market, they were competing with much larger companies that could spend more money pushing the state of the art. All of the early hardware innovations (Digital Signal Processing chip, lots of Direct Memory Access channels, the read/write 250 megabyte optical disk) were subsequently dropped well before NeXT left the hardware business completely. While it was not recognized at the time that an industry consolidation was under way, such events were common in other industries, and were predicted by theory to happen regularly.

Could NeXT have recognized this in time to avoid this expensive mistake?

At the time NeXT started, they believed that it was absolutely necessary to sell hardware for their software to run on. This has proved to be an invalid assumption. However, at the time the decision was made, only a few companies were selling system software without also selling hardware (e.g. Microsoft, Digital Research). Mostly this software was sold to hardware manufacturers, who bundled it with their hardware. [ref?] It is probable that this was not an industry direction that could have been predicted to change in the near term.

However, the decision to closely couple the window system with the operating system was a decision that should have been recognized at the time as being risky and unnecessary. This decision meant that it would be difficult to ???

The Tide Turns?

As this is being written, NeXT claims to have had three quarters of profitability, and be well on their way to a fourth. True, the rumored amounts of profits don't begin to repay the hundreds of millions of dollars of investment.

NeXT is now attracting corporate partners to deliver the technology that NeXT has developed to users of other hardware platforms. NeXT has developed a specification, called OpenStep, that ???

The NY Times said that NeXT and Microsoft were close to announcing a deal in which NeXT would announce that the NeXTStep development environment would be available for future versions of Microsoft Windows [NY Times 94A]. Even though later stories have backed off from the earlier claims that Microsoft was funding the development of the product [NY Times 94B], this would still be very encouraging news for NeXT investors and adopters, as well as to Windows developers struggling with other, harder to use tools.

These currents give hope to NeXTStep devotees that their favorite development environment may yet have a long and prosperous life.

Conclusion

NeXT, Inc. has had problems, many self-generated, many others as a result of unforseeable market forces. I've tried to show the effects of some of these forces from a theoretical perspective. It is my belief that if someone at NeXT had done this analysis nine years ago, they could have avoided many of these problems with comparatively little effort.


Bibliography

[Garfinkel 93] "NeXTStep Programming: Step One: Object-Oriented Applications", Simson L. Garfinkel and Michael K. Mahoney, Springer-Verlag, 1993.

[Goldstine 80] "History of computing', Harry Goldstine.

[Kawasaki 92] "Selling the Dream", Guy Kawasaki, 1992.

[NY Times 94A] "??", New York Times, 31 October 1994, page C-1.

[NY Times 94B] "??", New York Times, ? November 1994, page ??.

[Rogers 82] "Diffusion of Innovation", Everett M. Rogers, 1982.

[Rogers 84] "Silicon Valley Fever", Everett M. Rogers & Judith K. Larson, Basic Books, 1984.

[Stross 93] "Steve Jobs and the NeXT Big Thing", Randall E. Stross, 1993.

[Thiegpen 94] Personal interview, Robert Thiegpen, former NeXT salesman.

 

Ryan Knowles wrote the first version of this website. Thanks, Ryan.