Stories about Software


Tech Stack, Framework, Library or API: How Not to Specialize

Today, I’m going to keep plugging away with another mid-week post in the developer to consultant series.  To recap, I’ve talked recently about how you need to start by figuring out your positioning and then about how that positioning should orient around problem solving instead of laboring.  Today, I’m going to build on that momentum.  I’m going to talk about the positioning mistake you’re almost certainly going to make and how to avoid it.

The Positioning Mistake

You’re going to try to position yourself around a tech or tech stack.  “I help people with blockchain” or “I’m a Ruby on Rails performance expert.”  Now, this isn’t as bad as the generalist career approach, to be sure.  But it’s really not where you want to go, either.

I’ll get to why in a moment.

But first, let me just say that it’s completely understandable why you gravitate toward this.  Our industry pushes you that way with an aircraft carrier’s worth of momentum.  You should be a generalist and compete with 18,000,000 other programmers to be “the best” and get hired at SiliconPrestigeTech.  Not for you?  Well, fine.  Then get better than everyone else at some tiny piece of technical real estate.  Everything in your experience pushes you this way.

Indulge me for a moment.  I’m going to force one of my parables on you to demonstrate the absurdity of this situation.  And then I hope this will serve as your compass to navigate your way out of the generalist quagmire.

I once wrote a post about what it would be like if contractors behaved like programmers.  This is going to be a bit like that, but doctors are knowledge workers, so it illustrates the point a bit better.  And I’m going to emphasize a different set of specifics.

Walter White, His Doctor Recruiter, and His Doctor Manager

My wife and I have been watching Breaking Bad again over the last month.  It’s not a spoiler if I tell you that the main protagonist, Walter White, receives a cancer diagnosis (it’s the premise of the show).  Lung cancer, and an aggressive form at that.  So let’s imagine Walter in a world where doctors acted like programmers.

The first thing that Walter would need to do is to hire two people for his “diagnose and treat my cancer” project.  These would include a doctor recruiter and a doctor manager.  The doctor manager would sit with Walt, listen to his symptoms, and lay out a roadmap of what comes next.  Now, this doctor manager “isn’t medical” so he would need to enlist doctors to perform the actual diagnosis.  But he’s “medical adjacent” enough to at least know which doctors to call.

Of course, he’s too busy and important to make those calls, so he enlists the doctor recruiter to do that, explaining that he needs someone with at least 7 years of CT scan, 5 years of X-Ray, 6 years Sputum Cytology, 4 years of Biopsy, with strong Bedside Manner skills a plus.

We Need a Team of Full Stack Doctors to Treat This Thing

The doctor recruiter recruits and the doctor manager hires, and he then supervises the diagnosis.  The worst news comes back.  It’s cancer.

Now the doctor manager needs to grow the team. Diagnostic skills continue to matter, but now Walt needs a different set of skills as well.  The doctor manager understands how this works, so he puts out the word.  He needs one or more people with 10 years Radiation, 8 years Chemotherapy, 5 years Immunotherapy, 5 years Drug Therapy, 12 years of Scalpel, and Bedside Manner a Big Plus.  The doctor recruiter obliges.

Only Scalpel Ninjas Need Apply

“But wait a minute,” Walt says.  “How do I know that we’re getting the best cancer treatment?  We need a cancer rock star — no, a cancer ninja.”

“Don’t worry,” the doctor manager and recruiter assure him.  “We have a rigorous interview process.”

And they do.  They show Walt exactly how this works.  First, they only want scalpel crafts-people.  They select for doctors who, of course, lovingly polish and oil their scalpels.  But, beyond that, those who don’t scalpel in their spare time need not apply.  They should also compete in scalpel throwing and paper sculpture competitions in their spare time, outranking at least 90% of other doctors in the same.  They need to live, breathe, and eat scalpels.  Literally.  Okay, not literally.

The Rigorous Interview Process

But that’s just the pre-screening process, they assure Walter.  The doctor recruiter can verify scalpel scores and scalpel community participation and use this to screen out doctors ahead of time.  And, any doctor not passionate enough about scalpels will reveal herself during the phone screen.

Then the actual interview starts.  And the doctor manager, doctor recruiter and existing doctors on the team throw an impressive array of questions at the applicant doctor.  It’s something of a gauntlet.

  • What is the chemical composition of a scalpel?
  • Demonstrate on that whiteboard what some pseudo-scalpel sharpening would look like.
  • Give us a brief history of the scalpel.
  • How many scalpels would fit inside the Empire State Building?

And that’s just for starters, they assure Walt.  But Walt’s a bit skeptical.  “Does all of that really ensure my best chance of survival?”

“Oh yes.  This is a process we’ve optimized over the years with lots of practice.  And, I mean, what else would you do?  Like, have a single doctor that specialized in treating cancer?  And that doctor would figure out what you needed, delegate that to people, and manage the whole thing for you?  And, you’d what, measure doctors’ success based on satisfaction and outcomes, rather than scalpel throwing competitions?”

