My previous role at Microsoft was in the SQL Server team. I spent quite a bit of time there, and had some really great experiences. I was able to travel and speak as well as doing my “regular” job in the programming team, so I got to meet a lot of people. I also teach at the University of Washington, and see a lot of companies and students in that role. Last year I moved into the Windows and SQL Azure team, and from all of those sets of experiences I am now getting the same question quite frequently:
“What should I learn next in my technical career? Cloud Computing? Azure, something else?”
Well, I don’t think it’s a great idea to leave something that you know well to start out in a new area, just for the sake of change. If you enjoy what you’re doing and where you’re doing it, the key there is to enhance that value as much as you can. If, however, you are looking to stay on the cutting edge, or you’re looking to make a change for other reasons, there are a few places that I’m finding are evolving quickly. I’ve also found that in a new market, be a generalist, in a mature one, be a specialist. It’s all about supply and demand, so whatever is needed, try to fill that role.
Note that these are my observations. My particular set of customers and students stretch across the US and into Europe, so I don’t have as much visibility into the Asia region. You may find that your area has a different emphasis, so your mileage may vary. These are the areas that I am finding that have a growing interest, and places where I see people getting new jobs. Most of these are within companies, but that doesn’t mean you can’t use these skills as a self-employed consultant.
Just like the “junk drawer” we all have in our kitchens at home, the data we store on our systems is often out-of-sight, out-of-mind in both IT and in a company. But with the latest high-profile break-ins, hacks, leaks and just plain thefts companies are starting to realize that a security breach hits the bottom line, in their reputation, and in their ability to attract and retain customers. So your next move - before you consider Windows Azure or anything else - should be security.
Am I suggesting that you leave your current role and become a general security specialist? Well, you could do that, but you would actually raise your profile significantly right in your current role if you become an expert in hardening the areas you are responsible for. Make sure that management and the rest of your team know that you’re the “go-to” person for security in your area. You’re not only helping your career, you’re helping your company and you’re helping my data - and yours - stay private.
Many companies are afraid to trust the cloud, often because of security. So they take an interim step of using Infrastructure as a Service (IaaS), often on-site and controlled by the IT department, which is a “private cloud”. In all aspects of computing, this has an impact. While the service model (how things are deployed automatically) comes later, you first have to be familiar with virtualization. So take time after you learn about security and find out how virtualization works, how each vendor implements it, and how it impacts your area.
Cloud Computing Technologies
It’s everywhere. Open any technical magazine or navigate to any IT website and you’ll see the cloud mentioned. Your company is hearing it, so you need to learn it. I recommend understanding the difference between IaaS, PaaS and SaaS, and of course learning Windows Azure. I have a full learning plan here that will get you started. Again, it’s not something that will necessarily replace what you have today - but it should certainly be an option for your computing paradigms going forward.
Departmental Application Development
Wait - am I talking about something like <gasp> Microsoft Access programming? Why yes, I am. But not necessarily Access. Let me explain.
Because of the cloud, savvy technical business folks can “go around” IT with a simple credit-card. When they need to author a simple application to do what they need to do and share it amongst themselves, they may just do that without you. And they might use Access, or any number of other technologies. I’ve been seeing this quite a lot lately.
So why not help them? Hold some classes in proper, secure lightweight application design. I recommend Lightswitch, personally - it was designed for this very purpose. Or any programming language that you’re comfortable with. Just show them the right way to either write the code themselves, or the right way to engage you to do it.