After over 10 years of engineering enterprise application hosting systems, my current assignment is as Product Manager of Platform Reference Designs (PRDs). PRDs define the technology, capability, and service standards blueprint for hosting platforms. Essentially, PRDs are the standard technology blueprints used to build hosting service(s). While the statement may appear to be a simple endeavor, the reality of successfully defining and managing hosting standards that support a large developer community is a daunting proposition. (I use the term developer community to mean a diverse set of developers who use a diverse set of tools and technologies to meet business objectives.) As with many areas where standards add value, balance must be maintained between the value of standardization and the value of flexibility that embraces innovation. I intend this blog to provide a vehicle to debate hosting standardization and solicit opinions to achieve the necessary balance.
Yesterday, standards could be effectively managed at the component level technology roadmaps, however as the availability and cost of new tools and technologies (components) has improved, server computing environments are not sufficiently homogeneous to achieve the efficiencies business demands. Hence, we have technologies such as virtualization that allow great flexibility while still achieving economies of consolidation. Virtualization however, does not necessarily improve the operational management costs of supporting disparate systems. It is still clear that a healthy level of standardization is required if operational costs are to remain in check. Standards must begin to be managed at the "packaged" PRD platform level vs. the component technology level to improve the operational efficiency of hosting services. Is this possible/realistic? Does standardization to achieve efficiency, at some point, sacrifice too much flexibility resulting in a loss in competitive advantage? My belief is that PRD platform level standardization is not only realistic, but necessary to ensure a supportable environment and that standards governance is key in ensuring flexibility and standardization remain balanced so that competitive advantage is realized.
Javier,
To add to your point why managing standards for a large developer community is a daunting proposition, here I present some thoughts about it:
Tools and technologies complexity usually translates into new features and capabilities that in turn increase the number of options available to accommodate solutions. However, adoption of new features is normally low compared to the use of existing features that provide a higher level of maturity and proved performance.
Lack of leading standards in the market has led to numerous approaches with different semantics, from SOA to interactive web experiences to continuous integration. The larger developer community the larger its exposure to different standards. Making bluebooks (aka capability roadmaps) available to the community can help provide direction on which approaches are in sync the industry.
Lack of governance and prescriptive guidance, which turns technology decisions into disconnected solution islands. Everyone is eager to try something new and different than the rest. Adopting governance and clear policies can help alleviate this issue.
Standards are largely perceived as outdated and inefficient set of rules. Standards are sometimes presented as the solution itself, discouraging creativity. Presenting the standards as a solution enabler is a key to ensure adoption.