Computer Software Development

Buy This Industry Report
Get more in-depth industry information with a First Research industry report containing business challenges, trends, executive insight, call prep questions, and so much more!
Industry Overview
The US computer software development industry involves about 50,000 companies with combined annual revenue of about $180 billion, more than half from sales of packaged products and the rest from custom programming. Large companies include Microsoft, Oracle, CA, and Electronic Arts. The packaged products segment is concentrated: the 50 largest companies hold nearly 70 percent of the market. The custom programming segment is highly fragmented.
Large companies often are involved in both publishing and programming services, while smaller programming firms typically sell their products to publishers.
Competitive Landscape
The US economy heavily influences business spending for software products. The success of programming companies depends heavily on strong technical expertise. The success of packaged-software companies depends on technical expertise and good marketing. Small software companies compete mainly by developing packaged products in small niches or producing custom products for individuals. Many small companies form alliances with larger ones to market their products.
The packaged software industry is capital-intensive: average annual revenue per worker is more than $400,000. The custom programming industry is labor-intensive: average annual revenue per worker is about $115,000.
Products, Operations & Technology
Packaged software products are generally small programs that can be installed and operated by the customer without assistance, such as an operating system. Business-oriented packaged products may cost thousands of dollars, but most consumer-oriented products cost in the low to mid-hundreds. Custom programming either creates a new software product from scratch, or, more typically, customizes an existing software product for customer use. Custom program products can be very large, costing millions of dollars, and may require special training and technical support.
Software comes in three major types: operating systems, like Windows, UNIX, and Linux, that allow computers to perform basic functions; user applications, like word processing, spreadsheets, and games, that run on individual computers; and network applications, like e-mail, Internet Web browsers, and sophisticated signal switching programs that allow computers to communicate with each other. More than 100 operating systems are in common use, most of which are proprietary products of computer manufacturers like IBM. User applications, of which there are tens of thousands, form the largest segment of the market, but the network software segment is growing most rapidly, due to the popularity of the Internet.
Computer programs are a series of instructions to a computer, written as sentences in a variety of computer languages. Each sentence is called a "line of code." A complicated software application may contain hundreds of thousands (even millions) of lines of code, usually produced in chunks (modules or subroutines) that work together. Inevitably, such complicated, lengthy programs contain errors, or "bugs."
Both packaged software products and custom programming are typically produced by teams of programmers who design the structure of a product and write the individual lines of code. The rough draft of a new program is called the alpha version. The beta version is an almost-final version that is tested by actual users to find and correct additional bugs. The release version of most software still contains bugs that aren't apparent until the software is used by many people. Typically, programmers begin work on a new version of a product as soon as the current version is released for sale. The complexity of most software requires that software companies provide technical assistance to users, often an expensive operation for small companies.
Software is written in various languages like COBOL, C++, Visual Basic, SQL, Java, HTML, XML, and many others, that translate complicated human concepts like a sentence, a picture, or a mathematical operation into machine code, a succession of 1s and 0s that is the actual language of computers. Different software languages are most effective for different types of applications. For example, SQL is a language suitable for manipulating large databases. Software producers often create products to run on a particular "platform," a combination of operating system and computer configuration.

