The Odd Success of the US Software Industry

by

Robert A. Heavener

November 4, 1996

Class: 605.401.32


Abstract

The worldwide software industry was estimated to be worth about $229 billion in 1995 and is expected to be worth over $300 billion by the year 2000. Besides the economic benefits that can be reaped from the industry, our national information infrastructure is becoming more and more dependent upon computers and the software that makes them run.

However, the "software engineering crisis" that was identified in the late 1960's continues to be a problem today. One fourth of all software projects are canceled before they are delivered. The average project is delivered one year late and is 100% over budget. Three out of four software systems delivered do not function as intended or are never used at all.

In spite of this the US dominates the software industry, retaining about 70% of the market. The primary factors contributing to that success are lack of strong foreign competition due to the hindrance of cultural barriers and distance, the rise in quality of US software due to better software engineering practices, the concept of "good enough software" and the success of shrink-wrapped software companies such as Microsoft.

On the other hand there are still a number of obstacles that could hamper the future success of the US software industry. The inherent complexity of software makes producing software difficult with no "silver bullet" in sight. Foreign competition still lurks in the background. Programmer productivity is down. Additionally, there is expected to be a critical shortage of skilled software professionals in the future to satisfy the demand for software products. However, overall there is good reason to hope for the "rise and resurrection of the American programmer."

    INTRODUCTION


This paper is an investigation of the success of the US software industry in spite of the so called "software engineering crisis" that was identified in the 1960's and continues today. An understanding of this success might help ensure that it continues.

The paper begins with a discussion of the importance of the US software industry and the importance of US dominance in information technology. An update of the current standing of the US software industry is given next. This is followed by the factors that were influential in the current success enjoyed by the US software industry. Lastly, some of the primary obstacles to the "rise and resurrection of the American programmer" are presented.

    WHY IT IS IMPORTANT


The importance of software is directly tied to the importance of computers in our society and vice versa, for neither has any purpose without the other. Therefore, the importance of the software industry results from the importance of the computer industry. For this reason, it is not possible to discuss the importance of software without discussing the importance of computers.

Computers are becoming increasingly important to our National Information Infrastructure. There are over 70 million microcomputers in use in the US today. Somewhere between one-fifth and one-third of American households own personal computers. Computers are being used in many ways to improve our quality of life. They are being used to improve the production of products such as airplanes, plastics and automobiles and to facilitate important activities such as education, medical imaging, oil exploration, communication, and banking. Clearly some of the additional benefits of an industry worth over $688 billion are the jobs, taxes, profits and exports produced by it [11].

We have only just begun the information revolution and we can expect the applications of computers to grow. The importance of computers to private citizens and industry will increase as we depend on them to perform such activities as recognize and simulate speech, generate realistic images, provide accurate models of the physical world, build huge automated libraries, control robots, and assist with many other tasks. Strong US leadership in information technology will protect our national information infrastructure by supporting other sectors that depend on information technology including industry, health, education, and defense and will also ensure continuing advances in our quality of life [11].

Ed Yourdon, the world renowned developer of structured analysis and object-oriented software engineering methodologies feels that one of the primary reasons the American economy is so strong and vibrant today is that the productive output of American businesses has been greatly improved by the effect of 30 years of computer technology [6, page 279].

    WHERE WE ARE


However, in 1992 Ed Yourdon, wrote

The American programmer is about to share the fate of the dodo bird. By the end of this decade, I foresee massive unemployment among the ranks of American programmers, systems analysts, and software engineers.

He felt that foreign competition would put American programmers out of work in a fashion similar to the way the Japanese automobile manufacturers put American automobile workers out of work in the 1970s. He felt that overseas software developers were cheaper, more productive and produced higher quality software [1, pages 1-6].

However, to paraphrase Mark Twain, it seems that the demise of the American programmer has been greatly exaggerated. Four years later there is no evidence to support such a bleak opinion.

