Recently, I made an idle threat on Twitter (shown below). I was thinking of creating some content along the lines of how to go from being a software developer to a software consultant. People ask me about this all the time, and it makes for an interesting subject. I was also flattered and encouraged by the enthusiastic response to the tweet.
I’ve been getting that book writing itch again this week. Thinking about a guide for developers on how to become consultants.
— Erik Dietrich (@daedtech) June 21, 2017
I’m still mulling over the best delivery mechanism for such a thing. I could do another book, but I could also do something like a video course or perhaps a series of small courses. But whatever route I decide to go, I need to chart out the content before doing anything else. I could go a mile wide and a mile deep on that, but I’d say there’s one sort of fundamental, philosophical key to becoming a software consultant. So today I’d like to speak about that.
Software Consultant, Differentiated
I won’t bury the lede any further here. The cornerstone piece of advice I’ll offer is the one upon which I’d build all of the rest of my content. You probably won’t like it. Or, you’ll at least probably think it should take a back seat to other pieces of advice like, “be sympathetic” or “ask a lot of questions” or something. But, no.
Don’t ever let would-be consulting clients pay you for code that you write.
Seriously. That’s the most foundational piece of your journey from software developer to software consultant. And the reason has everything to do with something that successful consultants come to understand well: positioning. Now, usually, people talk about positioning in the context of marketing as differentiating yourself from competitors. Here, I’m talking about differentiating yourself from what you’re used to doing (and thus obliquely from competitors you should stop bothering to compete with: software developers).
Let me explain, as I’m wont to do, with narrative.
Leonardo Da Vinci: Renaissance Plumber
By any reckoning, Leonardo Da Vinci was one of the most impressive humans ever to walk the planet. Among his diverse achievements, he painted the Mona Lisa, designed a tank, and made important strides in human anatomy. But let’s say that, in a Bill and Ted-like deus ex machina, someone transported him 500 years into the future and brought him to the modern world.
Even someone as impressive as Leonardo would, no doubt, need a bit of time to get his bearings. So assume that, as he learned modern language, technology, and culture, he took a job as a plumber.
Let’s assume that you happened to have a leaky sink faucet, and you called Leonardo’s plumbing company for help. They dispatched him forthwith to take a look and to help you out.
So Leonardo comes over and, since he’s Leonardo, figures out almost immediately that your supply line has come slightly loose. He tightens it, and you couldn’t be more pleased with the result.