When you couple the rapid development software cycles that exist today [particularly in OSS] with the ease of movement from product to product [loose coupling], you are faced with a Product Lifecycle curve which has a very short “mature” phase and a very long “maintenance tail”.
Successful software companies in today’s environment use Sticky Services more and more to retain customers and thereby increase or flatten out the “mature” portion of the Product Lifecycle Curve. This enables them to attain profitably and most importantly build their brand.
Increasingly for software companies, Brand loyalty and recognition are more important that the actual products themselves in achieving profitability. The methodology used by many has become “release early and often” rather than waiting for product maturity and extensive testing phases before release. Yes, it is important for the product to work well, and no, it is not important to deliver all services to the customer as one time. I would argue that it is actually undesirable.
The goal, through the use of Sticky Services is to give your customer the ability to effectively switch to a higher level of functionality and product services with little to no incremental cost. Add the services or functionality in small rapid increments and the customer will find adoption painless, with a very small learning curve. Over time, the customer will achieve expert user status because of the incremental learning on use of the features.
The customer winds up being a loyal user and possibly even a contributor. They become accustomed to having the versatility of having a rich set of features to choose from and at the same time be intimately familiar with product functionality.
This provides for a rich customer experience, which in turn is changing the software is licensed, delivered, and serviced.