In general, I like Jay Cross’ writings. While I have never personally met the guy, I find that his articles usually have something interesting and sensible to say. Which is why I’m so disappointed with his overly exhuberant fluff piece in e-Learn:
“For some, the work of the future will resemble an elaborate, personalized video game front-end that’s connected to the physical operations of their company.
Life will be simpler five years from now. We’ll be comfortable living in a world of organizations without bosses, computing without programmers, and webs without weavers. “
And the lion will lie down with the lamb.
All this bliss supposedly comes from web services. What are web services? At the root, web services are really just a better way for software developers to develop and maintain components of a large application or system. In the (really) old style of programming, (called procedural programming), there was no easy way to separate dependencies within software code. That meant if you changed one piece of the code it might have a ripple effect that broke things elsewhere and it was sometimes hard to predict in advance where those breakages would occur. In other words, modifying large programs was hard and took a very long time (and cost a lot of money). Then along came object-oriented programming. In this world, you could take a piece of the software and wrap it up in a kind of a package, or “encapsulate” it. With encapsulation, you write a list of all the communications (commands and responses, basically) that your object understands. Once that’s done, then you can change the code inside the object all you want, and as long as its methods of communicating with the rest of the software don’t change, then nothing will break. With software objects, modifying large programs is still hard (in fact, in some ways it’s harder, since object-oriented programming requires more expertise and skill than procedural programming), but it often takes skilled programmers a lot less time to do the job.
Web services can be thought of, in part, as a new wrinkle on encapsulation that makes it easier to keep the various parts of your program stored on different computers. And because web services also include some other nifty features (like auto-discovery, which lets one software component advertize to other components what it does and what commands and responses it understands), web services make it easier for programmers to create new programs out of pieces of the old programs much more quickly and easily, even if those old programs live on different computers supported by different companies in different parts of the world.
But here’s the problem: Web services only solve a few of the many problems that have to be solved in order to reach Jay’s paradise. The harder problems in designing software that really changes the world are always the ones that revolve around what the humans actually need the software to do. In order for applications to be able to help all knowledge workers throw off the shackles of command-and-control and respond in concert in real time, we need to have some idea of how human beings would work the way that Jay describes if only the software would create the necessary environment. This is a very, very, very hard problem. And web services do nothing to solve it.
Jay’s way of dealing with it is by gesturing toward emergent behavior, which is the notion that a system of independent agents (in this case, knowledge workers), can spontaneously develop organized positive behaviors without any clear directive or conscious cooperation:
Skeptical? You’re witnessing bottom-up decision-making in the swift turn of a school of fish but we’re not used to seeing it in business. MIT Professor Tom Malone equipped an audience with hand-held paddles whose position could be read by a computer. On the screen up front, he projected a flight simulator. A hundred people jointly took the controls of the plane and, against all expectation, flew the plane without a pilot and without a crash
OK, admittedly, that’s pretty cool. But emergence is a new, complex, and tricky idea that we only have the vaguest idea of how to create on command. Does anybody really believe that having a few dozen people in a room fly a plane together is equivalent to having a few thousand people all over the world run a profitable corporation? Does anybody have any idea how to get from the success at the first thing to success at the second?
So while I applaud Jay’s enthusiasm for new technologies, I wish he would take a chill pill and not wind people up about sexy ideas that are vastly easier to demo than they are to implement in the real world. I understand that he’s trying to get the whole “workflow learning” meme spreading as agressively as possible, and I support that. It’s a valuable way of framing performance support that may finally get non-trivial traction in the Enterprise. But really…
For some, the work of the future will resemble an elaborate, personalized video game front-end that’s connected to the physical operations of their company.
Bowling scores will be way up; miniature golf scores will be way down.
*Sigh.*
