Business Models for Software Developers

Recently I’ve been reading Steve Blank’s articles on startups. One of the principles that Steve espouses is that a startup is an organization formed for the purpose of finding a profitable business model. He points out that most business plans are not successful, and the successful startup is ready to quickly iterate, adapt the plan to change, and try again. Anyone familiar with agile development methodologies will quickly see many parallels in his approach to the business of startups. This got me thinking about the various models and approaches for software development today. There are three primary business models for software developers: Consulting, Internal (IT) development, and commercial (external) development.

Consulting

In consulting, the software developer finds someone with a problem and creates software to address that problem. In most cases, the software is custom tailored for the customer and typically the entire IP (intellectual property, such as copyrights) is sold to the customer. This is the least cost efficient form of software development because there is no reuse nor amortization of cost for the development of the software. Software produced as a consulting effort typically costs tens if not hundreds of thousands of dollars, and often seems rather lackluster in comparison to many commercial offerings. The advantage of custom software is that it is, like a tailored suit, customized to the customer’s requirements. Unfortunately, customers aren’t often skilled application designers and can end up asking for rather unusable software, and a unskilled consultant won’t be able to guide them towards a better solution.

Internal (IT) Software Development

Much like consulting, internal software development involves writing for customers (other departments within the company such as HR, Marketing, and Sales) but is typically full time employment. Companies may look at the cost of software projects and decide it is more economical to hire a group of developers and produce the software themselves. It shares most of the disadvantages of consulting, but has the advantage of being the target of most development tools and methodologies. Virtually every company with more than a few hundred employees has some degree of internal software development, and most development tools (Visual Studio, Eclipse, NetBeans) and methodologies (Agile, Spiral, Scrum, XP) target internal development scenarios.

Commercial Software Development

Commercial software is sold by companies often called Independent Software Vendors (ISVs) or “third party” vendors, and is referred to as a Commercial Off-The-Shelf (COTS) product. The entire purpose of an ISV is to create, market, and sell software. Unlike consulting and internal software, the idea behind commercial software is that you can write software once and sell the same product to multiple customers, each of whom share a small portion of the overall development cost. Because the cost of development is shared by all, tremendous resources can be put into creating commercial software, and it can be sold at a small fraction of the cost of development to anyone who wants it. Because many customers buy the same software, much greater investments are justified in its creation and maintenance. A disadvantage of commercial software is that the buyer generally has to adapt to conform to the software, rather than the software to the buyer. For example, if you buy QuickBooks, your bookkeeping will be largely dictated by how QuickBooks operates. This is often considered an acceptable trade-off, since QuickBooks costs a few hundred dollars, and having a custom solution implemented would cost hundreds of thousands of dollars.

Commercial Software: Markets

Compared to consulting and internal development in which there is a single primary customer (the company paying for the software), commercial software exists in large markets. These markets can be broadly divided into two categories: Horizontal and Vertical. These categories define the overall potential customer base any software can have.

Horizontal software applies broadly across disciplines and industries. Unsurprisingly, the largest and most profitable software companies tend to provide software to horizontal markets. Some of the most common examples are Microsoft Windows and Office (Word, PowerPoint, Excel, Access, Outlook). Other examples include WinZip, VMware, and Firefox. Being sold to a large number of people allows vendors to price the software at relatively low price points, while earning a potentially tremendous amount of money to support research and development. For example, Microsoft’s Office division sells products, typically in the range of hundreds of dollars per seat, yet earns $16 to $20 billion in revenue. Apple’s recently released iWork software (at $10 per app) is expected to earn $40 million annually, comparable to Google Docs.

Vertical markets are specific industries or customers with a common set of needs. By definition, vertical markets are slices of the overall horizontal market. For example, dentists, restaurants, retailers, doctors, lawyers, and developers are vertical markets. Software for these markets would be dental scheduling software, point-of-sale systems, health record databases, and software development environments and control libraries. Vertical market software tends to priced considerably higher than Horizontal market software due to the smaller number of potential and actual customers. It’s not uncommon to see a particular practice management application cost $30,000 up front, and maintenance fees anywhere from 20 to 50% annually.

In practice, there is a continuum between horizontal and vertical markets. Windows would be on the horizontal extreme, software that literally could be applied to anyone in any possible business. Adobe Photoshop would also be considered a horizontal, but you could find many examples of companies without any need for Photoshop. On the vertical side, Araxis Merge is definitely targeted towards the software developer vertical, while dental scheduling software is clearly to the extreme vertical side. Also, horizontal software markets include all possible vertical markets, and so horizontals are necessarily much larger markets.

Another facet of commercial software markets is the type of customer expected to buy the software. Customers can be classified broadly into consumers (individuals) and companies (organizations), and the number of potential customers varies with each. Like vertical and horizontal markets, this translates directly into the number of customers available to amortize the cost of developing the software. Here’s an example breakdown of types of customers:

  • Consumer
  • Prosumer
  • Technical user
  • Small business
  • SMB (Small and Medium Business)
  • Enterprise

Some software appeals to all types of consumer in all markets (Microsoft Windows, for example). Because of the sheer market size, Microsoft can afford to spend literally billions of dollars on research and development of Windows and Office, and sell them for a few hundred dollars per unit. If you look at enterprise focused software like Remedy (IT service desk management, if you didn’t know), it typically only appeals to enterprise customers, and with a limited number of those, the costs per unit skyrocket, and typically involve a long and expensive implementation period in which the software is customized to the particular customer’s environment.

If you have an Enterprise:Vertical plan, your total customer base will only ever number in the hundreds (one could argue that your potential customers are exactly the Fortune 500). If you have a Consumer-Enterprise:Horizontal plan, your potential customer base is in the hundred-millions. Broad horizontal markets are extremely attractive for this reason, and so they are heavily defended, and if you come up with something interesting, competition will be fierce quickly.

In the search for a profitable business model for a software technology company (arguably any company), understanding the potential and actual markets is critical. If you have a great idea for some software software solution, how many customer are even possible? How many are likely? What will you have to charge, and how much will is cost to build the software? Software startups fail at a rate of greater than 90%. Answering simple questions like this before you write a single line of code just might be worth it. Perhaps more importantly, what kind of market and development do you want to do? Because if you don’t even want to do it, it’s not likely you will succeed.