views:

370

answers:

6

What extra skills should developers interested in Consulting possess and what is the best way to gain them?

see also this followup by Kristopher Johnson

How does one get a true "consultant" gig, rather than just being a contract programmer?

+3  A: 

Check this page for plenty of valuable advice: http://www.unixwiz.net/techtips/be-consultant.html

HTH, Andrei

Andrei
+3  A: 

To be a successful consultant you have to have a wide variety of skills. Obviously, you need the technical skills for whatever you are working on. You will also need to be proficient in a variety of soft skills as well. The soft skills generally fall into categories such as communications, time management, team leadership, running meetings, etc.

It is a tough balancing act. A lot of companies that hire consultants like to see very specific technical proficiencies in the area of interest, but you will also need to learn a lot on a job by job basis. On the other hand, specializing can reduce your opportunities if the client is looking for another skill.

Jason Z
+1  A: 

A classic book on the subject may be helpful: http://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully/dp/0932633013

Funny enough, it spends quite some time talking you OUT of going into it (or at least making sure it's the lifestyle you want to live).

Richard Morgan
+1  A: 

Depending on the type of consulting, some skills you might not have but will want include:

  • technological change -- perhaps the most common problem IT consultants face is helping organizations transition to new technologies
  • financial analysis, including some knowledge of GAAP and double-entry bookkeeping
  • forecasting, including stochastic prediction, Return-on-Investment, hurdle rate, discount factor, and time-value-of-money
  • organizational management -- the Mythical Man Month and PeopleWare are both good books, but also try some non-programming classics, and read Harvard Business Review case studies
James A. Rosen
+2  A: 

A consulting firm I know has made Peter Block's Flawless Consulting book mandatory reading for anyone they hire.

The chapter titles in the table of contents give you a good idea of what's covered. Here are some of them for easy reference (you'll see that it covers the "soft" skills of consulting, rather than the "hard" technical skills):

  1. Contracting Overview
  2. The Agonies of Contracting
  3. The Internal Consultant
  4. Dealing with Resistance
  5. From Diagnosis to Discovery
  6. Getting the Data
  7. Managing the Feedback Meeting
  8. Implementation
  9. Strategies for Engagement

There's also a companion Field Book.

mdy
+10  A: 

I am a consultant and the following would be how I describe my collegues (and hopefully also myself):

  • T-Shaped - Have a broad but shallow knowledge of a lot, and then a deep but focussed knowledge of a little.
  • Enthusiastic - You'll need to be to develop and maintain the T-Shape
  • Personable - You'll need to go into a variety of different situations, with little or no preparation, and get the job done with the people who are already there. Be collaborative.
  • Commercially Aware - What you see on client sites might not always maken sense to you technically, but there is generally a commercial reason for stuff. There is also generally a commercial reason for your being there too. Remember your company has commercials also.
  • Process Aware - You will see a wide range of people, with a wide range of skills. what seems to be more generally lacking is knowledge of process. If you're a good developer, or dev team, you can still fail to produce software. Know about more than one process (RUP, Agile) and remember, they aren't just applied slavishly. Be able to tune them to the situation at hand.
  • Attention to Detail - People will look to you to be better than everyone else. The easiest way to do this is to do what you say, and do it dilligently.
  • Flexible - You will get stuck on a wide variety of projects (generally with little choice) and have to fit into how things are done when you get there. This might mean using a different IDE, set of frameworks, build environment, etc. etc. Make sure you aren't just productive with a specific set tools in a certain environment.
  • Have Opinions but not Opinionated - Despite what you might think, you'll rarely meet stupid people though you might be tempted to think they are. There are generally very good reasons that clients are in the situation they are in. They knew enough to bring you in to try and improve things. Share your knowledge, but don't try and change everything at once. Pick your targets.
  • Admit when they don't know the answer to something - This might not be your experience of all consultants, but the good ones don't pretend to know everything. They do commit to going off and finding out though.
Andrew Harmel-Law
Definitely good food for thought there.
kaybenleroll