The recent flap about the anti-discrimination bill and Microsoft got a couple of us talking at dinner about how progressive Microsoft's benefits package was compared to the rest of the software industry. One of the the things that came up is also mentioned in the Music for America blog which points out

Microsoft has a stellar record as pioneering same-sex partner rights, and they haven't reneged on this stance internally. Microsoft continues to offer same-sex partner domestic benefits – benefits which are exemplary, especially for health insurance coverage.

Being that Microsoft is the only company I've worked for as a full time employee I do take a bunch of the benefits we get for granted. Although I often end up surprised to hear that other companies in the software industry fall far short of what Microsoft offers.

For example in his post, uh oh, what happened to my bank account? Mark Jen wrote

next, let's look at the health care benefit provided. arguably, this is the biggest benefit companies pay out for their employees. google definitely has a program that is on par with other companies in the industry; but since when does a company like google settle for being on par? microsoft's health care benefits shame google's relatively meager offering. for those of you who don't know, microsoft pays 100% of employees' premiums for a world-class PPO. everything you can possibly imagine is covered. the program has no co-pays on anything (including prescription drugs); you can self-refer to any doctor in the blue cross blue shield network, which pretty much means any licensed professional; and you can even get up to 24 hour-long massage sessions per year.

I also saw similer sentiments in a recent post by Jim Stroud entitled Life with Bill... where he wrote

To all concerned, I am now on the Microsoft payroll effective immediately. Google was a groovy gig, but Bill gave me an offer I could not refuse. (Ask me about the benefits. WOW!) I am SO happy and can truly see myself here for the long haul.

I guess it's a sign I'm getting older that I actually care about things like benefits packages. It's likely that companies like Google tailor their compensation package to what the young, single geek fresh out of college is interested in while as the average age at Microsoft has gone up its compensation package has targeted the older, married geek instead.



Categories: Life in the B0rg Cube

From the Text of Steve Ballmer E-Mail to U.S. Microsoft Employees Regarding Public Policy Engagement

Date: May 6, 2005

To: All U.S. Microsoft Employees

Subject: Microsoft’s principles for public policy engagement

During the past two weeks I’ve heard from many of you with a wide range of views on the recent anti-discrimination bill in Washington State, and the larger issue of what is the appropriate role of a public corporation in public policy discussions. This input has reminded me again of what makes our company unique and why I care about it so much.

One point really stood out in all the e-mails you sent me. Regardless of where people came down on the issues, everyone expressed strong support for the company’s commitment to diversity. To me, that’s so critical. Our success depends on having a workforce that is as diverse as our customers – and on working together in a way that taps all of that diversity.

I don’t want to rehash the events that resulted in Microsoft taking a neutral position on the anti-discrimination bill in Washington State. There was a lot of confusion and miscommunication, and we are taking steps to improve our processes going forward.

To me, this situation underscores the importance of having clearly-defined principles on which we base our actions. It all boils down to trust. Even when people disagree with something that we do, they need to have confidence that we based our action on thoughtful principles, because that is how we run our business.

I said in my April 22 e-mail that we were wrestling with the question of how and when the company should engage on issues that go beyond the software industry. After thinking about this for the past two weeks, I want to share my decision with you and lay out the principles that will guide us going forward.

First and foremost, we will continue to focus our public policy activities on issues that most directly affect our business, such as Internet safety, intellectual property rights, free trade, digital inclusion and a healthy business climate.

After looking at the question from all sides, I’ve concluded that diversity in the workplace is such an important issue for our business that it should be included in our legislative agenda. Since our beginning nearly 30 years ago, Microsoft has had a strong business interest in recruiting and retaining the best and brightest and most diverse workforce possible. I’m proud of Microsoft’s commitment to non-discrimination in our internal policies and benefits, but our policies can’t cover the range of housing, education, financial and similar services that our people and their partners and families need. Therefore, it’s appropriate for the company to support legislation that will promote and protect diversity in the workplace.