According to the 1995 edition of the Jobs Rated Almanac, the computer systems analysts field is expected grow 111% by the year 2005. It was ranked number one out of 250 of those fields that will have the greatest number of openings though the year 2005. It was also ranked number one out of 250 job fields with regard to job security. When all six categories (job environment, income, job outlook, physical demands, job security and stress) were considered, the jobs of software engineers, computers systems analysts and computer programmers were ranked second, third and eighth respectively [2, pages 134, 231, 333].

Additionally, according to the Information Technology Industry Council (ITIC, formerly, the CBEMA), the worldwide revenue of US information technology rose to $688 billion in 1995 and is expected to grow at an average rate of 6.8% annually, reaching $1.33 trillion in the year 2006 [3].

World-wide the total market for information technology was worth about $942 billion in 1995. The breakdown of the products comprising that market and their values during 1994 and 1995 are[12]:

Table 1: World-wide Market for Information Technology


Product                    1995                        1994                       

Computer Equipment         $465.0 billion              $443.0 billion             

Business Equipment         $ 82.1 billion              $ 80.5 billion             

Telecom Equipment          $165.9 billion              $156.5 billion             

Software                   $229.1 billion              $208.6 billion             



Table 1 shows the world-wide software market was worth about $229 billion in 1995 (having increased almost 10% from 1994). The US currently dominates that market, holding about 70% of the market [5]. According to Capers Jones, Chairman of Software Productivity Research:

Today the US is the world's greatest producer and consumer of software. Very few industries can boast of such a one-sided balance, based on data I have collected. My company estimates that about 40 percent of all the software [based on size not cost] running in the world, and about 85 percent of the software running in the US, originated in the US. [10]

Clearly, the American programmer has little reason currently to expect to be unemployed by the end of the decade. The US dominates the software industry. How can we account for this success? Can we expect it to last? What factors will influence the future of the industry?

    HOW WE GOT THERE


It has been said that 25% of large system development projects never finish and that the average MIS development project is one year late and 100% over budget [1, page 24]. Additionally, 75% of all large systems are judged "operating failures" because they either do not function as intended or never end up being used at all [5, page 87]. These statistics are evidence of the so-called "software engineering crisis."

Also, in late 1991, the Software Engineering Institute had conducted a study involving companies and organizations such as Gunter AFB, the US Space Command, Magnavox, Hughes Aircraft, GTE, Westinghouse, IBM's SID, Ford Aerospace and others. The assessments indicated the following with regard to US sites and the SEI's CMM model [1, page 86]:

Table 2: CMM Ratings for US Firms in 1991


CMM Assessment Level                    Percentage of US Firms (1991)            

Level 1 (Initial Level)                 81%                                      

Level 2 (Repeatable Level)              12%                                      

Level 3 (Defined Level)                 7%                                       

Level 4 (Managed Level)                 0%                                       

Level 5 (Optimizing Level)              0%                                       



Another reference [5, page 90] dated September 1994 claims that out of 261 organizations that have been rated, 75% are still at level 1. Only two organizations in the world (Loral's on-board space shuttle development team and Motorola's programming team in Bangalore, India) have been ranked at level 5. Obviously, little improvement in this area has been made since the first study in 1991.

Figure 1: From Reference [1, page 76]

Perhaps matters such as process improvement have little to do with the success of the US software industry. James Bach had the following to say about the SEI's CMM:

The CMM is at best a consensus among a particular group of software engineering theorists and practitioners concerning a collection of effective practices grouped according to a simple model of organizational evolution. As such, it is potentially valuable for those companies that completely lack software savvy, or for those who have a lot of it and thus can avoid its pitfalls.

At worst, the CMM is a whitewash that obscures the true dynamics of software engineering, suppresses alternative models. If an organization follows it for its own sake, rather than simply as a requirement mandated by a particular government contract, it may very well lead to the collapse of that company's competitive potential. For these reasons, the CMM is unpopular among many of the highly competitive and innovative companies producing commercial shrink-wrap software. [7]

