This post is something that has been bubbling away for quite a while now, and hopefully it doesn’t come across as a bit of a rant. However, I’ve been doing this for 14 years, so have some knowledge of what I’m talking about, but if you have comments, please share in the Comments.

I work as a Consultant, Consultant Developer, Developer or Systems Analyst depending on who you talk to. It’s all just a title, though Consultant Developer is my preference as it is easier for anyone to understand (and it contains the D word..  ).

One of the things that has become more apparent to me recently is that there is a wide range of skills that Consultants have. Ranging from having minimal experience in anything other than their specific area (which they know well), to having in depth experience in everything related to their area. This wide variance seems to be related to either age (so time in the industry), or passion (so the desire to learn more). Sadly, it seems to be comparatively rare to have someone who has a wealth of Experience, and still retains Passion for it.

So given that you can’t gain experience in the industry without time, and Passion isn’t there for everyone, what skills should all consultants have?

In my opinion, they are the following:

1. Ability to install and Configure Windows

If you can’t install Windows, then you don’t have a full understanding of your primary platform, and here, I’m not just talking about the current desktop version. I think you should be able to install the most recent couple of versions of the desktop (XP and Win7) and server(2003, 2008 and R2) OS’s.

This will then give you a level of understanding with Domain security, Networking and how to set up Services (IIS, Active Directory, etc.). While you may not need to do this on a Production server, you may well need to do it for a development (or Test) environment.

2. Understanding of Databases

It’s rare that an application doesn’t require some form of database (from a full blown enterprise system, down to something with a small local store in SQL CE, for example), so not even having a basic grounding in some form of database is a substantial flaw in my mind.

3. Be aware of PowerShell

PowerShell functionality is available for almost all Microsoft products and is part of the Common Engineering Criteria for all Microsoft Server products, so if the MS products you are using don’t have it now, they will have with the next version.

Newer products allow you to view the PowerShell script generated through the Admin GUI, so you can improve your skills easily.

There is a very useful handbook, called the Windows PowerShell 2.0 Administrators Pocket Consultant (also available in Kindle form), which I’ve found to be really helpful in answering questions.

4. Know how to phrase a query in Google

There are alot of people that I meet, and work with who are unable to find things. When asked, they say they’ve checked on Google, but when I look, it’s there at the top of the first page. So, the ability to phrase a query is key. It makes you self sufficient.

5. Use StackOverflow, SuperUser, ServerFault, etc.

These sites are used by a wide range of Developers and IT Professionals, and if you are able to either search for an answer, or phrase a coherent question, you’ll get a prompt response from these highly useful sites.

Stack Overflow profile for Nick Haslam at Stack Overflow, Q&A for professional and enthusiast programmers Server Fault profile for Nick Haslam at Server Fault, Q&A for system administrators and desktop support professionals
Super User profile for Nick Haslam at Super User, Q&A for computer enthusiasts and power users