On this blog, I’ve talked at length about both software development and consulting. In fact, I have an entire posting tag devoted to transitioning from being a developer to being a consultant. This includes a take on why everyone should want to. So I’ve got the subject of software consulting surrounded. But now, I’d like to get into the nitty-gritty.
I’ll link off to plenty of opinions for further reading as I go, but this is all about defining what software consulting is, how to start doing it, and how to make a living.
What is Software Consulting? For That Matter, What is Consulting?
Let’s start as simply as possible. In order to know what software consulting is, we need to define consulting itself. The business dictionary has a pretty serviceable definition (emphasis mine):
The providing of expert knowledge to a third party for a fee. Consulting is most often used when a company needs an outside, expert opinion regarding a business decision.
Simple enough, right? As a consultant, businesses hire you, an outsider, to furnish an opinion. You’re selling your own hard-won knowledge. And what you’re not selling is your labor.
So software consulting is just doing this same thing, but with a narrow focus on software. Right? Still pretty simple? Case closed?
Well, the case should close there, but, sadly, it doesn’t.
Why Most Definitions of Software Consulting Aren’t Helpful
We in the software industry have managed to take a simple definition and… complicate it… to the point where it means something totally different. Think of the way the definition of “literally” also includes “not literally.”
Go do a google search on software consultant, and look at the definitions you find. Seriously, go look. You’ll find various definitions, but they generally add up to the same idea.
Software consultants are software developers that work for companies that sell software development labor.
How did this come to pass? Why does the definition of “software consultant” include “software developer that does not consult for a living?” Why do we literally need a whole taxonomy to determine if a software consultant is a software developer, or literally a lost soul in some professional purgatory?
Well, the backstory there is complicated. But the short version is that it comes from a time before today’s ubiquitous computer programmer. When few people “did IT” for a living, the folks engaging them valued both their expertise/advice and their labor. But these days, it’s mostly just labor.
I’ve got an idea for an app! Now I just need you grunts to build it.
Way back when, companies engaged tech vendors for expertise and labor and called them consultants. Today, they still call them consultants, but just engage them for labor.