Software Industry The software industry includes businesses for development, maintenance and publication of software that are using different business models, mainly either “license/maintenance based” (On Premise) or “cloud based” (such as Saas, PaaS, IaaS etc etc) . The industry also includes software services, such as training, documentation, and consulting. History The word “software” had been coined as a prank by at least 1953, but did not appear in print until the 1960s.  Before this time, computers were programmed either by customers, or the few commercial computer vendors of the time, such as UNIVAC and IBM.
The first company founded to provide software products and services was Computer Usage Company in 1955.  The software industry expanded in the early 1960s, almost immediately after computers were first sold in mass-produced quantities. Universities, government, and business customers created a demand for software. Many of these programs were written in-house by full-time staff programmers. Some were distributed freely between users of a particular machine for no charge. Others were done on a commercial basis, and other firms such as Computer Sciences Corporation (founded in 1959) started to grow.
The computer/hardware makers started bundling operating systems, systems software and programming environments with their machines. When Digital Equipment Corporation (DEC) brought a relatively low-priced microcomputer to market, it brought computing within reach of many more companies and universities worldwide, and it spawned great innovation in terms of new, powerful programming languages and methodologies. New software was built for microcomputers, so other manufacturers including IBM, followed DEC’s example quickly, resulting in the IBM AS/400 amongst others.
The industry expanded greatly with the rise of the personal computer (“PC”) in the mid-1970s, which brought computing to the desktop of the office worker. In subsequent years, it also created a growing market for games, applications, and utilities. DOS, Microsoft’s first operating system product, was the dominant operating system at the time. In the early years of the 21st century, another successful business model has arisen for hosted software, called software-as-a-service, or SaaS; this was at least the third time this model had been attempted.
From the point of view of producers of some proprietary software, SaaS reduces the concerns about unauthorized copying, since it can only be accessed through the Web, and by definition no client software is loaded onto the end user’s PC. Software sectors There are several types of businesses in the software industry. Infrastructure software, including operating systems, middleware, and databases, is made by companies and organisations such as Microsoft, Google, IBM, SAP AG, EMC and Oracle.
Enterprise software, the software that automates business processes in finance, production, logistics, sales and marketing, is made by Oracle, SAP AG, Sage and Infor. Security software is made by the likes of ManageEngine Symantec, Trend Micro and Kaspersky. Several industry-specific software makers are also among the largest software companies in the world: IBM and CA Technologies for IBM mainframe environments; SunGard, making software for banks, BlackBoard making software for schools, and companies like Qualcomm or CyberVision making software for telecom companies Size of the industry.
According to market researcher DataMonitor, the size of the worldwide software industry in 2008 was US$303. 8 billion, an increase of 6. 5% compared to 2007. Americas account for 42. 6% of the global software market’s value. Mergers and acquisitions The software industry has been subject to a high degree of consolidation over the past couple of decades. From 1988 to 2010, 41,136 mergers and acquisitions have been announced with a total known value of US$1,451 billion. The highest number and value of deals was set in 2000 during the high times of the dot-com bubble with 6,757 transactions valued at $447 billion.
In 2010, 1,628 deals were announced valued at $49 billion Business models within the software industry Business models of software companies have been widely discussed. Network effects in software ecosystems, networks of companies, and their customers are an important element in the strategy of software companies Evaluating software vendors When an organization is looking for software vendors, the following things can be considered. 1. Core competency of the vendor – For example, when an organization is looking for ERP implementation vendors it would certainly be beneficial to go for vendors who specialize in these projects.
However, giant IT companies could be an exception as they specialize in multiple technologies. 2. Number of years in business – This helps organization understand the credibility of the business. 3. Stock market listing – Important if the size of the project is huge as a listed software vendor is more likely to have better governance processes 4. Overall and available vendor headcount – This can help organizations to decide how their resources requirements can be met by the software vendor. 5. Vendor credentials – The software vendor’s prior experience in similar projects can increase the confidence of the organization
6.Industry Certifications/awards/Alliance partners – Industry recognition is another parameter for evaluating the software vendors 7. Local and global offices – While local office is important for any meetings, follow ups etc. global offices show the reach of the vendor 8. Project management/tracking processes – More robust the processes are, better will be quality of the software product 9. Lead times to start development – The vendor might have a lot of projects on hand already and it is important for an organization to know the lead times.
10.Core solution and solution options – The software vendor should be made to make a presentation to showcase vendor’s understanding of the requirements 11. Development time and costs – The estimates for efforts, resources, schedule and costs (includes fees and expenses) 12. Non functional requirements – The vendor’s ability to meet non functional requirements 13. Warranty support agreements – For post production break fixes 14. Post go live – Maintenance activities support costs These are just some of the typical parameters used for evaluating the software vendors for different projects.
Depending on the specific project requirements, an organization can add/modify the parameters. Software Computer software, or just software, is any set of machine-readable instructions (most often in the form of a computer program) that directs a computer’s processor to perform specific operations. The term is used to contrast with computer hardware, the physical objects (processor and related devices) that carry out the instructions. Hardware and software require each other; neither has any value without the other.
Firmware is software that has been permanently stored in hardware (specifically in non-volatile memory). It thus has qualities of both software and hardware. Software is a general term. It can refer to all computer instructions in general or to any specific set of computer instructions. It is inclusive of both machine instructions (the binary code that the processor understands) and source code (more human-understandable instructions that must be rendered into machine code by compilers or interpreters before being executed).
On most computer platforms, software can be grouped into a few broad categories: * System software is the basic software needed for a computer to operate (most notably the operating system). * Application software is all the software that uses the computer system to perform useful work beyond the operation of the computer itself. * Embedded software resides as firmware within embedded systems, devices dedicated to a single use. In that context there is no clear distinction between the system and application software. Software refers to one or more computer programs and data held in the storage of the computer.
In other words, software is a set of programs, procedures, algorithms and its documentation concerned with the operation of a data processing system. Program software performs the function of the program it implements, either by directly providing instructions to the digital electronics or by serving as input to another piece of software. The term was coined to contrast to the term hardware (meaning physical devices). In contrast to hardware, software “cannot be touched”. Software is also sometimes used in a more narrow sense, meaning application software only.
Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records. Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state.
Programs are an ordered sequence of instructions for changing the state of the computer in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet.
Assembly language must be assembled into object code via an assembler. Types of software A layer structure showing where the operating system software and application software are situated while running on a typical desktop computer Software includes all the various forms and roles that digitally stored data may have and play in a computer (or similar system), regardless of whether the data is used as code for a CPU, or other interpreter, or whether it represents other kinds of information.
Software thus encompasses a wide array of products that may be developed using different techniques such as ordinary programming languages, scripting languages, microcode, or an FPGA configuration. The types of software include web pages developed in languages and frameworks like HTML, PHP, Perl, JSP, ASP. NET, XML, and desktop applications like OpenOffice. org, Microsoft Word developed in languages like C, C++, Objective-C, Java, C#, or Smalltalk. Application software usually runs on an underlying software operating systems such as Linux or Microsoft Windows.
Software (or firmware) is also used in video games and for the configurable parts of the logic systems of automobiles, televisions, and other consumer electronics. Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred System software System software is computer software designed to operate the computer hardware, to provide basic functionality, and to provide a platform for running application software.
 System software includes device drivers, operating systems, servers, utilities, and window systems. System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer’s resources such as memory and processor time in a safe and stable manner.
Programming software Main article: Programming tool Programming software include tools in the form of programs or applications that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs such as compilers, debuggers, interpreters, linkers, and text editors, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object.
Programming tools are intended to assist a programmer in writing computer programs, and they may be combined in an integrated development environment (IDE) to more easily manage all of these functions List of the largest software companies The Forbes Global 2000 is an annual ranking of the top 2000 public companies in the world by Forbes magazine, based on a mix of four metrics: sales, profit, assets and market value. The top 10 companies in the 2012 list for the “Software & Programming” industry are: 1. Microsoft 2. Oracle 3. SAP 4. Symantec 5. CA 6. NTT Data 7. Intuit 8. Amadeus IT 9. Check Point 10. Adobe Systems