Eric Rudder's talk
at VSLive! San Francisco 2005 last week was noteworthy for the crisp performance of the former assistant to Bill Gates. Rudder has often been wooden and detached in his appearances, but this year's model was engaged, funny, and specific--with good reason. Microsoft is coming to market with a raft of technologies that have been in the works for years.
Over two years ago Rudder pulled together a retreat for 20 media and analysts, where much of the current deliverables were demoed in early form. It was clear at the time that ASP.Net was at the center of a new generation of rapid Web app development tools. Microsoft Research work in leveraging patterns, modeling and testing was also beginning to make its presence known in the product groups, and an executive decision to back away from .Net branding toward the more familiar Windows brand was gingerly offered to the group.
But even with that heads-up--and the subsequent shift in attention to and away from Longhorn--I still was unprepared for the formidable power and productivity boosts of Microsoft's 2005 tools. Perhaps it's because we've grown accustomed to the pitch over the years--the inexorable flow of wizards and drag-and-drop code snippets that let developers assemble heavyweight apps with fewer and fewer lines of code. Even so, this time we saw 57,000 lines reduced to 3.
Attribute-based programming? Remember COM+? Here's your reliable messaging right here, pal, says Indigo product manager Ari Bixhorn:
We'll stop the client, we'll stop the server, and now let's go back to that HTTP binding. We've got an interface here, and to add reliable messaging all I'm going to do is drag and drop one attribute out into my code. It's a reliability binding that specifies a couple of things. First, it specifies that each and every packet that comes across the wire needs to be received once and only once. Second, we want to make sure that those packets are being received in the order they're sent. And if we do start to drop any packets. We'll retry it up to 100 times. So we've got reliability in just one line of code.
The efficiencies of .Net's managed code runtime have accelerated developer productivity and code stability to the point where the only attacks are from those worried about a generation of business "developers" who don't understand how the code they're creating actually works. Another complaint: developers are now too
productive, outstripping the enterprise's ability to keep up with change. We should all have such problems.
A week earlier, Bill Gates keynoted
the 2005 Microsoft Office System Developer Conference. At its core was this mission statement:
Office is the software that is used more than any other at work, and any improvements we can make to Office improve productivity more than any other product in the world.
Fair enough. Let's build on that thought.
Our basic view is that by making improvements in the Windows platform and Office, we can free up parts of the IT budget that have been based on lots of manual work and complex overhead, and take those dollars and shift them into new projects that build on Office, buying add-ons, implementing SharePoint templates in a rich way, rolling out Tablets, rolling out the wireless network, doing the things that make a company best-in-class in terms of getting value out of the huge investment they make in their information workers.
Sure, I can see that. Wireless, tablets, more efficient, same investment. I can even see the classic Microsoft economics at work: drive cost out by economy of scale, deliver more services for the same dollars. One problem, though. Who's going to pay for it?
Here's the rub. One of every three dollars of Microsoft revenue comes from Office. What if, from a purely disinterested perspective, the way to achieve savings and accelerate productivity was not to use Office at all, but rather shift to another architecture--say one that supports lightweight routing of XML fragments around the network in a highly accelerated virtualized kind of digital dial tone infrastrucure? Let's call it RSS, flowing through an attention-based inforouter.In this alternate universe, user interfaces would be plastic in nature, morphing as data types trigger template switching that routes packets of information through transformation engines based on metadata-driven signals. Charting services are overlaid with ticker text treaments, then piped to handheld devices as a stream, and cached on terminal screens to be called up on demand. Color-coded expert opinions are syndicated to executive information feeds to provide real-time "gut decisions" from consultants and rating data from affinity groups.
Meanwhile, Microsoft is band-aiding Outlook to approximate a CRM application, performing razzle-dazzle sleight of hand and indirection with Win Forms to "attract" knowledge workers to remain in Outlook's brain dead XML-Lite container. Think I'm kidding? Check out Platform product manager Tom Caputo's demo:
So we're actually going to take advantage of the power of Win forms here and we capture this click event and rather than popping up just a standard HTML page, we pop up a Win form. And the Win form now gives us the ability to create whatever UI seems more appropriate to represent this information.Wait, there's more:
So we've got standard tabs, you see we've got some data grid controls here that our developers pulled in and it created a very rich way to represent this data and give the field the ability to manipulate it but remaining right within the Outlook interface.
Now, I would love to get this information into the back-end. Historically it's been really tough, it's been multiple clients, alt-tab, cut and paste integration, it's required a lot of manual reentry.If all goes well? Parse, pop, pre-populate, scan, close, and save. Meanwhile, back on Planet RSS, the data is transformed through a pipeline of services for delivery to the endpoint renderer. Attention-based preemptive caching reduces latency in bandwidth-constrained or offline scenarios. It's the virtual rich client, the Really Smart Server.
So the goal here was to facilitate that. So our developers have actually come up with a pretty clever way to address it. They've now put a toolbar on all of the e-mail that has the ability to convert.
So I say this is an opportunity, I want this data in Siebel. I say convert to Siebel opportunity. We parse the underlying e-mail, we pop a new opportunity, we pre-populate the information, I scan over it and make sure it looks right, I click Close and Save and if all goes well we actually have that updated in the back-end.
Will Microsoft deliver? You bet. As Rudder put it:
Our plan is to deliver that in March; even if it's March 38th or 43rd, we will deliver it in March.It may still be too late.