This scenario is far too common: The product owner says to the development team: “Will feature x make the next product release? If not, do we -- the business and therefore the customer -- need to wait for the subsequent major product release to get the feature?” How this question is answered reveal’s the difference between organizations that embrace true agility and those that maybe only think they do. I believe true agility is deeply embedded in not just the software development process, but also in the architecture of the software and equally the way in which all parts of an organization execute.
In many organizations the question above implies organizational and probably architectural constraints with respect to the timely and continuous delivery of business value. Any software development endeavor involves delivering value to customers in the form of addressing a need in a manner that is very intuitive. But in addition, that value should be delivered in a timely fashion. It is very limiting to think a single product owner or company can identify and address all needs a given market may have.
Imperative in value creation and therefore the offering of continuous business value is the leveraging of a platform and philosophy that enables needs to be identified and met by, not just a small group within a single organization, but a diverse group of people from many disciplines. The alternative to a platform strategy is an all-in-one monolithic solution which is not only an architectural anti-pattern but a strategic product anti-pattern as well. A monolithic approach is far more likely to fall victim to these constraints.
Why a Platform Strategy
Some notable and obvious sources illuminate the point quite well and highlight the power in the “platform”.The Power of Product Platforms, Invisible Engines, and The Architecture of Open Source Applications all spell out why a platform strategy is critical in today’s approach to delivering continuous customer value through software. The most effective answer to the question posed above will be dictated by whether an organization embraces the platform strategy. The key to a strategic platform approach lies in a fundamental shift, not only in the development organization, but in the business overall, from DevOps to product development, to marketing and financing. We see examples of a platform strategy in diverse companies and industries, one example being Black & Decker, who completely reinvented themselves by establishing a base platform from which multiple tools are produced and sold. More obvious examples are Google and Apple with their apps strategy.
Simplicity is a Virtue
Platforms enable simplicity. Products that take the all-in-one solution approach typically continue to release versions which include more and more features, covering many use cases that get delivered to all customers regardless of the need. Why should enterprise software continue to be bloated with features? We know the issues this brings.
It complicates the solution for the end user.
Full development cycles dictate when customers can get significant, much needed solutions to pain points.
And finally -- and most importantly -- customers are solely beholden to a product manager's vision of what customers might require.
The culmination of a modular platform based strategy is in the delivery vehicle for everything from new features, to documentation, to marketing. At Catalogic, this delivery vehicle is our online Marketplace (shown in the blog illustration). The Marketplace provides a framework that allows our organization to be much more flexible in how it delivers solutions to the market. Apps can be developed by teams and released when they are ready without having to be tied to a significant platform release. Third parties can contribute to solutions in a timely manner, leveraging documented APIs that enable the integration with the platform. Single point solutions that offer simple and intuitive functionality can be leveraged by only customers who require that capability, thereby keeping the base solution simple for those not requiring the functionality.