I often review some the technical for this blog. Often many samples which are submitted are of an unsupported nature. The following exchange is quite common (let’s call that other person ‘Mort’ after the classic Microsoft Persona).
Phil: Sorry that’s unsupported and it can’t go on the team blog.
Mort: But the script is totally harmless! It’s way less dangerous that some other stuff on the internet.
Phil: Sure, it’s not very dangerous, but changing that stuff with script was never tested. If we tell a customer to go do that and then something goes wrong what does support do?
Mort: Oh… but what if we say it’s unsupported?
Phil: Well if Microsoft publishes something people will assume we will stand behind it. What happens when those people call support?
Mort: OK whatever, I won’t post it. Why is this thing unsupported anyway – it seems so simple!?!
Phil: Well we might want to change this part of the DOM from release to release. If we allow lots of people to script against all of the DOM then we severely limit ourselves to improve our UI. We set ourselves the goal of making sure everyone’s customizations and scripts work after upgrade. Some scripts, even though they are 100% safe, will never work after an upgrade. We don’t like to support stuff that we know we will break in the future and we can’t upgrade.
Mort: That seems more complex that I originally thought. How do I know if a script is supported or not?
Phil: Did you look in the SDK? We publish updates on a regular basis. If you can’t find it documented there then you should assume it is unsupported?
Mort: What if I find the sample on a blog – even the team blog?
Phil: Do you believe everything you read on the internet? Yes, it’s true we have posted some unsupported stuff on the team blog in the past (example). This was a mistake. It was never our intention to do so. We don’t delete posts from a Microsoft blog as deleting blog posts is a bad PR move. We do always update these with appropriate caveats.
Mort: Why are you so mean about this stuff?
Phil: Because I want customers to have a great ‘overall’ experience with our product. If that means missing out on some instant gratification for a better experience over the entire product lifecycle then so be it.