Building A Services Platform – An Ode To Redundancy

Microsoft is a platform company which means that we like to take re-usable bits of functionality, wrap them up and make them widely available. The problem is that when a bit of functionality is not well understood trying to create a platform feature to address it will almost certainly result in something that either functions badly or not at all. The trick to good platform design is to know what to leave out and anything that deserves the title "Research" must be in the 'leave out' category.

In the services world there are numerous problems that richly deserve the title "Research". Almost anything having to do with latency optimization for read/write or real time data, most interesting security problems, almost all interesting privacy problems, just about all worthy service development language/IDE problems, etc. These are all areas that everyone is grappling with but which aren't well understood and where the industry needs to experiment.

But as this experimentation goes on the end result is what looks like a lot of redundancy. As each service deals with its own variant of the previously listed issues they tend to re-invent what looks like the same functionality. This sort of thing drives management batty because redundancy == waste in their minds. But it a'int necessarily so. Redundancy can be incredibly useful when it is stimulating learning. It is exactly this sort of redundancy, both within Microsoft and across the industry, that gives us the experience we need to move a problem from 'Research' to 'Development' and then into the platform.

Nevertheless I get more than a few odd looks from my fellow Microsofties when I explicitly say "Yes, I know your feature Y looks like something Group X is doing but Group X hasn't shipped their feature and anyway feature Y isn't well understood. So please, ship! Ship! SHIP!"

But really, my fellow Microsofties shouldn't be at all confused. A true platform maven doesn't believe in 'do it once', a true platform maven believes in 'do it right'. Until we know what 'right' is we need to experiment.

AJAX is great, except for the J and the X

AJAX has been great for the services community. By adding asynchrony it's possible to build services that can retrieve data in the background and remain interactive with the user. This is not only great for building more powerful service interfaces but it also provides us with a critical tool in defeating latency by allowing for services to be built out of other services down on the client instead of having to mash things up on the server. I suppose life would be good then if it weren't for one tiny problem – writing code in AJAX sucks. It is, I believe, time to move beyond Javascript to a byte code environment and beyond XML to a data language that can be reasonably versioned and is truly performant.

Continue reading AJAX is great, except for the J and the X

Windows Live – It's About Services (or maybe ads)

Sigh…. I know… I know… Microsoft… evil… proprietary… no cross platform… Windows über alles… etc. Whatever. Look folks, this is really easy. I work for Windows Live and my mission as handed to me by my boss, his boss and his boss's boss is simple – Make money on services.

Continue reading Windows Live – It's About Services (or maybe ads)

Yahoo Shopping Officially Becomes Useless

My first stop when I am in the mood for comparison shopping is Yahoo's shopping page. They have a huge selection of stores and a good rating system. But when I went today looking for ink cartridges I noticed something that renders Yahoo Shopping completely useless – it no longer appears to be possible to order search results by price. You can 'refine' your search by price and essentially implement your own bounds search but that is a huge waste of my time. They actually crippled their own site! I hate it when a good site goes stupid. I guess I'll have to us my backup sites.

What My Group Does For Microsoft

My daughter just went to bed and I need to go to sleep too since I have the night feeding so I'll keep this relatively brief (for me). My group at MS (which is led by Bill Zissimopoulos (Dev Lead) and myself (Group Program Manager)) has the following responsibilities:

  1. Provide guidance to Windows Live groups on how to design their external interfaces

  2. Provide a software as a service platform for Windows Live properties

  3. Provide a software as a service platform for external properties

  4. Hire "A" Players

Continue reading What My Group Does For Microsoft

Am I a Stopped Drain?

Ken Levy, the product planner/marketer, for my group blogged about a bunch of us joining the group. Mary Jo Foley (of Microsoft Watch fame) then wrote an article based on Ken's blog. This is a perfect example of what Paul Graham was talking about in his article on Corporate PR which I've linked to before. It's all just one big echo chamber. At least Ms. Foley demonstrates her integrity by clearly providing the provenance of her data.

Big Changes

Lately life has changed a lot. The first massive, huge, enormous, life altering change is that I'm now a daddy. More proof that there should be licenses or something required before becoming a parent. It's been several weeks since my daughter was born and life will, of course, never be like it was before but at least I can sleep for more than 20 minutes at a time. In case having a new child wasn't enough Marina and I bought a new house a few weeks ago. And, just to finish up the trifecta of stress, I quit BEA and went to work for Satan er I mean the Borg oops I mean the Dark Side, damn, no, I mean Microsoft. Let us hope the loving care I give to my daughter is enough to reclaim my immortal soul (again).

SOA Lifecycle (SOAL) – How to Make SOA Work In the Enterprise

The Enterprise SOA vision is all about composite applications. These are applications formed out of numerous independent web services all working together to provide some greater functionality. Except, how exactly do you define how 20 or 30 loosely coupled services interact to form a composite application? How do you deploy 20 or 30 services written in 20 or 30 languages for 20 or 30 different platforms in a sane way? And if you do manage to actually design and deploy the beast, how do you monitor it? The tools needed to make SOA work in the real world mostly don't exist yet. That's o.k. though because most Enterprises are just taking their first baby steps down the road to SOA. So we have a little time to get our act together. This article lays out a vision for how an architecture that will allow enterprises to maximize SOA's benefits.

Continue reading SOA Lifecycle (SOAL) – How to Make SOA Work In the
Enterprise

Planning to Retire – A Financial Autobiography – Step 1 – How Much Is that Housey In the Window?

I love owning a home. And even better, owning a home free and clear by the time we retire will make our retirement less expensive and more secure. But I personally don't see a home as an investment. It's not diversified and if we depend on the ability to cash in on it then we have to give up our freedom to choose where we live. So for now our goal is to own a home free and clear by the time we retire but not to rely on the equity in the home for living expenses during retirement.

Continue reading Planning to Retire – A Financial Autobiography – Step 1 – How
Much Is that Housey In the Window?