One of James Bach's strongest criticisms of the CMM that is relevant here is that innovation has no role in the CMM. He attributes innovation to being one of the primary factors responsible for the success of companies such as Microsoft, Borland and General Magic. He also states that companies like these operate at level 1 according to the model [7].

Also, Capers Jones is quoted as saying 90% of American programmers do not keep count of the mistakes they find and even those who do not tend to catch more than one third of the defects that are there [5, page 90].

In June of 1994, IBM's Consulting Group released a study of 24 leading companies that had developed large distributed systems. They concluded 55% of the projects cost more than expected, 68% overran their schedules and 88% required substantial redesign [5, page 89].

Yet the US software industry continues to grow. This is the odd success of the US software industry. What factors are behind this success?

    Lack of Foreign Competition

Although foreign competition was supposed to put American programmers out of business, Ed Yourdon himself admits that American programmers are more afraid of losing their jobs to downsizing than foreign competition. He now says the following when explaining the reason offshore programmers have not greatly impacted American programmers [6, page 9]:

The users have only a vague, fuzzy idea of their requirements, and the environment is so volatile that the requirements change every day. Meanwhile, the IT organization has a software process that borders on anarchy carried out by "cowboy" programmers, so it's almost impossible to interface with an offshore software shop that needs precise "entry" and "exit" points to each stage in the development cycle.

This statement explains the difficulty offshore programmers have in competing with American programmers. Today's emphasis on rapid prototyping and iterative development makes it very difficult for offshore programmers to interact with the end users of an information system. Because English is the de facto standard language for the computer industry, communication with offshore programmers is not a primary concern. This is especially true for matters that can be communicated via written communications (e.g. e-mail). However, the constant interaction required in a lot of software development efforts makes it impractical to have the end users and developers on opposite ends of the world. New capabilities, such as videoconferencing may help diminish problems like these, but cultural barriers will still exist. Different cultures have different approaches to handling problem resolution and negotiations and have different views on software project related issues such as user requirements, required documentation and so forth [6, pages 8-9].

Hence, the US software industry has not yet felt the impact of foreign competition. This is, however, an advantage for all indigenous programmers in every country [6, page 197].

    Software Quality

Over the last 10 years, the quality of US software has improved substantially. Ed Yourdon attributes this to the introduction of CASE tools, structured methods, software inspections and various other disciplines. The following chart from [6, page 16] shows the trend of US software quality (measured by the number of defects in delivered software) between 1985 and 1995:

Figure 2: Quality of US Software 1985-1995

Figure 1 shows that the quality of software produced in the US has almost doubled since 1985. Unfortunately, however, the range in quality has also increased. The difference between the best and worst was 10:1 in 1990 but was 100:1 in 1995 [6, page 16].

    "Good Enough" Software

Ed Yourdon believes the concept of "good enough" software has been and will be the primary reason for the "rise and resurrection" of the US software industry. The meaning behind the term implies a willingness to accept software that might not have zero defects as long as it is cheap enough, functional enough and available soon enough. This approach to software development is usually driven by competitive market pressures [6, page 17].

The three most important elements of "good enough" software are product functionality, product quality and delivery schedule. All three of these elements are interconnected. Changing one of these affects the others. Their relationships are not linear, however. For example, doubling the number of features (functionality) of a product but maintaining the quality will more than likely double the time (schedule) required to develop it [6, pages 159-160].

This new paradigm of software development essentially acknowledges that "feature richness", rapid delivery and cost may be a more important to software customers than the number of defects the software contains. Certainly for some classes of software, such as software that controls nuclear reactors or pacemakers or software that runs in ATM machines zero defect software is very important. However, for the bulk of applications, including shrink-wrapped software and corporate MIS applications, this model seems very appropriate [6, pages 161-162]. James Bach succinctly states the realities facing software developers today by saying:

