Software business is said to be really scalable. That is, the bulk of the cost is spent on development is essentially fixed, meaning it doesn’t grow with the number of customers served. The additional cost of serving additional customer is negligible compared to the development cost. However, many times that only seems to work for single customer segment. If a software company is serving multiple segments, it is likely need to spend money on multiple software developments in the same category.

Photo by Matti Piiroinen

In software development, there’s the DRY principle: Don’t Repeat Yourself. However, if a company makes accounting software, for example, for different segments, say large enterprise and small/medium enterprise, then they are forced to repeat the same development attempt for each segment. Sure, some features may be trimmed for some segments, but there’s repetition in the development of the core features.

Why not make single parameterised software per category to cater to different customer segments and just turn on/off certain features depending on which segment is being served? Well, it seems there are non-technological aspects that prevent this from being a practical solution in the market:

  1. The on-going cost of maintaining/enhancing the software may not match the revenue extracted from lower-end customer segments. With single software strategy, the cost of maintaining/enhancing the software will be the same for higher-end as well as lower-end customer segments. But the revenue from those different segments are different, hence profitability of the lower-end division may be hurt and its calculation inaccurate
  2. To make this system works, the software company will practically introduce tiered discounts for each customer segments. But once the customers from the higher-end segments know that what’s being offered to the lower-end segments are exactly the same with what’s being offered to them and that the lower-end segments get bigger discount, the higher-end segment will ask for bigger discount, wiping out the targeted profitability for the higher-end segments
  3. Competitors may try to spread rumors that the software was actually designed for lower-end segments, but later on expanded to reach higher-end segments, even though the truth is the opposite

For the above reasons and more, single software to serve multiple segments may not work. Not that enterprise software companies didn’t try. They didn’t use parameterised approach though. SAP uses template-based implementation with its All-in-One offering. Oracle uses simplified set up wizard with its Business Accelerators initiative. Microsoft just simply doesn’t attempt this. They just buy multiple ERP companies, each designated to serve different segment(s). Interestingly, having separate software for each segment is the strategy that seems to be working better, despite the apparent duplication of efforts in software development. SAP Business One, which is a separate ERP product designed for smaller companies, reaches more lower-end customers than its All-in-One. With Microsoft, they are the bigger gorillas in the small/medium enterprise ERP market