New Year's Resolution for 2007
As the technical director for our company, it's up to me to chart a path for the company through the next year and beyond. My current plan involves:
1. Less dependence on Microsoft
Let me explain why. I've been a developer who has been using almost exclusively Microsoft technologies for the past 8 years. When I started, MS development was just easier and faster than anything else out there, and if you needed to upgrade to a new version of a development tool ... it just worked. I upgraded half a dozen VB apps from VB5 to VB6 in an hour and rolled them out the next day to 400 desktops with no problems. Then .NET came around and that was a bigger transition. Fine. Most of our sites don't use .NET because of it. If you have the time to rewrite your website from the ground up in a new technology just because you thought it was cool, that's awesome. I'm happy for you, really, because you've got initiative and time. Meanwhile, I've got 180 sites written in ASP 3.0 that all work, and work well. We're not going to undertake an expensive, non-billable effort to redo the past 6 years of development.
That's understood. When .NET came around, Microsoft flat out said, "yes, we realize it sucks but that's the way it is." And we all kind of forgave them because, up until then, upgrading technology was something that was entirely within the realm of possibility.
Then Windows 2003 came out, and it was a giant kancho(*) for a lot of us. Win2k3 makes too many assumptions about my practices and it's wrong about as often as it's right. But upgrading wasn't terrible. We were able to do so and only lost a couple dozen hours (again, non-billable). We did it because Windows is easier to maintain than Linux and because we still wanted to do ASP and ASP.NET development
Then .NET 2.0 came out. We have a few .NET 1.1 web services that we wanted to use and we hoped to replace some of our ASP pages with ASP.NET 2.0 pages. Can you run them side-by-side? No. Another kancho. I'm sure there's a good reason for it because there are a lot of smart people working for Microsoft. However, I'm not interested in that reason. I'm interested in my team and our work.
Can you easily upgrade a site from 1.1 to 2.0? If you've done it, great. I'm happy for you. It took me yesterday (yes, I came in during a playoff weekend to do this) and today to get almost back to square 1. Except that my web service doesn't recompile because the ConfigurationSettings class is now obsolete?
Kancho on me, I guess.
These things, in and of themselves, suck. The decision makers at MS have let me down repeatedly. But these are just indicative of a lot of things happening at Microsoft that are just a constant stream of urine in the cheerios of developers around the world.
Have you tried to find help on MSDN lately? It used to be one of the best collection of documentation ever assembled. What happened?
Have you tried to get info on licensing? Or being a MS Partner? I don't want to have to spend 45 minutes looking around their site to find out how much money I have to give them.
Really, all I'm saying here is that Microsoft used to be about making life easier for "Developers! Developers! Developers! Developers." As a developer, this isn't true any more. As a technical director, now I have the abililty to look around and say "we're not getting what we used to get from Microsoft, so why are we not only still giving them piles of cash, but why are those piles getting bigger?"
Some of their products are solid. SQL Server is a good example. It just works and you don't really have to worry about it. I never have to "reboot SQL Server." The development tools are also great, provided that you're making small (1000 files or less) sites. I'm just having trouble seeing the value that they're adding to the business that I'm trying to run. I know I'm never going to be able to get us entirely away from MS, but my goal is to make my job less dependent on the vagaries of Microsoft's decision making, which I no longer trust has any of my interests in mind.
(*) - Kancho is a kids game in Japan. It's called Ddong-chim in Korean.