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!
Get Information Now
Rest assured, your information will not be shared with anyone else (see our privacy policy for details).
Industry Overview
Computer software production in the US 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, Computer Associates, and Electronic Arts. The packaged products segment is concentrated: the 50 largest companies hold about 70 percent of the market. The custom programming segment is highly fragmented.
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.
Products, Operations & Technology
Packaged software products are generally small programs that can be installed and operated by the customer without assistance. Business-oriented packaged products may cost up to $10,000, but most consumer-oriented products cost less than $500. 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, and may require special training and technical support.
Software is of 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 email, Internet Web browsers, and sophisticated signal switching programs that allow computers to communicate with each other. About 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.