In summary, creating products of the best possible quality is a very, very expensive proposition, while on the other hand, our clients may not even notice the difference between the best possible quality and pretty good quality.

One of the controversial aspects of "good enough" software is its reliance on software "heroes." The basis for this is that much of the most successful software developed during the past 30 to 40 years has been developed by small teams with typically fewer than a dozen people, not large teams following conventional software processes. James Bach describes these heroic teams simply as "ordinary, skillful people working in effective collaboration", not extraordinarily gifted programmers. He faults conventional software processes for not providing the proper environment for heroic teams to be effective by saying [6, page 175]:

Orthodox methodologies don't fly with good enough software companies for one reason more than any other: they're boring. Bored people don't work hard. They don't take initiative, and they avoid ambiguous problems instead of tackling them with gusto. Take care to create an exciting environment that fosters responsible heroism, and great software will follow.

The concept of "good enough" software is an advantage for the US primarily because it is compatible with our "cowboy" culture. This approach is less successful in cultures that are accustomed to authoritarian management styles and those that favor a group consensus over individualistic decision making (i.e. European and Asian cultures) [6, page 177].

    Shrink-Wrapped Software

Before the introduction of personal computers in the 1980s, the majority of software systems were bespoke (customized) applications developed for a particular customer to solve a specific problem. Now, however, generic, shrink-wrapped software accounts for the vast majority of sales in the software industry [9, page 5].

There are many players in the shrink-wrapped software business - Microsoft, Lotus, Novell, Borland, Apple, et. al. However, undoubtedly, Microsoft is the leader in the shrink-wrapped software market for PCs. In 1995 it had revenues near $6 billion. In comparison, revenues for Novell in 1994 were approximately $2 billion and revenues for Lotus were just under $1 billion [15, page 136]. They are clearly significant in the success of the US software industry and their approach to software development is exemplary.

In Microsoft Secrets [15], the authors describe the success of Microsoft by saying:

The Microsoft culture centers around fervently antibureaucratic PC programmers who do not like a lot of rules, structure, or planning. Its competitive strategy revolves around identifying mass markets, quickly introducing products that are "good enough" (rather than waiting until something is perfect), improving these products by incrementally evolving their features, and then selling multiple product versions and upgrades to customers around the world...

No company has taken advantage of the exploding demand for PC software better than Microsoft. Similarly, we believe, no PC software company has done a better job of keeping some basic elements of the hacker culture while adding just enough structure to build today's and probably tomorrow's PC software products. [15, pages 15-16]

They attribute the success of Microsoft to the application of seven key strategies that they observed in practice while researching material for their book [15, page 8]:

  1. Organizing and managing the company: Find smart people who know the technology and the business.
  2. Managing creative people and technical skills: Organize small teams of overlapping functional specialists.
  3. Competing with products and standards: Pioneer and orchestrate evolving mass markets.
  4. Defining products and development processes: Focus creativity by evolving features and "fixing" resources.
  5. Developing and shipping products: Do everything in parallel, with frequent synchronizations.
  6. Building a learning organization: Improve through continuous self-critiquing, feedback, and sharing.
  7. Attack the future!

One of the essential elements of Microsoft's software development strategy (strategy 5 above) has been labeled synch-and-stabilize. This approach simply means that the work of different members of different teams working on the same project is continually synchronized and periodically brought to a stable point. These activities occur during product development, rather than at the end. With multiple teams working in parallel, this approach is a combination of the concurrent and iterative (or prototyping) software development processes. This is in contrast to the "waterfall" approach to software development where each phase of a project is completed as a separate and distinct activity before another is begun and then at the end of the project, all of the components that were built are brought together for integration testing [15, pages 14-15].

