Once upon a time, long, long ago, DysfunctoSoft had a simple little price list. It could be described in a paragraph. Buy our server and pay $XX,XXX per machine. Buy our companion client-side tool and pay $YYY per instance. Simple.
And then came the inevitable. Customer A started whining: DysfunctoSoft, we like your product. But it is too full-featured for us. We don’t want to pay for functionality we won’t use. We want to pay less.
Instead of recognizing the whining as a simple price negotiation tactic, what do you think the big cheeses of DysfunctoSoft decided to do? Did they tell the sales person to do a better job of selling the product that actually existed? Did they attempt "value pricing" or offer Customer A a discount so the price would fit the project’s budget?
No. Of course not. Because those options are just too frakin’ simple. And too cheap. You see, DysfunctoSoft always likes to do things the arcane way. The expensive way. The way that is most likely to confuse the fuck out of customers and the sales people and pretty much everyone. The way that is most likely to increase the cost of BOTH sales AND product development by tenfold.
So what did they do? The big cheeses of DysfunctoSoft ordained that a NEW product be created, a variation on the original. This NEW product shall have less functionality than the original, and shall be offered at a lower price.
And it worked. The deal closed.
And then the very next customer, Customer B, said: You know what, we like your stuff, DysfunctoSoft. But the original product is too much for us, and product variation A doesn’t do enough. We need something in between and we don’t want to pay for functionality we don’t use.
And so the big cheeses met on Mount Olympus yet again. In between sips of ambrosia, they commanded that Yet Another Product be created, against the strenuous objections of the predecessor to the Cranky Product Manager. Product B would have less functionality than the original and more than Product Variant A, and offered at a price in between the two. Customer B liked. And Customer B bought.
And you can see where this is going, right?
N years later, DysfunctoSoft now has product variations A through ZZZ. All slight variations of each other. Each has a moniker meant to distinguish it from the rest, but instead it serves to confuse the frig out of everyone: "Lite", "Starter", "Ultimate", "Standard", "Enterprise", "Developer", "Advanced", "Professional", "Professional Plus", "Basic", "Premier", "Express", "Personal", "On-Demand", "Workgroup", "Home", "Business", "Desktop", "Premium", "Basic N", "Unlimited", "Datacenter", "Foundation", "Framework", "Mobile", "Community"… The list goes on and on. Naturally, there is no consistency in the naming. That would make too much sense. What the frig do all these terms mean anyway? Especially when the "Unlimited" and "Ultimate" variants aren’t as powerful as the "Enterprise" or "Pro Plus" or whatever. And how the hell are the Lite and Basic and Express and Starter editions different?
Not only that, each of these products can be licensed in a myriad of ways: per instance, per customer site, per server, per processor, per concurrent user, per named user… It is difficult to think of a licensing method that DysfunctoSoft does not support.
The price list is now enormous, pushing 200 pages or so. No one can understand it. Especially not Sales Droids. They join DysfunctoSoft and then quit/get fired within a year. And then it’s time to train a new Droid. It takes them MONTHS to finally internalize this nutso product line architecture. Without their guidance, customers can’t understand what to buy or how much it costs. Forget a consumer sale, a self-service sale, or one driven by website research.
Product Development is getting crushed underneath the weight of all these product variations. Although they all largely use the same code base, there are significant differences that have impact throughout the behavior of the products.
And because the names are hard coded into the products, manuals and marketing collateral, despite a concerted effort NOT to hard code them, it is now impossible to change the names to more sensible alternatives.
The QA effort required to test all these products on all the support platforms has gone through the roof. It seems that for any new release 60% of the effort goes into making the licensing more intricate and trying to automate this crazy product variation structure via license keys or elaborate build systems.
What else? Support costs have skyrocketed. As have documentation and training costs. Marketing costs too. The Cranky Product Manager is sure the effects do not stop there. Oh what joy it must be to handle the accounting for such a needlessly massive product line. Or the financial forecasting. The auditors probably have a grand old time billing DysfunctoSoft after sifting through its cornucopia of transactions attributable to each product and licensing option combination.
The Cranky Product Manager truly, honestly believes that DysfunctoSoft’s latest troubles are primarily due to the explosion of products that are not truly differentiated. It’s treading water, trying to keep its head above the continually crushing waves of a massive code base. There is no time to actually create value for your customers when you can barely maintain what you already have.
The Cranky Product Manager knows that DysfunctoSoft is hardly alone. Even companies like Proctor & Gamble are lured to madness by the siren of product proliferation and endless line extensions, paying dearly in the end for their lack of discipline. Every software company the CPM has ever worked with has suffered the same illness. But those companies were still in their early years, suffering from Stage 1 or Stage 2 Product Proliferation. Alas, DysfunctoSoft has an older product line, and is now suffering Stage 4 Product Proliferation: malignant, inoperable and infecting all organs in the body.
Perhaps it is time for the Cranky Product Manager to start working on her resume.