Large enterprises are often terribly inefficient. Software companies are no exception. As a company’s product portfolio expands, so does the potential for redundancies and inefficiencies in what is developed. Acquisitions bring forth new technology stacks, and ‘re-platforming’ typically delays an innovation roadmap for many quarters. Concepts around master data, integration, and other key processes can be inconsistent and may overlap, or can even be re-produced and re-imagined repeatedly.
What if internal development teams could be corralled to eliminate duplicate effort, realize massive economies of scale, and increase efficiency? What if this efficiency could result in lower development costs, quicker times to market, and a burgeoning ecosystem of work that operationalizes and monetizes much of your core intellectual property?
Microservices —a modern architectural style in use by a growing number of large software companies— is the proven way forward to meet these needs. Microservices are small, self-contained services that can be brought together to create a business or consumer application. Self-organizing and autonomous teams can easily build out needed application features by leveraging services produced by other teams. Updates can be rapidly pushed out at a granular level with little disruption to customers. Spotting the services and features that are being used across the enterprise versus ones that should be retired also becomes a simpler task.
By building robust sets of microservices a wealth of capabilities can be easily consumed across the entire enterprise. Core concepts for key areas such as customer, order, and product can be managed in a consistent way. The value add and rate of innovation brought on by a microservices ecosystem is exponential. And combining these services on a platform where developers, customers and partners can create, extend and monetize their work takes application development and innovation to a whole new level.
The key to a successful microservices economy is of course stellar content, but also adequate compensation for contributors – the developer teams producing services for others to consume. An application that is purchased by an end customer may leverage services built by dozens of different teams, but the complexity of cost and pricing should be handled automatically behind the scenes. The way this is typically handled is to combine service subscriptions with usage-based pricing, revenue share, and settlement models.
With potentially multiple teams attributed to every transaction, the rules can be complex requiring multiple levels of calculation before compensation can be totaled. Payments and settlements can be made in a variety of ways, including measuring and tracking against a key set of KPIs instead of just monetary compensation, depending on what the service developers are being measured on.
I have seen first-hand how this type of ecosystem works with the SAP Hybris Revenue Cloud application development team. Based on a microservices architecture, large parts of the app’s capabilities are being built by simply tapping into customer management services, payment services, and tax services created by other internal SAP teams. Internal pricing for services are published in a way that each team can model their service’s usage into operational cost calculations. The services are then subscribed to and metered by the underlying Abacus and CloudFoundry platform.
Leveraging other teams’ services shaved months off the app’s development efforts, and the teams that built the services the app consumes receive compensation for their work. By appropriately rewarding these teams, they are incented to continually enhance and build new services.
The Revenue Cloud app also provides dozens of microservices which can be consumed to complement other applications. Easy integration of partner or other custom services is on the horizon, which will provide customers with new and exciting capabilities faster than ever before. Revenue Cloud is also being designed to handle the monetization of this internal microservice ecosystem.
By harnessing the power of previously isolated teams and siloed capabilities, while operationalizing ways to properly compensate all the teams in the ecosystem, exponential benefits can be realized through the use of microservices architecture.
To learn more about “Monetizing your applications using Cloud Foundry Abacus and Billing Engine please join Nicholas Milani and Pankaj Kumar at Cloud Foundry Summit, Santa Clara on June 14th at 11:30AM.