News for hackers. Stuff that matters.
Re:To become a software consultant, avoid letting clients pa... by jasode on Tuesday October 16, 2018 @07:16AM (#18228336)
>Don’t ever let would-be consulting clients pay you for code that you write.

A similar piece of advice is in the often-submitted article by Patrick McKenzie.[1]

The common idea is that instead of being just a "code monkey", you position yourself higher up the value hierarchy to be more of a "solutions provider".

In my observations of programmers that successfully sell consulting vs earning a W-2 salary, both articles leave out the dispositions and natural inclinations of the reader. This affects how easy it is to move up the value hierarchy.

To do high-value consulting, one has to take an honest self-assessment:

1) Do you like to be somewhat entrepreneurial and "hustle" for work? (Some programmers would prefer to be given a set of defined tasks and then be left alone rather than scout for new jobs and projects. The act of "selling yourself" to prospective clients is uncomfortable.)

2) Do you accept that there can be cycles of feast or famine because of downtime between freelance contracts? (Some programmers would rather have the predictability of steady paycheck rather than stress over contracts and chasing Accounts Payable for past-due payments.)

3) Do you find "solving business problems" more interesting than programming languages? (E.g. some folks are more interested in Python 3 vs Python 2 differences or studying Lisp macros -- rather than tackling the domain knowledge and complexities of modernizing a hospital billing system, or the code to monitor container ship logistics, etc. The coder views the business stuff as boring but programming languages as interesting.)

Once you've done the "know thyself" exercise, you can then analyze how various types of "consulting" is sold in the marketplace and where to position your services.

If you're just a generalist programmer in (e.g. C++/Java/Python), it will be difficult to sell that as "consulting" to companies. You have to go up the value chain and sell "solutions". This is easier if you have expertise in a specific business niche that interests you. As for examples of selling general consulting that covers the spectrum from "bodyshop of programmers" to "solutions providers", that would companies like Infosys (India H1B), Pivotal Labs, Thoughtworks, Accenture, IBM Global Solutions.

Some exceptions to selling small scale "consulting" without being a being a solutions provider would be web freelancing and maybe cybersecurity auditing. Otherwise, generalist programmers either need to work for the solutions providers above, or become a solution provider themselves, or find contract gigs on marketplaces like Upwork and Dice. However, selling your programming skills on Upwork is the probably the opposite of the advice given in the 2 essays.

[1] https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pr...

Re:To become a software consultant, avoid letting clients pa... by acconrad on Tuesday October 16, 2018 @09:17AM (#18229074)
When I got into consulting I read that MacKenzie article and answered an ecstatic "Yes" to all three and yet people see my resume and previous work and just immediately slot me into the "code monkey" territory. I am able to negotiate a great rate, so I've done very well, but I believe I could do better if I was able to get the higher value projects, but no one has yet to perceive me this way.
Re:To become a software consultant, avoid letting clients pa... by rpeden on Tuesday October 16, 2018 @10:06AM (#18229454)
Is it possibly because you've positioned yourself in a such a way that you attract customers who will only ever see you as a coder for hire?

I love the look of your consulting website, but "We create beautiful, engaging applications" isn't a very strong positioning statement. Most generalist software shops have something similar on their site. And if you position yourself that way, whether online or in person, I think that most customers will inevitably see you as an implementer of software.

In smaller text, you write "If you’re a healthcare or fintech company, we can help you launch products faster with fewer resources to increase conversions and get results".

Now that's definitely a stronger positioning statement. Do you think it would be helpful to position yourself more strongly along those lines? Like, instead of your big hero text saying something general, could it be something more specific like "End-to-end app development for healthcare companies", or to narrow it down even more, something like "Dashboards for fintech companies".

That last one might seem really narrow, but that kind of narrowness also helps you build up a reputation as more than just a code jockey. It's hard to become known as the go-to person for beautiful, engaging applications, because there are just too many people who market themselves and their companies that way.

But it's a lot more doable to become known as the go-to person for reactive fintech dashboards. It takes a bit of time to establish your authority in a niche like that, though. But since you're already doing software consulting profitably, you're in a good position to move in that direction.

And once you're known as an authority in a specific area, you almost automatically become seen as more than just an implementer. Instead of coming to you with exact specs that need to be coded up, you'll have more conversations along the lines of "this is what we're trying to achieve; since you're the expert on this topic, how would you recommend we do it?".

Since you've completed customer projects successfully, you now have project management experience. In your marketing materials, and in conversations with potential customers, would it be possible to emphasize the project management angle? Because that could be a solid point of difference that works in your favor. Unlike most software developers, you have project management experience. You don't just deliver code. You deliver complete end-to-end solutions that don't require the customer to specify everything in excruciating detail. Instead, you're like an amazing machine to which customers only have to insert high-level business requirements.

Please note that none of this is intended as criticism. You're obviously already enjoying success! Over the years, I've just seen other people in the same position you're in, asking the same questions you are. And so I figured that sharing a few observations might be helpful.

If you haven't read it already, Philip Morgan's positioning manual covers this in a lot of detail: https://philipmorganconsulting.com/the-positioning-manual-fo...

I don't have any connection to him aside from being a customer.

Re:To become a software consultant, avoid letting clients pa... by AgalmicVentures on Tuesday October 16, 2018 @01:11PM (#18231116)
Thank you so much for writing this. I've struggled with positioning for a long time, and although I have a niche, it was a challenge to communicate the value I offer in a succinct way. This nails it:

> You don't just deliver code. You deliver complete end-to-end solutions that don't require the customer to specify everything in excruciating detail. Instead, you're like an amazing machine to which customers only have to insert high-level business requirements.

Reading over the website, The Positioning Manual seems to have more actionable information than the sum of all other source I've found, so thank you for that too.

Re:To become a software consultant, avoid letting clients pa... by rpeden on Tuesday October 16, 2018 @04:27PM (#18232937)
You're welcome! I'm glad it was useful.

If TPM seems useful to you, you'd probably enjoy signing up for Philip's newsletter. He sends out an e-mail every day, and I usually find them useful and insightful.

Along the same lines, you might like Jonathan Stark:

https://jonathanstark.com/

I haven't bought anything from him (yet), but I signed up for his e-mails and find them valuable.

Re:To become a software consultant, avoid letting clients pa... by acconrad on Tuesday October 16, 2018 @10:39AM (#18229712)
This is super actionable and useful advice. I love it, thank you so much!
Re:To become a software consultant, avoid letting clients pa... by rpeden on Tuesday October 16, 2018 @10:48AM (#18229797)
You're welcome! I'm happy it was useful.
Re:To become a software consultant, avoid letting clients pa... by Asooka on Tuesday October 16, 2018 @09:49AM (#18229320)
> If you're just a generalist programmer in (e.g. C++/Java/Python), it will be difficult to sell that as "consulting" to companies

Difficult, but not impossible. You can sell coding training, basically do targeted lectures on areas where you see a company's coders struggling. The problem with this is that the improvement is long-term and practically invisible at the management level.