Accordingly, Microsoft will continue to join other leading companies in supporting federal legislation that would prohibit employment discrimination on the basis of sexual orientation -- adding sexual orientation to the existing law that already covers race, sex, national origin, religion, age and disability. Given the importance of diversity to our business, it is appropriate for the company to endorse legislation that prohibits employment discrimination on all of these grounds. Obviously, the Washington State legislative session has concluded for this year, but if legislation similar to HB 1515 is introduced in future sessions, we will support it.

I also want to be clear about some limits to this approach. Many other countries have different political traditions for public advocacy by corporations, and I’m not prepared to involve the company in debates outside the US in such circumstances. And, based on the principles I’ve just outlined, the company should not and will not take a position on most other public policy issues, either in the US or internationally.

I respect that there will be different viewpoints. But as CEO, I am doing what I believe is right for our company as a whole.

This situation has also made me stop and think about how well we are living our values. I’m deeply encouraged by how many employees have sent me passionate e-mails about the broad respect for diversity they experience every day at Microsoft. I also heard from some employees who underscored the importance of feeling that their personal values or religious beliefs are respected by others. I’m adamant that we must do an even better job of pursuing diversity and mutual respect within Microsoft. I expect everyone at this company -- particularly managers -- to take a hard look at their personal commitment to diversity, and redouble that commitment.

The questions raised by these issues are important. At the same time, we have a lot of other important work to do. Over the next 18 months we’ll release a broader, more advanced and more exciting set of products than at any time in the company’s history. Let’s all recommit to the job ahead, using our diversity as a strength to work together creatively and with respect for each other.



Wow. They listened to us. I guess when a couple thousand employees let you know how they feel about decisions the company is making, it's smart to take their opinions into consideration.

Microsoft definitely does not suck as an employer.


Categories: Life in the B0rg Cube

In a recent post entitled Replacing WSDL, Twice  Tim Bray writes

Lets make three assumptions: First, that Web Services are important. Second, that to make Web Services useful, you need some sort of declaration mechanism. Third, that WSDL and WSDL 2, despite being the work of really smart people, are so complex and abstract that they have unacceptably poor ease-of-use. What then? Naturally, the mind turns to a smaller, simpler successor, sacrificing generality and eschewing abstraction; in exactly the same way that XML was a successor for SGML. Well anyhow, thats the direction my mind turned. So did Norm Walshs; his proposal for NSDL also includes a helpful explanation of why Web-Service description is important. My sketch is called SMEX-D.

Although the XML geek in me wants this blog post to be a critical analysis of NSDL and SMEX-D, I think a more valuable discussion is questioning the premise behind Tim Bray's post. I agree with his first assumption; web services are important. I also agree with his third assumption that the various flavors of WSDL are too abstract and complex to be of easily useful. More importantly, most of the interoperability problems in the XML Web Service space are usually the fault of WSDL and the XSD type system which it depends on.

However I happen to disagree with his second premise; for Web Services to be useful you need some sort of declaration mechanism. Just to contradict by example, I can point to a wide number of web services such as the Yahoo! Search web services, Flickr web services, web services, 43 Things web services, Bloglines web services and every web site that provides an RSS feed as examples of useful web services that don't use some sort of declarative mechanism to describe the services.

Before deciding to reinvent WSDL, people like Tim Bray and Norm Walsh should ask themselves what purpose a description language like WSDL serves. This is exactly what Mark Nottingham does in his post Questions Leading to a Web Description Format where he writes

A while back, I published a series of entries ( 1 , 2 , 3 , 4 ) about would-be Web Description Formats, with the intent of figuring out which (if any) is suitable, or whether a new one is required.

As I said, Ive talked about specific use cases for a Web description format before, but to recap, the big ones are:

Code Generation Its very useful to start with a description of the site, and then code by filling in the blanks. In the Web services world, this is referred to as coding to the contract or contract-first development, and it makes a lot of sense (although I think contract is needlessly legalistic, and misleading too; it implies a closed world, when in reality a description is very open, in that its always subject to additional information being discovered).

A couple of ways that this might manifest is through stub and skeleton generation, and auto-completion and other whizz-bang hinting in tools. Wouldnt it be nice for Eclipse to give you a drop-down of the valid URIs that will give you a certain type when youre coding?


