Is Microsoft still a safe bet for the IT pro? In a word: No.
As an IT worker, you have to gamble on which technology will keep you fed and housed over the coming years. For a really long time that has been Microsoft, but you don’t get paid on the past. Instead you need to peer into an uncertain future.
The Windows 8 launch was remarkably stealthy compared to the good old days when it was an event on an Apple scale. In fact, if you weren’t an IT pro you’d easily assume that Apple was a majority of the world’s IT. In the UK there was so little in the way of launch events that I cornered an Microsoft’s PR to find out if they’d “forgotten” to invite me.
And although you might not care about the PR for Windows 8, you should because of the arcane ways that strategic decisions for IT are made. Gone are the days when the users neither knew nor cared if their email client was Notes or Exchange... now they do care and they do blame you for choosing Notes.
Be clear about what I’m saying in this article: I really don’t care if C# is better than Java or whether the pain of dealing with nasty Oracle reps is worth it. Too many bloody years in IT have taught me that there is at best an occasional correlation between the “quality” of a product and how useful it is on your CV.
Like many Reg readers, I’ve made some good money over the years from Windows upgrades: installing them, producing standard builds for installations, testing, bossing people around to do it and writing code to exploit new features and deal with incompatibilities. Inevitably this rippled into servers and out into security, connectivity and hardware upgrades.
A stealthy launch of a desktop operating system that looks more at home on a phone isn’t good for our bank balances, but Windows 8 is not all bad news. Now that corporates have seen Windows 8, they can make a decision about what to do with a vast portfolio of Window XP boxes and the thankfully smaller Windows Vista population, so there is work to be had on moving to Windows 7.
I got a lot of crap about suggesting that Java has more yesterdays than tomorrows even though there will still be millions of Java developers for years to come. But what really matters is supply and demand. If demand declines, you don’t care about the absolute number of jobs, you care how many are chasing the ones left. VB.NET is definitely in that death spiral; it was once by far the most popular dev language on the planet - I was a founder member of the VB User group - while it is far from extinct, its supply and demand are headed exactly where you don’t want them to go.
So where are the jobs in Windows?
A good career option is by necessity not easy; it has to have what economists call a barrier to entry, which can be the cost of gaining the skill or how difficult it is to learn. That means moving to the server and away from desktop, which is something you ought to have spotted anyway, since a server is more expensive and more complex, allowing you to follow the idea of mastering the most difficult thing you can.
If you may see an easy way of making some cash, take it with my blessing (as if I could stop you) - but make sure that you have a plan for job+1 because lucrative easy skills get crowded quickly.
Unlike it’s nearly loved sibling Windows 8, Windows Server 2012 seems to be shaping up as a classic Microsoft product: the people I respect who use Server in real life think it’s great, albeit with more security and integrity constraints than they’d like. Those work to your advantage, since people pay you to work around awkwardness but are more likely to choose a system that doesn’t go titsup as often.
Exchange is also becoming ever more complex. My tame Exchange expert Robert Neuschul reckons the latest drop has now slipped over the event horizon where no single person can master all the things you need to be completely in control, which is good news.
Also you cannot easily migrate off servers like Exchange and SQL Server. We can argue about their merit, but the fact is if your employer is running them today it’s better than 90 per cent probable that’s what will be running five years from now - when you will be dug in even deeper.
MSFT = A Bad Apple
Developers face the problem that MS doesn’t love them anymore, seeing us as disloyal peasants, best expressed when Visual Studio Express was intentionally crippled to produce only Metro (or No-tro, or whatever it’s called) apps. Microsoft was beaten back for a while, but its malign intent is clear: the joy of Windows has always been that although it is closed source, any fool could write an app to do anything they felt appropriate. The reason Microsoft won the operating system wars was the self-fulfilling prophecy that coding to Microsoft APIs was "the future". This historical consensus among IT bods means that today Microsoft has vastly more business apps than Apple or any other firm.
In the golf clubroom, Microsoft chief executive Steve Ballmer gets the sort of advice that he should get from grown-ups: that Apple is good at being Apple, a locked-down environment where they regard any money made by others from their products as stolen. Back when Microsoft was the future it took the view that the more money other people made in the Windows ecosystem, the more money Microsoft would make.
Be clear, the number one threat to your career is the Windows App Store. Do not believe that the torrent of horror stories you read are down to incompetence - Microsoft still has some of the smartest people in the business. Apple has almost no presence in software or music creation and so cares only about making more people buy more stuff.
Almost everyone who writes code for money is a competitor of Microsoft, either because their products conflict or because they enable the use of competitive products like Oracle, or worse still open source. Antitrust laws mean that Microsoft can’t ban Oracle client code from its app store, but it can screw with people who produce document management solutions or accountancy packages that aren’t hosted on SQL server.
Alternatively, if you take the tack that the folks who run Windows App Store really are that incompetent, do you want your career in the hands of people like that?
Thus a big part of managing your skills as a Windows developer is portability, which is tough. Unlike the slow death of VB.NET, C# is doing rather well, though both are closely tied to Windows, so the path of least resistance is to try rather hard to get server-side skills by working on that part of the project.
There’s no point working out which server skill is more career-friendly because your employer has made their platform pick and is usually unsympathetic to arguments of the form: “Could we move to SQL Server because it will help me get a better job?”
Silverlight - AKA Twilight - is not in a good place, so you need to get out in an orderly way. Demand will not collapse because people have ongoing projects, but no rational person is now getting themselves into it. However, although Microsoft sees Silverlight devs as friends, they're not going to have another baby and I suspect you are already learning HTML 5.
.NET is not quite in the same place as Twilight. Microsoft is still sort of pushing it forward, just not very hard, however it will take quite a while for firms to stop developing for it because for many there is no easy or obvious path. But when that does appear, it will be bloody...
C/C++ is portable and although the absolute number of developers is smaller, the number of jobs is comparable - but be clear that modern Visual C++ is only standard if you want it to be and contains non-standard extras. Note that I say “modern” Visual C++; Microsoft earned an unfair reputation not even trying to be standard, unfair because it was actively trying to make Visual C++ a lobster pot that was easy to move into, but not away from.
That has mostly gone away and Microsoft is pretty close to standard - just make sure you use Boost and get your STL skills up to speed. The only knowledge you need of MFC is the ability to describe some of its more vicious defects.