If you are working in a software company, chances are that you have worked on at least one software project. Ask yourself a question – “What did you build? Did you build program, software, application, service, solution or a product?” Are all these terms same or different? If they are same, then why so many terms? If different, does the distinction really matter? Does this fundamental understanding impact the way you do software business?
Software is built by people of different abilities and expertise. There are developers, testers, designers, architects, managers, etc. all of them involved in building a software. Words like software, application, service, solution or product are literally taken for granted and used interchangeably as if they imply one and the same thing. Nobody seems to care about it either.
If they are one and the same thing then, why there are so many different terms. Is it just because computer scientist wanted to increase the vocabulary of English language or implement function overloading to English vocab. Certainly, they do not have time for this.
To answer in a simple word, all these terminologies are different and the way they are interpreted can have very significant impact on your business vision and strategy. But before discussing the business impact, it is necessary to correctly understand them. We shall trace the roots in the beginning.
Starting of computers
In the beginning, people were unaware when computers arrived. They had no clue as to what this box is and what it is capable of. In fact, nobody had any clue. To introduce them, simple analogy of hardware and software was considered as a good starting point. Perhaps, this analogy was brought from economics. In economics, there are two types of good, viz. tangible goods and intangible goods. Tangible goods (hardware, food, building, etc.) is something that you can touch with your hand and feel their physical presence. Intangible goods (software, bank account, insurance policy, etc.) are something that you cannot touch physically but can be perceived indirectly. This line of thought gave people rough idea that computer is like a human i.e. it has physical body and something like human mind that everybody knows exists but nobody has seen it.
When more sophisticated programs like operating system and device drivers were developed, further refinement was necessary to understand software and thus came the classification as system software and application software. System software is the one that deals with computer hardware and is not directly consumed by end-user while application software is a real productivity tool directly consumed by end-users. Examples of application software are accounting software, graphics software, word processors, media players, etc.
In general, computers were first available for use in early 50s. At that time, consumer segment of the market that includes individual end-user, small and medium groups was lacking interest and involvement in computers for obvious reasons. First, it was the idea of computing and what it can do for you. As said earlier, people had not much knowledge about them. Second, the cost of computer was too high for a single person to even try out. Third, there were no true general purpose microcomputers to put on them on desk. This kept them away for relatively large time. It is self-evident from the fact that thought first home computers were invented in early 70s by Xerox PARC, HP, IBM it took them so many years later with Microsoft DOS to truly embrace personal computers making the common household accessory. Needless to say, this was most important event in computer history and Microsoft’s biggest contribution to the world of computers.
However, on the other hand, enterprise segment started to venture into computers barely a decade computers were first available. Enterprise segment includes big players like banks, organizations, governments, etc. To give an early example, few Swiss banks and Bank of America started with computers for their accounting needs somewhere in late 50s. Governments and enterprises had power and money to invest in computers. There was very little or no IT infrastructure and it was the time to do so.
For any business to survive, it needs customers and clients that generate business and revenue for them. Computer business is no exception. The big players were ready to invest and thus it formed the basis of business at that time.
Earlier nature of business
There is no common notion about the naming for this early business. Thus, you call it a software business, IT business or whatever you name it. But, there is one particular thing about this business that should be noted. It was not possible to reuse and deliver the same software developed for one client to another client. Every organization had different setup, unique requirements. The reusability, at the best, was at reusable coding pattern and little bit at domain level, but no reusability at program level. Each software or application was custom built. It was designed and tested exclusively for specific environment.
Right from the beginning, the scope of these applications was very huge spanning over many years of active development. This problem was compounded even more by the fact that software development was following waterfall based process and there was no perception of incremental development. Because of long duration of project execution, both parties, client and vendor would enter into contract that would protect them from possible future conflict like protecting vendor’s effort and resource utilization if customer backs out or protecting customer if vendor does not deliver quality software on time leading to revenue loss for customer.
This early business thus defined the concept of software application or simple application as a software developed depending on a specific customer requirement. The earlier analogy of categorizing software as system software and application software still holds but provide very little and raw information about the nature of software from business perspective.
Rise of consumer segment and a quest for product
Over the period of time, significant technological advancement made computers very much affordable. Plus, there was increasing awareness about the subject. Computer soon started becoming more personal tool for yielding better productivity. Expectations of end-users increased and they started asking what more it can provide. This lead to emergence of new business model. The idea was rather simple – Build a software for masses performing some specialized task for user with an additional requirement that it should be generic enough to be installed on most operating systems and hardware.
This business model triggered so many revolutions in terms of software processes and its economies. To start with, software for public consumption means cut-throat competition (it does not take much to steal idea and start your own implementation) and time to market should be as less as possible. Traditional waterfall model of development will not suffice. Incremental methodologies like spiral model, rapid application development (RAD), prototyping and later agile techniques were used for building a software. In terms of economy, this business model was very different from traditional business model for consumer economy. For example, in case of car manufacturing, each new car adds to overall cost of development as it needs raw material, labor, power, etc. But in case of software, making one or million copies of a software costs about the same. Each copy sold after expected sales is 100% profit. This economic consideration caused more inflows into computer world making it very profitable money making machine for investors and good research opportunity for software corporations. On design front, to attract more customers for the software, dedicated design teams were established that would create good design and overall experience for customers. Software was no longer a purely engineering effort. It was owned by no one in particular but at the same time owned by every Tom, Dick, and Harry.
When we compare this type of software with traditional enterprise driven application, then they are completely different. There was competition amongst vendors for getting enterprise application contract, but it was not cut-throat. There is quite certainty in the enterprise business while consumer based business has very little security. If consumer software was not evolving with new features continuously, competition would eat the market share. Enterprise application will run in certain fixed environment where changes and updates are not frequent. The application does not require explicit marketing or very user friendly documentation. But a consumer software demands active marketing and very good documentation. Users will try to run the software in the ways it was never intended to run, in very diverse environment installed along with other software.
Clearly the traditional definition of software application is not appropriate for such software since software here is one part of bigger concern. Taking the cues from other businesses, the notion of product came into existence in software world. Quoting from Wikipedia, a software product is typically a single application or suite of applications built by a software company to be used by many customers, businesses or consumers.
Modern concept of product
So far, we have just discussed about transition from software application to software product. But the world has moved one step further. It has now removed the word software from software product leaving only product as a single word. What it means is that product is no more a software only thing. Consider the example of iPod. Basically, iPod is a product that consists of both hardware and software. When a consumer is buying an iPod, he is not interested in underlying processor or RAM; nor does he care about iOS operating system and the functionalities it provides. He is interested in knowing what iPod can do and what problems it can solve for him. In fact, when Steve Jobs introduced iPod back in 2002, he said something like – “Now you can store up to 1000 songs in this device which you can play anytime anywhere.” There was no mention of underlying software or hardware. And that is what is called as product thinking. In terms of definition, product thinking is a strategy where business thinks about solution as a unified product rather than calling it as a combination of two separate thing - software and hardware.
Today, new technology trends like mobility, cloud computing, etc. are constantly redefining the business outlook. For example, in terms of mobile, the word application has newer meaning. Cloud is selling or more appropriately renting hardware as a service. With every disruption, the boundaries between these terminologies are getting distinct yet blurry. In the next part of this series, we shall continue to redefine the concept of product along with its relation to service. We shall also discover how solution marketing is affecting product development strategies and how it differs for small players and big enterprises.