Dynamic Configuration Ive complained about the poor state of Web server configuration before, so Ill spare you a repeat of the full polemic. A proper description format would be one mechanism to allow more transparent configuration of servers, and better use of the Web (and HTTP).


Application Modeling and Visualisation Finally, theres a considerable amount of value in having a standard representation (thats intentional, folks) of a sites layout and configuration; you can discuss it with peers, evolve it over time in a manner thats independent to the implementation, develop tools to manipulate and visualise it, and so forth.

Looking at this list of benefits of having a description language for web services, I don't see anything that leaps out to me as being a must have. Being able to generate skeleton code from an XML description of a web service is nice but isn't a showstopper. And in the past, the assumptions caused by such toolkits has led to interoperability problems so I'm not enthusiastic about code generation being a good justification for anything in this area.

The dynamic configuration bit is interesting but it is unlikely that we will come up with a description language generic enough to unify formats as diverse as RDDL, RSD, P3P, WSDL, etc that won't be too complex or too simple to be useful.

As for application modelling and visualization, I'm not sure why we need an XML format for that. If someone decides to come up with a dialect of UML for describing web services there doesn't need to be a reason for it to have an XML serialization format except for code generation which as previously stated isn't such a great idea anyway.

For me the question isn't whether we should replace WSDL but rather whether we even needed it in the first place.


Categories: XML Web Services

Every once in a while I find myself still having to check a few websites directly instead of reading them in my favorite RSS reader. The top 5 sites I still check by hand which I'd love to see get RSS feeds are

  1. The Latest Editorial Cartoons of Clay Bennett 
  2. Paul Graham's Essays
  3. The Misanthropic Bitch
  4. The Tucker Max Stories
  5. Malcolm Gladwell's Articles

What are your list of sites that should have RSS feeds but don't? Maybe we can get together and sign a petition. :)


Russell Beattie has a post entitled Spotlight Comments are the Perfect Spot for Tags! where he writes

I read just about every sentence of the Ars Technica overview of OSX Tiger and learned a lot, especially the parts where the author drones on about OSX's support for meta-data in the filesystem. I originally thought the ability to add arbitrary meta data to any file or folder was an interesting capability, albeit not particularly useful in day-to-day activities. But then I was just playing around and saw the Spotlight Comments field that's now included at the very top of a file or folder's Info box and I grokked it! Now that there's actually an easy way to both add and to search for meta-data on files and folders, then there's actually a reason to put it in! But not just any meta-data... What's the newest and coolest type of meta-data out there? Yep, tags! And the comments fields is perfect for this!