One of the most interesting aspects of Microsoft's synch-and-stabilize approach is a rigid rule of daily synchronization and debugging. Each programmer working on a project goes through the same steps every day of the project. First, the latest version of the code is checked out. Next, a new feature is added and the programmer builds his own private release of the product. After testing the private release the programmer "syncs" his changes with the master version of the code to get any updates other programmers may have installed meanwhile. A new release is then built with the updated code and tested to make sure the new changes do not cause problems with the product's basic functionality. If all goes well, the private copies of a programmer's source code are checked into the master copies of the source code. Then toward the end of the day a "build master" rebuilds the entire project and if it passes an automated test, it is made available to all project personnel, including project managers, developers, testers, and user education staff, for use and further evaluation [15, pages 265-269].

The daily build approach ensures that each of teams on a project keeps in sync with the other teams, because if there are conflicts, they will show up almost immediately. The daily build process also provides a mechanism for tracking progress on a project because the daily build represents the current state of development efforts on the project. Additionally, the daily build enforces continual testing concurrent with the development process [15, pages 265-269].

A unique aspect of Microsoft's software development approach is the concept of testing "buddies." In essence, there is a one to one correspondence between developers and testers! Besides running an automated suite of tests against private releases of a project, the developer shares his private release with a testing "buddy" before checking in code changes to the master source code repository. These testers literally work side-by-side with the developers. This allows the testers and developers to focus on the same features and facilitates close interaction, preventing many bugs from entering the master version of the source code [15, pages 294-298].

Microsoft's software development practices evolved over time and have taken the company from a three person company with revenues of $16,000 in 1975 to a 17,800 person company with revenues of $5.9 billion in 1995. Microsoft controls between 80 and 85 percent of the market for PC operating systems and produces 25 percent or more of all packaged PC applications [15, page 2]. This success is evidence of a company with management and software development practices that should be emulated.

    OBSTACLES TO FUTURE SUCCESS


Can current success of the US software industry last? There are obstacles that must be dealt with sooner or later. So far the US software industry seems unassailable, but a $300 billion market is certain to attract competitors. Some of the problems the US software industry has to face are software development difficulties due to the nature of software, foreign competition, declining programmer productivity and a shortage of highly skilled programmers.

    The Nature of Software

Although it has been said many times before, this paper would not be complete without mentioning one of the major obstacles in software development - the complexity of software. Undoubtedly, this is one of the primary causes of the "software engineering crisis."

The problems with software development today are not too different from what they were when described by Harvey Bratman and Terry Court in the 1970s when describing the difficulties in SDC projects they hoped "software factories" would solve [4, page 67]:

The demands placed on software make the programmer's job very difficult. James Willette of StorageTek claims that a circuit board containing the logic found in a typical computer application would be the size of a single family home [8].

Fred Brooks describes the nature of software and the four factors that make it difficult - complexity, conformity, changeability and invisibility. His paper expounds on those concepts and describes why he believes there are no "silver bullets" that solve these problems. [14]

    Foreign Competition

One of the primary appeals of hiring offshore programmers is the fact that they are far cheaper than American programmers. Foreign programmers in Manila, Singapore, India, Brazil and other parts of the world typically earn 5 to 6 times less than American programmers [1, page 3]. The following table compares the salaries of software professionals in the US, Canada and India:

Figure 3: Comparison of US, Canadian and Indian Salaries [6, page 13]

Two of the countries that have the most promising software organizations are Japan and India. It remains to be seen what effect they will have on the global software industry.

    The Japanese

The Japanese have been known to deliver software systems with 100 times fewer errors than typical American software [1, page 7]. Additionally, studies have shown that the Japanese software practices are superior to those of the US in many ways. One such study of 52 of the major software produces in Japan and the US, including NTT, Mitsubishi, Fujitsu, NEC, Hitachi, Digital Equipment Corporation, IBM and others, concluded that the Japanese corporations had a software reuse rate of 34.8% while those of the US had a reuse rate of 15.4%. Another similarly conducted study of approximately 40 US and Japanese firms produced the following comparison[4, page 459]:

Table 3: Productivity of US Firms vs. Japanese Firms


