Sometimes, slower is better

Michael Rowley writes: New technology for simplifying development is always good, right? New APIs and servers just make it easier to develop SOA applications, right? And, of course, developers have all the time they need to adjust to the big changes that SOA development imposes on them.

Of course, this isn’t true. With any technological change as important—and beneficial—as the shift to SOA, it takes time for developers and businesses to absorb the important standards, to implement them in real applications and to get comfortable with the impact of SOA on the overall development environment. In short, it is important for vendors to release technology on a schedule that makes it possible for users to consume the technology, and to support it in ways that allow developers and businesses to recoup their investments in those products.

Recent announcements from Microsoft got me thinking about the tension between a vendor's desire to create new development technology and the developer's desire for predictability in the pace of change for the technologies they use to accomplish their work.

Microsoft will soon be releasing Workflow Foundation (WF) 4.0, which will have some big changes from previous versions, primarily for the purpose of simplifying development. There will now be a flowchart workflow style, which will join the sequential and state machine workflow styles that already exist.

WF will be integrated with the Windows Communication Framework, and developers will be able to deploy the resulting Web-service enabled workflows to the “Dublin” application server. So the first question that comes to mind is, if you can develop Web-service-enabled flowcharts using WF and deploy them to Dublin, how many people will still be interested in buying BizTalk Server? Actually, that is just a question for Microsoft product management to worry about. I’ve got bigger questions.

How many technologies do we need to accomplish the same thing? How many times can Microsoft add a new technology for simplifying development before the number of simplifying technologies becomes just too complex to follow? Once we have learned the latest-and-greatest way of developing apps, how long should we be able to expect that knowledge and those skills to be relevant? And what about the code and other artifacts? Even if there is an attempt to continue to execute code from older versions, it is hard for any vendor to provide comprehensive forward-compatibility for abandoned products.

Standards are typically looked to for interoperability or portability. But standards have another important value: stability. The standards development process is inherently tortoise paced, especially in comparison to the hare that is any group of fired-up software engineers inside a vendor, attempting to create the next development-technology breakthrough. In contrast, standards-setting work requires that a diverse group of individuals and companies all think that some technological advance is worth the disruption. It certainly happens, but it happens slowly. And that’s a good thing for the developers and companies that adopt the standard. It delivers reliability and predictability when developing new applications.

If you were to develop an application using Oslo to create a flowchart where the activities are calls to Web Services, you would be creating a service orchestration. The standards that are important for service orchestration are WS-BPEL and BPMN. WS-BPEL was partly designed by Microsoft, but support for it in Microsoft products has been half-hearted at best.

There is a community technology preview of an activity library that supports the OASIS standard (which is WS-BPEL 2.0), but the supported product release has yet to see the light of day. Microsoft just seems to be too anxious to release the next great thing to be slowed down by the more stately pace of standards, or to deliver full support for standards it did, in fact, help promulgate.

And BPEL is continuing to progress. There is an OASIS committee now standardizing support for human activities with BPEL via the BPEL4People and WS-HumanTask specifications. An OMG workgroup is also developing BPMN 2.0, which will be more closely aligned with BPEL than the current 1.1 version of the standard is.

Development technologies should be evolved with exceptional care. A large body of software will be developed that depends on the technology and that software will be expected to live and evolve for many years. In this respect, development technology is akin to laws: They shouldn’t be made or changed lightly. In any democratic government, it isn’t good enough for one person or even a small group of people to think that a law would be a good idea in order for it to be enacted. It has to pass the muster of one or sometimes two legislative bodies, plus get by an executive. This slows things down, and many times stability in the law is as important as having the right laws.

In this small respect (and not many others), the analogy with development technology holds. In many cases, having a fairly stable set of development technologies is better than having a fast-changing set of technologies, even if an argument could be made that the changes are for the better. They should be a lot better, and if they are that much better, it shouldn’t be too hard to get a group of companies to sponsor an effort to standardize the advancement.

If the standards body follows an open process, as OASIS does, it is possible for the user community and the vendor community to follow the technology as it develops. By the time it is done, it is a surprise to no one, and vendors and users will understand it and be able to use it.

Microsoft’s interest in creating conforming implementations of standards waxes and wanes at regular intervals. They are continually fighting their own desire to invent nifty new technologies with their developer community’s desires for them to follow standards. It is up to the development community to keep the pressure on Microsoft to do the right thing.

Michael Rowley is director of strategy and technology for Active Endpoints, which offers open-source SOA business orchestration software. Focus Areas: BPEL | DITA | ebXML | IDtrust | OpenDocument | SAML | UBL | UDDI
OASIS sites: OASIS | Cover Pages | | AMQP | CGM Open | eGov | Emergency | IDtrust | LegalXML | Open CSA | OSLC | WS-I