Obviously nothing has changed in terms of the UI or search functionality, just the way I think about meta data. Before I may have ignored an arbitray field like "comments" even if I could search on it (haven't I been able to do something similar in Windows?). But now that I "get" tagging, I know that this isn't the place for long-winded description of the file or folder, just keywords that I can use to refer to it later. Or if those files are shared on the network, others can use these tags to find the files as well. Fantastic!

This sounds like a classic example of "When you have a hammer, everything looks like a nail". One of the interesting things about the rush to embrace tagging by many folks is the refusal to look at the success of tagging in context. Specifically, how did successful systems like get around the Metacrap problem which plague all attempts to create metadata systems? I see two aspects of the way applied tagging which I believe were key to it becoming a successful system.

  1. Tagging is the only organizational mechanism: In, the only way to organize your data is to apply tags to it. This basically forces users to tag their data if they want to use the service otherwise it quickly becomes difficult to find anything.

  2. It's about the folksonomy: What really distinguishes services like from various bookmarks sites that have existed since I was in college is that users can browse each other's data based on their metadata. The fact that is about sharing data encourages users to bookmark sites more than they typically do and to apply tags to the data so that others may find the links.

Neither of the above applies when applying tags to files on your hard drive. My personal opinion is that applying tagging to the file system is applying an idea that works in one context in another without understanding why it worked in the first place.


Categories: Technology

Over the past few weeks there have been a bunch of reports on internal mailing lists about problems with MSN Spaces RSS feeds and Bloglines. The specific problem is that every once in a while old posts containing photos are marked as being new in Bloglines. There have also been some complaints that indicate this problem also manifests itself in Newsgator as well.

After some investigation we discovered that this problem seemed to only occur in RSS items containing links to photos hosted on our storage servers such as blog posts with photo attachments or photo albums. This led to a hunch that this problem only affected RSS readers that mark old posts as new if any content in the <description> element changes. Once this was confirmed then we had our answer. For certain reasons, the permalink URL to an image stored on our storage servers changes over time*. Whenever one of these changes to the URLs of images takes place, then RSS readers that detect changes to the content <description> element of a feed will indicate that this post has been altered. 

A brief discussion with the folks behind Bloglines indicates that there isn't a straightforward solution to this problem. It is unlikely that they will change their RSS parsing code to deal with the idiosyncracies of RSS feeds provided by MSN Spaces. Being the author of an RSS reader as well, I can understand not wanting to litter the code with special cases. Similarly it is unlikely that we will be changing the behavior that causes URLs to images hosted on our servers to change in the short term.

After chatting with Mike and Jason about this one of the solutions we came up with was to use the dcterms:modified element in our RSS feeds. The element would contain the date of the last time a user directed change was made to the item, in this case the item would be a blog post or photo album. This means that RSS readers can simply test the value of the dcterms:modified element to determine if a post was changed by the user instead of performing inefficient textual comparisons of the contents of the post. In fact, the main reason I don't provide support for detecting changes in RSS items in RSS Bandit is the high rate of false positives as well as slowdowns caused by performing lots of text comparisons. Having this element in RSS feeds would make it a lot easier for me to support detecting changes to the contents of items in an RSS feed without degrading the user experience in the general case.

Of course, without RSS readers deciding to support the use of the dcterms:modified element in RSS feeds this will continue to be a problem. I need to send some mail to Mark Fletcher and the RSS-AggDev mailing list to see what people think about supporting this element as a way to get around the "bogus new items" problem.

* Note that this doesn't break links that reference that image with the old URL.


Categories: MSN | Syndication Technology

The Microsoft Careers website has a section entitled Meet Our People where various profiles of employees of various divisions at Microsoft are highlighted. For whatever reason, I was one of the people picked this year and you can go there find my employee profile here.

The process was quite lightweight. I spoke to an interviewer on the phone for several minutes and then she sent me a transcript of key parts of our conversation which I got to edit or veto. After that there was the photo shoot and a couple of weeks later, voila.

Reading the profile, there is some stuff that stands out to me. I've already been here 3 years so I'm no longer a new guy yet I still don't feel like part of the B0rg. There is also the point about management being interested in your career and you as a person.

  • A while ago Mike Torres and I had a presentation for Brian Arbogast which was my first presentation for anyone with Vice President in their job title. While setting up my laptop, Brian chatted with Mike about a post he'd read in Mike's blog about wanting to upgrade his home sound system. Brian also mentioned that he'd remembered seeing my name come up in a lengthy internal email thread where I was in a debate with Vic Gundotra and didn't back down, he commended me for sticking to my guns. That was cool.

  • After a recent all-hands meeting I disagreed with parts of the presentations made by David Cole and Steve Liffick, so I sent them some critical feedback. They not only received it well but after exchanging some mail, Steve suggested we meet in person to discuss things further. When I eventually met with Steve, he readily accepted my  feedback so we spent a most of the time talking about Social Software as the Platform of the Future. That was fun.  

  • Our dev manager, Farookh Mohammed is just as interested as I am in making sure we have something akin to an MSN Developer Network when we start shipping our APIs for accessing MSN Spaces and we'll be working together to evangelize some ideas around this topic to upper management.

  • My boss's boss knows I'm fairly good at communicating my ideas in writing and that I'm passionate about social software so he's been encouraging me to produce a whitepaper that can be shared with various folks around work. 

  • My boss, Mike Pacholec, has told me I need to attend more conferences and has suggested that I should plan to attend at least one more conference before the end of the year.  

At the end of the profile it states that I have my dream job which is true. I get to work on software that I like using and which directly affects millions of users. All of this in a ship cycle that is measured in months instead of years. What's not to love?


Categories: Life in the B0rg Cube

May 2, 2005
@ 06:40 PM

Happy 50th birthday to Dave Winer. He is one of the few people in our industry to say that he has changed the world with the work he has done. From being one of the co-authors of the SOAP 1.1 specification and the author of the XML-RPC specification to being a key evangelist of the power of weblogging and RSS, Dave's impact has been felt across the world.

Dave and I have had our differences in the past (and probably still do now) but there are few people who I can point to in the software industry whose existence has been as much of a net positive to us all.


A bunch of folks from the Spaces team were in Asia recently talking to customers about how they used social software applications like instant messaging, blogging tools, email, social networking services, chat and dating sites. Recently Moz Hussain who's one of the product managers for the Spaces team provided some insights on current thinking about classifying users of social networking applications.

Below are excerpts from his blog post

In a people centric world, I see two major dimensions of people interaction: who I want to know about and who I want to share information with. This leads to four distinct segments as shown below.


1) The Content Consumer 