Attribute                  US Firms                    Japanese                   

Mean Productivity          7,290                       12,447                     
(SLOC/work year)                                                                  

Failures/1,000 SLOC        4.44                        1.96                       

Code Reuse (% of           9.71%                       18.25%                     
delivered code)                                                                   



The table above shows Japanese programmers are 60-70% more productive than American programmers. Also they had an error rate of 1/2 - 1/4 that of the US firms.

The price charged by Japanese software firms for their services shows Japanese software firms charge almost half the price of US firms. The following table of Japanese and US firms (from 1988) shows the average monthly charges in units of 10,000 yen for several companies [4, page 58]:

Table 4: Software Costs for US and Japanese Firms


Company                    Monthly Charges             
                           (in units of 10,000 yen)    

IBM Japan                  351                         

Hitachi                    141                         

Unisys/Sperry              187                         

Fujitsu                    140                         

NEC                        82                          

Unisys/Burroughs           60                          

Mitsubishi                 181                         

NCR Japan                  96                          

Overall Japan              122                         

Overall US                 219                         



Additionally, the attitude of the Japanese managers and US managers toward quality control were measured in a survey. The survey asked how important the managers viewed five different approaches to producing high-quality products: companywide quality control, quality control audit teams, quality control education, quality circles activities (a small group of people meet to perform quality control within their own area of expertise), and the application of statistical methods. Each area was ranked on a scale of 1 to 4 where 1 = not important and 4 = very important. The Japanese managers ranked all five areas higher than their US counterparts. The differences in the areas of quality control audit teams, quality circles and statistical methods were statistically significant. The results were the following [4, page 460]:

Table 5: Importance of Quality Control to US and Japanese Managers


                           US Managers                 Japanese Managers          

Companywide QC             3.16                        3.47                       

Quality Control Audit      1.68                        2.60                       
Teams                                                                             

Quality Control Education  3.21                        3.47                       

Quality Circles            2.16                        3.13                       

Statistical Methods        2.52                        3.27                       



In spite of this, Japan does not currently appear to be particularly threatening in foreign markets. One of the primary reasons for this is the lack of surplus personnel to compete in overseas programming contracts or develop standardized programs for foreign markets. Meeting domestic demands for software in the early 1990s was a difficult enough struggle for Japanese software firms. Additionally, as in other industries, the Japanese emphasize process improvement first rather than product invention [4, pages 6-7].

    INDIA

India appears to be another potential competitor with the US in the software industry. Approximately 58% of India's $360 million software industry in 1993 was US business. Some experts think India's exports might exceed $1 billion by as early as 1997. Two factors that might influence the success of India in software are: the support of the Indian government in easing tariffs and restrictions and the low cost of Indian programmers ($125 / per unit of software for Indian programmers versus $925 for American programmers). Additionally, companies like Citicorp and Motorola who both have successful software development organizations in India have created trust in the quality of the software produced by Indian programmers [5].

However, even if India's software exports continue to grow as they have in the past it will be years before the US software industry feels the impact . India's software exports currently comprise less than 1% of the world-wide software market [6, page 11].

Additionally, the five to tenfold salary differential between American programmers and Indian programmers is not expected to last. Already in high-tech centers like Bangalore the software industry is experiencing 30-50% turnover rates. In response, Indian software firms are raising salaries and increasing benefits in an attempt to buy employee loyalty [6, page 12].

    Declining Programmer Productivity

Although the quality of programmers in the US has risen over the last decade, their productivity has not. Additionally, the range of productivity between various companies around the world has dramatically increased. The following chart plots programmer productivity in the US from 1985-1995 [6, page 14].

Figure 4: US Software Development Productivity Trends [6, page 14]

It would be safe to conclude that this is yet another indicator that the US may face strong competition from abroad [6, page 14].

    The Real Software Crisis

