2010-10-19

Ranting about Microsoft and AdECN

Well, I spent 3 years trying to drink the Microsoft koolaid (or borrowing their own words, eat the dogfood) and I think I can safely say that the reason I don't like it goes a little deeper than a lack of familiarity. Bye bye Visual Studio, you crashed pretty frequently and you were slow. Really slow: while running on my beefy post-acquisition workstation VS was always slower than emacs on my crappy pre-acquisition computer. It's slower than IDEA on my pre-acquisition MacBook. I haven't been playing with IDEA for very long but I haven't made it crash yet, compared to crashing VS on a pretty much daily basis. I won't miss that tool at all. I'll kinda miss .NET and C#, but having looked at Scala, I don't think I'll miss it much. I certainly won't miss the ill conceived and poorly implemented pile of dung upon which we were supposed to build the BI system. Even a company the size of MS should know better than to divide it's efforts across multiple implementations for solutions to, say the problem of cloud computing. For example, the cosmos storage and sputnik / scope debacle. Do we, er, I mean "they" really need a proprietary, internal only cloud computing solution when they already have a proprietary external product? Convergence is a common buzzword at Microsoft and was an excuse at AdEcn to adopt the shoddy work of other teams. If things were built with quality, it would make sense to converge, but at Microsoft, or at least the parts of AdCenter with which I became acquainted outside of AdEcn, quality was more of a buzzword than a reality. I suppose that a triple-booked development team is likely to sacrifice quality, but I also suppose that triple booking them in the first place is a sign of gratuitous incompetence at higher levels of leadership. Imagine a programming tool which takes 14 man days of senior developer time in order to support the smallest "non-change" imaginable? Absurd you say? Nope, that's sputnik. But surely it must be straight forward to see what the changes are and compare them to what they should be? This is generally the case in the world of enterprise software, but not so with SSIS and it's derivatives. I can not for the life of me understand how Microsoft has been successful with SSIS. The fundamental idea is solid, and the execution is excellent... in fact, it's an excellent tool, except for one critical problem: the format of the .dtsx file. These files are more unreadable than bad perl. Small changes to an SSIS package in the GUI editor can lead to enormous and generally unrelated changes in the .dtsx file, rending standard diff tools useless. The absence of a diff tool makes meaningful code-review impossible. Change control, at least in any traditional sense, is equally impossible. The monolithic nature of the editor and the runtime engine make unit testing effectively impossible. SsisUnit is an attempt to address these failings but implements only the first and easiest 10% of what would be necessary for a UT solution, mocking for example is conspicuously absent so testing a loop forces you to test all the functionality that is called inside the loop. Microsoft is apparently unaware of this issue or at least hasn't address it in any way that I could see and I asked on the internal distribution lists while I was an employee there. This is intended for enterprise use? Are you joking? But the crappy software is to me just a symptom of Microsoft's deepest problem. I am referring to the lack of competent leadership. I will always be frustrated by how the upper echelons fumbled AdECN. First by crippling it with internal partners who were not invested in it's success and then with repeated blunders and meandering on the rush to market. Millions of dollars and four years of developer time and passion all wasted. The multiple competing solutions approach is another symptom of Microsoft's disease. Managers, particularly the higher level ones, don't seem to be capable of making the most important kind of decision; the decision to not do something. The giant is so scatterbrained that it can only barely manage to push out the products which are critical to it's existence. It leaks money, time and intention from a thousand suppurating projects. I will paraphrase a former co-worker.
The mission statement used to be "A PC on every desk, in every house", but now it's some generic new-age babble about potential.
This company has lost it's way. I'm glad that I will no longer be wandering down random paths with them.