We spend too much on software systems in this country. We spend too much because people like me tell our clients that they can have whatever they want. And that’s the problem with software engineering — we really can build anything we wish, constrained only by the time we’re prepared to spend and the corresponding dollar figure attached.
Traditionally we have built IT systems to suit the business. Software people like me are great problem solvers and no amount of innovation is too much to meet the needs of our clients. And therein lies the rub. All too often we forget about the financial consequences of meeting some of these needs. People like me need to start thinking as much about re-architecting the business to suit the available software systems as we do about re-architecting the software systems to suit the business.
There is much value in convincing our customers not to invest in certain needs. As any good business strategist will tell you, deciding what not to invest in is at least half the challenge. For people like me it means rethinking what we actually mean when we talk about innovation.
The concept of architectural innovation, first posited by Rebecca Henderson and Kim Clark in the early 1990s, has a long history in the product development arena. The essence of an architectural innovation is the reconfiguration of an established system to link together existing components in a new way. This concept, that value in systems can be achieved by the innovative reconfiguration of existing components, is one that deserves more thought from enterprises and IT services companies.
In IT systems the application software and hardware are symbiotic with the businesses they serve. As services companies, I think we need to consciously bring the concept of architectural innovation to our relationships with our clients; we need to seek out opportunities to innovatively reconfigure the business and its existing systems before we decide to build a better mousetrap.
The vision that I have for the future is one of off-the-shelf applications, be they CRMs, ERPs or portals being customised within their well defined boundaries, bolted together to deliver business value. It’s a vision that sees business reconfigured to take advantage of opportunities offered by available IT resources.
Moves by application vendors to embrace service oriented architecture over recent years has provided us with a suite of components ready for innovative recombination. Any off-the-shelf business application worth its salt, from Siebel to Microsoft Office, SAP to SharePoint Server, now makes itself available as a set of web services. Glueing these services together into composite applications presents a fantastic opportunity to bring new value to these sunk costs.
The challenge, of course, is how to bring this vision to fruition. Ask almost any architect today what the most challenging part of systems development is and nine times out of ten they’ll tell you it’s the integration of one application with another. We’ve just never quite achieved the interoperable modularity of, say, the electronics industry.
Things are changing though; we now have a broadly adopted protocol for inter-application communications through the web service standards such as REST and WS-*. What we need next is a semantic for describing our meta-applications: a composite application modelling language.
Finally we need tooling to support rapid re-configuration and re-deployment of these systems. If we are going to be innovating by re-architecting at the meta level, that is between existing applications rather than within them, then we need tools that let us do this quickly; try-fail-retry is always going to be an important heuristic in our industry.
As I look to the horizon, 36 months or so out, I see promise of delivery on this vision from various vendors. Even today, off-the-shelf applications such as Microsoft CRM are a powerful platform for reconfiguration and recombination. Emerging standards such as service modeling language are gaining broad cross-industry support and future tooling and framework advances such as SCA and Microsoft’s recently announced Oslo platform will allow this vision to become a practical reality.
Oslo is the next generation distributed application platform from Microsoft. It’s coming out of the Microsoft Connected Systems division which is the part of its business responsible for BizTalk and a number of the .Net framework components. While it has yet to announce how it will be packaged, I expect that Oslo will see the entry of Microsoft into the application server market. From what I’ve seen to date, and I must reinforce that it is still very early days for this technology, Oslo looks to be one of the first signs of a large vendor moving towards tooling for this vision of composing one application from a number of others.
Broadly, Oslo will be made up of tooling to support the application lifecycle of these new composite applications, from the business analyst to the engineer who is required to operate it. The tooling will support analysis, design, build, deployment and the ongoing management of these highly distributed applications. It is based squarely around the concept of executable models and with likely integration with products as diverse as Visio and System Center it’s likely to require fairly significant change in all stages of the application lifecycle.
Borrowing from ideas found in BizTalk, Microsoft proposes to build drivers or adapters for off the shelf applications to allow them to be plugged into an Oslo managed architecture. Microsoft needs to syndicate this approach broadly and deeply both within its own business units and within its partner community to ensure that a good range of applications are supported with drivers on day one.
With the recent launch of Visual Studio 2008, the forthcoming launch of both Windows Server 2008 and SQL Server 2008 and the expected first community technology reviews of Oslo and its associated technology in 2008, it’s going to be an exciting year in the Microsoft enterprise software space.