Unsupported Scripting

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.

Philip Richardson

Comments (6)

  1. I laughed out loud when reading this interview between Phil and Mort on the CRM Team blog . Phil is trying

  2. Pete says:

    Best blog yet, It Philip did a great job getting the message across while being funny.. From personal experience I can say, give it some thought before getting excited about all the unsupported opportunities available 🙂

  3. Miklos Hollender says:

    OK, but you should submit them on a non-official blog then, or something.

    You Microsoft guys really don’t understand something: the customizer isn’t the user. The customizer is the reseller. So the customer goes like I bought this program from you and it doesn’t do X and Y and I am really disappointed because I think every CRM software should do X and Y. So fix it. Now. No ifs, no buts, fix it. That’s what resellers have to do. Which means resellers need to do unsupported stuff. Not because they want to, but because they are forced to.

  4. Simple Simon says:

    Miklos has nailed it for sure, but I also understand the MS position (having been-there-done-that all the way back to the ’70s IBM mainframes).

    P.S. I’m reading this blog preciseely because of the "So fix it. Now. No ifs, no buts, fix it." attitude that I am dealing with right now!

  5. Dave Schinkel says:

    >>>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.

    The overall moral of the story is:

    1) you just bought a canned system that you are reliant on Microsoft providing the "functionality".  The concept of this system being extendable in any "normal way" such as using standard .NET, JavaScript, or even CSS is "unsupported".

    So the conclusion is, custom code it with ORM, design patterns, etc. and you can do "what you want" and create "what you need" for the business as a whole.

  6. Sara says:

    OMG.. What the hell was that…. Is this a joking blog or a technical one.. 😉

Skip to main content