Are you an IT pro? It's no longer safe to bet your career on Microsoft
Obviously don't just become an iOS dev, though ...
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.
Powershell is your friend
Ever since I scrawled my first Unix shell script in 1982, serious Unix Ops have included scripting as a mandatory part of their skills. That has helped their market value in several ways, but not always ones you’d like to hear. Yes I know that your skill is knowing which option to click and it’s in no way a more skilled task to type /etc/shutdown rather than clicking, but script code looks harder. When you have automated a task by scripting, you have delivered some useful visible productivity that is denied to the equally adept clicker.
Few Ops have any training in software engineering and many sneer at developers, so their bureaucratic obsession with version control and documentation rarely trouble you. You can pick a clicker off the street and as long as you interview them well you’ll have someone who can be productive before long.
Good scripts, the ones you are proud of, have Ifs and loops and other constructs that mean even a scripting ace will need time to make any sense of them and will be reluctant to change them. That's especially the case since Ops scripts can do far more damage than bugs created by developers, and since a scary percentage run with administrator privileges can damage far bigger things in more interesting ways.
Let’s be honest here, if a non-technical manager peers over your shoulder when you have a black text-based window open full of cryptic characters he will rate as being far more intelligent than if you have pretty icons with text like: “Let the Wizard help you through this simple task.”
Powershell is, well, powerful - giving you the sort of access to the internal objects of the big servers that makes it worth learning just to be better, but it's really just for Windows. That means, if you haven’t got Cygwin with its nearly Unix toolset and shells, then nothing it will cost you to download is a good investment.
VBA is not so crap as we say it is... Well actually, yes it is, but although these days it has little existence independent of Microsoft products, it is critical to most outfits that have Excel - which is close to everyone. It also drives Outlook and Powerpoint, so if you are a developer who finds that things have gotten very cold, then it is worth getting better than the average VBA developer - which is not in any way hard.
I’ve wanted a Windows tablet since Microsoft first demonstrated one to me in 1993. Not only do I buy my own Microsoft software (the days when Microsoft sent it to me free are long gone), but I will buy a Windows tablet if and when they make one, for the same reason IT managers very nearly like the Surface.
iPads are close to impossible to integrate fully with corporate IT, regardless of what operating system your servers are running. Security? No, not really, and corporate PCs require that all the apps for a user are available, not one that’s “quite like it”. They want the same version and remote access is only good if you have a signal all the time.
Tablets are sexy and organisations want to deploy them to support high-profile staff like sales and senior execs; they also most often hate the idea of BYOD because they will have to pay you far more money to look after a dozen types of devices - and, more importantly, their power will be reduced. They can’t wait for software to get through the actively malicious app store, so the job market based upon the Surface is stillborn.
But when a decent Surface comes out that runs Windows apps, there will be some work in rewriting code to cope with the bizarre constraints that Microsoft requires. And, if you ever work out how to get your app approved, then there will be people who want you to explain it to them.
You should bet your career not on Microsoft, but on you. Get your server skills upgraded and start looking at how you can hedge your bets with an option to move to a different platform. That applies to even the high-flying Microsoft products, because unless you’re very unlucky your career has decades left to run and no hot skill today will get you even halfway there. ®
Dominic Connor is a headhunter who has been a professional developer on every major and most minor MS platforms and is a director of a firm that is a Microsoft Partner.