Thursday, April 30, 2009

What else I hate about Microsoft "programming"

Answer: I never know what's actually going on!

I work with some guys who are pretty knowledgeable about Microsoft development, very solid guys.

Still, when something goes wrong -- the data load craps out, the website doesn't show some reports, the reports server doesn't respond quickly -- the usual answer is to simply restart. "Restart IIS" or "delete the reports and then re-deploy them" or "delete all the data from that table and reload it from scratch". Sometimes, I'll have an error that will persist for half a day and then suddenly disappear, and they'll say, "Yeah, that happens sometimes, you just keep trying."

Restarting frequently works. If you've ever worked on a support desk, you know that one of your friends is the "restart your PC". That often resolves whatever weird error your user has.

But that isn't solving the problem, it's just erasing the situation that created it, in the hopes that it doesn't occur again.

I think part of the problem is that Microsoft targets users (in this case developers) who just wants to get it done, and not users who want to know the dirty details. Creating anything involves going through a wizard process. They spend lots of resources making sure things happen automatically.

What they don't spend their resources on is making the underlying mechanics visible. Typically, you'll get an error, and then the strategy involves looking up the cryptic error message in Google. From that, many different suggestions will be returned, and you look through each one to see if it applies to you. This is not debugging.

As a result, I never feel confident that things will work correctly. I never feel confident that when things fail, I will understand why they're failing. I never feel confident that if I don't know why things are failing, I can debug it to the point where I can find a root cause.

It takes impressive effort to automate so much, and for a lot of people -- Microsoft's target audience, presumably -- this gets them to the point they need to get to. So, this is not intended to be a Microsoft bashing exercise.

At the end of the day, though, as I mentioned before, if all programming was strictly programming on the Microsoft platform, I doubt I would have lasted long as a programmer.

No comments:

Post a Comment