This group values their privacy but is voyeuristic in its desire to learn about others. One focus group participant explained how they like to compare thoughts and lifestyles of people in their social status and age bracket. They primarily use the Internet to search for information but rely on traditional communication methods for keeping in touch with close friends.

This group needs easier ways to find information, including user generated content, on a particular topic. A company that does this well in Japan is Livedoor with rich categorization and editorials on user generated content.

This group is often slightly older, but not exclusively so.

2) The Relationship Builder

This group is interested ONLY in their close circle of friends. They neither care about or want to share information with strangers. We have seen much higher prevalence of this group in Europe than elsewhere.

Relationship Builders use a variety of online and offline communications tools to share private thoughts and memories with those close to them. This can include photos, opinions, what's going on in their lives. The reason can be to keep in touch, or just for fun with friends. In China, MSN Messenger is seen as a great product for this group. In Japan, MIXI is the leading web based service for this group.

As many social networking tools are new to this group, they would benefit from greater education on the scenarios that are applicable to them.

This group is often slightly older, but not exclusively so.

3) The Social Networker

This group enjoys meeting people, even strangers, online and interacting to kill time. They enjoy chat rooms, dating services and generally having multiple superficial relationships. It is not uncommon for this group to have more than 200 contacts in their Messenger contact list.

This group is often younger and accesses the Internet from net cafes or mobile phones, i.e. away from prying eyes of parents and room mates. They often use paid for content to enrich their entertainment experience.

Many early web based social networking products such as Friendster and Orkut effectively targeted this segment.

4) The Content Creator

This group is the classic "Maven". They consider themselves experts in a field (ranging from shopping to high tech) or have a desire to express their creativity publicly. They want to get their opinions heard. They use the Internet to research topics of interest, and then create blogs to write their take on the situation.

This group is also interested in rewards for their content and opinions. There is an opportunity to align this group to service provider interests with appropriate reward mechanisms.

This group is also slightly older and has a narrower range of feature interests.

These groups are present in every geography, their relative size varies. The challenge now lies in addressing their needs and figuring out how to use each group to create a synergistic ecosystem of viewer and authors.

All great fun and why I love this job so much!

I think this classification of users of social networking services hits the mark. I also think it is quite cool that we are actually sharing this kind of information with the community of social software enthusiasts as opposed to keeping this as private market research.  I wonder what the various folks on the Corante Many2Many blog would have to say about the above classification scheme.

I like the fact that this classification takes into account online social butterflies like Robert Scoble as well people who simply want to use social software to enhance their existing real world relationships.

Putting the above data together with the Degrees of Kevin Bacon post by Mike Torres seems to imply that we are very interested in how people use social networking applications. I wonder why?



Categories: MSN

April 28, 2005
@ 08:26 AM

I tend to talk about MSN Spaces a lot which makes people think I work on that team when in truth I work with them as well as with the MSN Messenger and Hotmail folks. Although its easy to find folks who work on Spaces by simply starting from Mike Torres's blog, it isn't so straightforward for Hotmail or Messenger. Below is a short list of a few of MSN communications services folks blogs I am aware of



There are a bunch of other blogs by the folks on the various client and server teams but these four are the ones that talk most about the products they work on. In fact, if you browse the various blog rolls on their spaces and mine you'll notice that most of the MSN folks use their spaces for personal stuff not work blogging.


Categories: MSN