Bruce Webster writing for Byte magazine calls the shortage of top-notch programmers the "real software crisis" He feels that the primary factor in the success of software development efforts is the quality of the people involved (not other factors such as the process model or tools used by the programmers). He quotes Grady Booch as calling it "one of the dirty little secrets of software engineering." The following is an excerpt from his article that states the problem[13]:

Ah, there's the rub. Perhaps you've noticed that it's getting more and more difficult to locate and then hire the best people. This isn't an illusion; it's real, it's significant, and it's only going to get worse. It is, in fact, the heart of the real software crisis: There is more software to be developed than there are capable developers to do it. Demand will continue to outstrip supply for the foreseeable future. Hence, more and more software will be behind schedule, over budget, underpowered, and of poor quality -- and there's nothing we can do about it.

"Nothing?" you ask. "What about better schools, better tools, better on-the-job training, better methodologies?" Those are essential because they raise the quality of most developers. But they do not solve the fundamental problem.

The conclusion I have reluctantly come to after more than 20 years of software development is this: Excellent developers, like excellent musicians and artists, are born, not made. The number of such developers is a fixed (and tiny) percentage of the population. Thus, the absolute number of such developers grows very slowly. At the same time, the demand for them expands rapidly due to the world's increasing use of, and reliance on, software.

He also said the talented, decent, hard-working software engineers who study hard to maintain their skills will not be able to meet the demands of the future for software. Additionally, their skills are undermined by the many mediocre or poor programmers.

    CONCLUSION


We have enjoyed success, but that success seems to be a matter more of good fortune rather than deliberate planning. Because of cultural barriers, foreign competition has not yet been nearly as daunting as expected. However, if the promises of the information revolution break culture barriers, it may be just as effective to hire cheaper, talented programmers from India as it is to hire local programmers. This is particularly true if our own programmers cannot meet the demands for software in the future.

However, the "cowboy" culture has brought about the concepts of "good-enough" software and its marketing advantages. The extraordinary success of shrink-wrapped software companies such as Microsoft appears to indicate that the US will maintain its dominance in the software industry in spite of the obstacles for the foreseeable future.

    REFERENCES


The references in this paper are indicated using bracket notation in the last sentence of a paragraph or group of sentences. It can be assumed that all the information preceding the last sentence in a group of sentences or paragraph were derived from the same source unless it is otherwise specifically noted.

[1] Yourdon, Edward. Decline & Fall of the American Programmer. Englewood Cliffs, N.J.: Yourdon Press/Prentice Hall, 1993

[2] Krantz, Les. Jobs Rated Almanac. New York, N.Y.: John Wiley & Sons, Inc., 1995

[3] WWW URL http://www.itic.org/960701.htm

[4] Cusumano, Michael A. Japan's Software Factories: A Challenge to U.S. Management. New York, N.Y.: Oxford University Press, 1991

[5] Gibbs, W. Wayt. Software's Chronic Crisis in Scientific American. September 1994 issue

[6] Yourdon, Edward. Rise & Resurrection of the American Programmer. Upper Saddle River, N.J.: Yourdon Press/Prentice Hall, 1996

[7] Bach, James. The Immaturity of the CMM in American Programmer. September 1994 issue

[8] Rosenblatt, Max. Forum in Software Magazine. October 1996 issue.

[9] Sommerville, Ian. Software Engineering. New York, N.Y.: Addison-Wesley Publishing Company, 1996

[10] Jones, Capers. Globalization of Software Supply and Demand in IEEE Software. November 1994

[11] WWW URL http://www.nap.edu/readingroom/books/hpcc/exec.html

[12] WWW URL http://www.itic.org/960701b.htm

[13] Webster, Bruce F. The Real Software Crisis in Byte Magazine. January 1996

[14] Brooks, Frederick P. No Silver Bullet in Information Processing '86, 1986

[15] Cusmano, Michael A. Microsoft Secrets: How the World's Most Powerful Software Company Creates Technology, Shapes Markets and Manages People. New York, N.Y.: Free Press, 1995