“Change is the only constant.” – Heraclitus (Greek philosopher)
Consumer behavior has changed across all areas of life, from how we work to how we shop to how we entertain ourselves. Technology has become a competitive differentiator and has helped evolve the consumer buying behavior. Customer mindset has evolved from a ‘fix it for me’ to ‘will fix it myself’, and hence, the increase in consumption of pay-per-use models or subscriptions. This changing buyer mindset along with tech innovations and competitive disruptions have accelerated the commoditization of software products and platforms.
Commodification is evolving continuously, and table stakes are constantly getting re-defined across software products and platforms. Fast paced innovation within one’s own products and platforms is being replicated at a faster pace in the competitive landscape resulting in innovation eroding the topline; hence, keeping up with this trend is not a viable solution in the long run. To top it off, in a commoditized market the same set of building block foundations are being leveraged time and again to create a differentiation, which does not necessarily just depend on the building block technology advancements and feature innovations alone. Then what essentially should be the right ingredient for driving differentiation and sustenance in a multi-tenant product and platform space? In this article, I will outline the ingredients needed to whip up a recipe for a successful subscription-based product and platform lifecycle management.
Necessary characteristics of a product or platform for the subscription economy
Tien Tzuo, one of the veterans in the SaaS space and a thought leader in the subscription economy has identified nine key aspects of a success of subscription business models – Price, Acquire, Bill, Collect, Nurture, Account, Measure, Iterate and Scale. As we all know, subscription products go for volume pricing strategy while building a customer-centric business model. The success drivers are dependent on how the nine key aspects are being adapted across the product value chain.
Products and platforms that cater to a subscription economy cannot survive on innovation-driven differentiation alone, though the culture and frequency of innovation will bring in a level of competitive differentiation, it is not a sustainable model. The building blocks of such platforms and products should be based on the principles of availability, predictability (deterministic), scalability, elasticity, testability, maintainability, flexibility, modularity and autonomy.
The core product or platform is the digital backbone for driving a subscription economy, and the right foundation needs to be applied right from the very beginning of an engineering lifecycle.
Building blocks of an Engineering Lifecycle
Scale – Where and how does it apply to engineering a product? As business objectives often benefit from volume pricing, the fundamental aspect to be embraced right from product architecture and design is the assurance of scale for supporting the volume model. The product or platform is expected to scale infinitely to cater to the infinite volume build-up on the demand side.
How do we ensure this in a product architecture?
Digital products must scale on two fronts- one on the computing infrastructure and the other on the software component infrastructure. With cloud computing offering infinite scalability on the computing infrastructure front, deployment of a product on cloud platforms will bring in infinite (ideal scenario) scalability and elasticity required for such a computing infrastructure, thus, enabling digital product scaling. On top of such an infinite scale-assuring computing platform, how we can ensure that each and every software component and custom product module that we engineer leveraging these software components, are going to scale infinitely? This is where the cloud native development and engineering approach come into play for ensuring similar model of unconstrained scalability on the software side as well.
What is cloud native development and how is it any different from the traditional application development?
Each and every component of the software technology stack in cloud native development is ideally within the cloud environment ensuring infinite scalability in the best possible performance optimized way. Cloud native development leverages managed software infrastructure across application tracks. All hyperscale cloud platforms and “as-a-service” providers (e.g. caching-db-as-a-service, database-as-a-service, message-queue-as-a-service) are offering all the essential software technology building blocks as managed services. In a cloud native development paradigm, we focus at the micro-level services segmentation of the core components of a product and architecture as distributed micro services architecture rather than worrying about any scalability or availability assurance of the infrastructure components across tiers. These managed software components leverage the availability, the scalability and the elasticity of cloud’s computing infrastructure and extend them on to their offerings as well. Therefore, managed services are highly critical and essential for any cloud native products placed in a commoditized subscription economy.
Customizing software components to reflect behavior mandated for a product in a multi-tenant subscription economy
We are all aware that multitenancy and on-demand scalability with elasticity should be the prime characteristics of subscription products that are cloud natives. For architecting such products, a domain-driven approach must be followed where, the domain will be representing the business model context of the product and subdomain will be the core functional business unit within the product domain. Each subdomain will be mapped to bounded contexts and will be translating to autonomous functional models. Micro services architecture is the architectural pattern that emerges from a domain-driven design and needs to be followed in the architectural design for multi-tenant product playing the volume game in the subscription economy. Beyond independent deployment and scaling of services that are autonomous, micro services also bring in fault isolation and maintainability by incorporating service-specific instrumentation for testability, and maintainability. Micro services add flexibility to the tech stack. Cloud native development and micro services architecture also enables faster TTM through distributed development teams and deployment.
Another crucial aspect is continuous monitoring, testing, delivery, deployment of software components. Embracing the factory model in the form of continuous integration, delivery and deployment would be ensuring process performance, velocity and quality predictability of engineering and production outcomes. Here, the reference of the factory model shouldn’t be confining to the adoption of DevOps at scale alone from a traditional CI/CD angle, but rather the focus should be to automate everything across the 360-degree product lifecycle. Automation should be extended to distribute decision intelligence as AI ops across the product lifecycle for fine tuning the precision and the stability of cloud native products.
Customers of cloud native products or platforms expect experience consumption beyond a set of features and traditional services around those features. Hence, cloud native products should be built with an ‘automation everywhere’ approach to deliver Experience Level Agreement (XLA) over traditional Service Level Agreement (SLA). While ensuring product availability and predictable service delivery with precision, product architecture and engineering should also be factored in data modeling and insights extraction to empower sales, marketing, pricing and CARE service portfolios with real-time recommendations on the customer context and intent. This will bring in predictability and control on pricing, customer acquisition and retention, billing with pricing and discount elasticity, nurturing customer bonding and measurement and control over GTM metrics.
To conclude, cloud native is changing the way we think about developing, deploying and operating software products to embrace rapid change, large scale, and resilience. The success of any organization making the switch to cloud native will depend more on adopting and propagating it within the organization than the actual move to cloud native.
Subscribe to blog