“That’s a strange world you live in, Walt.”

Let’s Unpack a Little

I could go on.  I could talk about the doctor manager insisting on being the face of the project, because doctors are notoriously bad at speaking to normal people.  Or I could talk about how the doctor manager would need to chase the doctors around for status reports to update Gantt charts for Walt.  The doctors, after all, are just grunts who can’t see the big picture, which is why the doctor manager gets the big bucks.  You get the idea.

But let’s go back to the world of programmers and look at what’s happening here.  First, the doctor manager should get the big bucks, since the doctor manager is the one actually herding the cats and delivering the outcomes.  Go back to the last post, and realize that the doctor manager owns the diagnosis and prescription.  Sure, the doctors participate, but they don’t know or care about the bigger picture, content to point X-ray machines at each other and make paper sculptures with their scalpels instead of, you know, being doctors.

Generalists and Granular Tech Nichers in the Doctor World

To circle back to my introductory premise, the generalist programmer is the equivalent of a doctor who learns as broad a set of skills as possible.  He hopes to be in the right place, at the right time, with the right experience tuples when a doctor manager is assembling a team.  Cancer diagnosis?  Bunion treatment?  Root canal?  Whatevs.  Get me a spot on the team, and I’ll figure it out as I go.  I’m a master of hanging around the hospital!

Once you see the absurdity of that, you think, and justifiably so, that’s really not a great career strategy.

You know what I’ll do?  I’ll get good at scalpel.  I mean really good at scalpel.  I’ll do scalpel competitions, speak at scalpel conferences, call myself a scalpel artist, and do nothing but surgeries or slicing IV bags or whatever you can do with scalpels.  That way, when doctor managers need someone with scalpel, they’ll line up at my door.

Graduating from Being a Resource

This is actually a slightly better strategy.  And because of the high demand for our labor, it will work for you.

But you’ll still be a laboring grunt, with no idea or apparent interest in how you fit into the bigger picture.  You’re a human resource, incapable of delivering value on your own, and needing a doctor manager (project manager) to turn you on, plug you in, and get you doing something useful.

Stop it.

This isn’t how consultants operate.  You need to stop acting like the scalpel fetishists in my bizarro doctor world and start acting like an actual doctor.

Do actual doctors train in deeply specific, doctor-shop kinds of things, like diagnostics, surgery, etc?  Of course they do.  But they don’t form tunnel vision around it, acting as if performing those activities were some kind of higher calling or end unto itself.  Instead, they own the value delivery from end to end, providing a service to their customers, overseeing/performing the important parts and delegating the rest.

Model yourself after this.  Find “patients” that don’t understand or care what an ORM is or which Javascript framework is the best this week.  And, most importantly, find a way to deliver value to them, without you needing to be an entry in someone else’s Gantt chart.  If you can’t autonomously deliver value with your expertise, then you’re specializing in the wrong thing.

A Takeaway Rule of Thumb

As I’ve mentioned before, this is a series of posts that I’m doing instead of writing a book on the subject of turning yourself into a consultant.  So as I’ve also mentioned before, we’re not going to solve this thing in a single post.  So here’s your takeaway for today.

Being a generalist programmer is about the worst career strategy in our line of work.  Specializing in a tech stack, framework, or specific technical concern is nominally better, but still not good.  You can easily do better.

As you figure out how, take a lesson from my doctor analogy.  Specialize in something where your patients, who are not medical experts, understand the value proposition but not the mechanics.  “You might have cancer, and here’s what we’re going to do next.  I can explain the technical details if you’d like.”

That’s the conversation you want to be having with clients about their web apps, line of business installations and such.  Find something where people look to you for diagnosis and prescription — not where they demand that you jump through hoops for the honor of performing labor.  It’s a mental adjustment to be sure, and it’ll be a challenge at first.  But practice.  Time is on your side.

newest oldest most voted
Notify of
Point taken on specializing. But also interesting to note that overspecialization in medicine is a major driver of driving up costs and not to mention wait times for getting specialist care. The medical industry is broken due to specialization…though the level of knowledge within those specialist disciplines has increased, is it worth the trade-off? Early intervention and bedside manner v specialized knowledge. Doctors specialize because they can earn more. This leaves a gap in the generalist area of medicine – the GP/family MD. That gap means less time for early intervention as the demand for it increases due to gov’t… Read more »
Jacob Mattison

I also think there’s a difference between a generalist and a specialist in general medicine. It could be a reasonable software specialty to say “I can come into an environment that uses lots of disparate technology and help you figure out how to rationalize it”. Someone with that specialty would need to be familiar with lots of different technologies, but that’s totally different from the value proposition of the software generalist (which is “you can plug me in anywhere”).