The conversation that follows this paragraph is a dramatization. But it’s a composite of actual conversations that I’ve held, distilled and focused. And I think it will illustrate why I believe we need a taxonomy of software consultants.
“What do you do?”
“Oh, I’m a software consultant.”
“Oh, nice. So, what, you like, go out to client sites and help them with their projects?”
“No, I work for a software consulting firm and I just go there. My company writes apps for other companies, and I’m on a team working on something for one of those companies.”
“Ah, okay. Do you interact with your client over the phone or via chat or something?”
“No, that’s mainly the project manager — I just code up requirements.”
“Oh, gotcha. So no one really consults with you, per se.”
“Yeah, huh, I guess not. I guess I’m more like a contractor or something.”
The surface problem here is that the definition of consultant has been somewhat watered down. But I’d say the deeper-seated problem is one rooted in history.
In a world (of, say, 30 years ago) where software was mainly a maintenance concern for line of business automation and hardware-based products, the people that wrote code were employed by the companies that consumed the code they wrote. Someone without domain knowledge that went around writing software would rightly have been considered a consultant, since specialized knowledge of software was uncommon. But as the balance of the world shifted to software being ubiquitous, someone unmoored from a particular domain, writing code for a living, is no longer highly specialized nor is that person likely to be consulted for their unique expertise.
As the world evolved, however, the terminology did not. A software consultant continues to be defined as “anyone who writes software for a company other than the one direct depositing pay into their bank accounts.” This can be the ‘consultant’ described above, an agency staff augmentation, a CRM specialist installing a CRM installation, or a person advising the dev manager on a migration strategy. To gain some clarity, I propose some clarity around terms.