My last post on the Composable Enterprise gave an overview of Jonathan Murray’s manifesto. While this is leading edge stuff, it is by no means new. We’ve been aiming for composable architectures for many decades now, going back to DCE and CORBA and perhaps even earlier. This speaks to how difficult the challenge is and how our approaches change with lessons learned from previous attempts.
Perhaps the most successful composability framework ever is COM, but reliably scaling this beyond the desktop to the enterprise and the world (one of the aims of DCE and CORBA and WS-* and…) is our ongoing mission.
MITRE Corporation is a huge US government funded organization that looks after federal research, development and integration—usually defence related. Their Systems Engineering Guide is a broad compendium of knowledge and practice that they’ve brought together from their internal subject-matter experts. When perusing this recently I was immediately drawn to the section entitled “Composable Capabilities on Demand” (CCOD).
While I wouldn’t automatically refer to a federal government organization as a source of innovation, there is nothing here I disagree with and it’s interesting to see how these concepts are being trialed and embraced in this environment as a way of achieving value and agility. The CCOD page is a short read and well worth the effort. I thought I’d just pick out some of the salient points here.
CCOD is a design concept to enable the rapid development of new capabilities by combining services, data, and existing systems to respond to a new situation or mission.
(Despite my pacifist nature, I love the military jargon…very top-gun. Reminds me of some of the people I’ve worked with in Baltimore and Denver in times past. And I sometimes feel like a “combat coder” under fire.)
Key to CCOD is “interoperability” which is facilitated by common data formats that they call “loose couplers”. But beware of our traditional concept of common data models: “Experience to date suggests that a minimalist approach to loose couplers is a key principle. Global, complex data standards may prove problematic, due to the large investment in parsing/integrating/adopting them” (my emphasis added).
An important part of CCOD is that it is aimed at end-users, not developers. To make this possible the CCOD capabilities must be:
The remainder of the CCOD entry goes through a list of “best practices and lessons learned” which I’ll summarise:
Overall, sounds like reasonable advice.