Stories about Software


What It Really Means to Niche Down

It’s been a rather frustrating few weeks for me, at least in terms of getting things done at home.  One of the cables on my garage door got off of its track somehow, and my time is at a premium, so I set about hiring someone to fix it.  I went onto Angie’s List to see if I could find a contractor that specialized in solving this sort of problem.

Looking for that was probably stupid, however.  I realized my mistake when I got onto the site and did a search for contractors.  I tried searching for terms like “fixes garage doors” and got empty results back.  Stymied, I started looking at contractor profiles and seeing that they really didn’t match in any way even remotely like that.  Here’s what a typical one looked like.

  • Extremely proficient in hammer, table saw, drill driver, and crowbar.
  • 5 years of experience cutting cables, tying knots, and winding metal cables around spring-loaded spools.
  • Limited experience with reciprocating saw and lathe.
  • Regularly determines the correct situation for using a screw versus a nail.
  • Strong preference for DeWalt tools.
  • Capable of carrying tools in a bag, box, or wheeled assembly as dictated by the job.
  • Excellent oral and written communication skills.

*Smacked forehead*  Of course!  I’d been going about this all wrong.  I was looking for an expert to solve my problem, when what I really needed to do was spend a lot of time learning the minutiae of what exact skills, tools, and techniques were necessary to solve that problem.  Once I’d spent a few days doing that, I could then make a still ill-informed guess as to which contractor’s experience might prove relevant to my situation.

That’s exactly what I did, and, though you’d assume this would go well, somehow, it didn’t.  The first guy said he had a lot of experience with steel cables, things that twist, and larger fixtures.  As a bonus, he expressed an intimate knowledge of how water would impact the garage door apparatus.  I had no idea how this was relevant, but he sounded like he knew what he was doing, so I hired him.  After two days, I came and found that he hadn’t fixed the door, but he had installed a sink that was blocking my car in.  When I demanded to know why he’d done this, he confessed that he was really more of a plumber, but that he wanted to learn about garage doors and just assumed that they were more or less the same thing.

Sink in Garage

The next guy didn’t build anything that blocked my car in.  As a matter of fact, he didn’t build anything at all.  He just came in for a few days, laid all kinds of screws, nuts, bolts, and magnets on the ground, and then proceeded to arrange, re-arrange, and re-re-arrange them ad nauseum.  Each time he’d do it, he’d squint at the broken garage door apparatus and mutter to himself about it being important to have the right organizational framework to tackle this problem.  When I finally let him go after a few days, he’d managed to build a small pyramid out of 2 inch screws.  I’m not going to lie; it was impressive.  But it was also useless.

Knowing that this was stupid, I did what any reasonable person would do.  Instead of hiring someone to solve my problem, I hired someone that could both understand what I was trying to do and who could also make sense of all of these contractor profiles.  All it cost me was an extra 20% of the job total.

Er, Maybe Not…

You know what?  It may shock you if I tell you that I didn’t actually do any of that, because that’s completely crazy.  If I were to go hire any contractor to work on my garage, I wouldn’t care what tools he used, what contracting patterns he followed, what processes he believed in, or any of that. I’d hire the one that was highly rated on Angie’s List for fixing garages.

But this doesn’t just apply to contractors and construction — it applies to just about everything.  Do you look for doctors that tell you they’re good with a scalpel and think, “that’ll be great for my surgery?”  Or do you just look for someone who performs surgeries?  If you were hiring a salesperson, would you look for someone that knew the ins and outs of Salesforce?  Or would you look for someone with a track record of selling the sorts of things that you sell?

In most kinds of hires, the currency at play is a track record of helping someone achieve a goal.  With hiring in the programming industry, there’s no particular goal in mind beyond software for its own sake.   And so, we talk not about what we can help people do, but about the minutiae of how we’ll help people.  Or, not help people in the slightest.  I mean, who cares, right, as long as we’ve been using our tools for 7+ years in an agile environment.

I mean, seriously, think about how we advertise our value as software developers.  Think about how we justify our presence in the industry and signal our fitness for roles.  (And I include myself in this as much as anyone — I’m not just being critical of others).  “I’m mostly a .NET guy these days with focus in C#, though I have plenty of experience in C++ and Java, as well as a number of other languages and frameworks both client and server side.  In fact, I blah, blah, MVC, XML, blah, blah, design patterns, blah, blah blah.”

What we’re really saying when we do this, both to ourselves and to those looking to make a hire, is “I have these geek skills but no idea how they’re valuable to anyone.  I need you, Mr. Tech Manager/Executive, to figure out how I can possibly be useful  — that’s why they pay you the big bucks.”

“Niching Down”

Why this dynamic exists and is much more prevalent in our industry than others is a topic I’ll leave for another day (or, more accurately, for my book, Developer Hegemony).  Let’s just take for granted that it is and that you, like me, probably participate in it because it’s just the default and you haven’t given it a ton of thought.  Assuming you give me the benefit of the doubt here and are at least open to starting to consider it weird, the real question is, what can you do about it?

And I don’t mean what can you do about it in the macroscopic sense that we should change the industry.  I mean, what can you do about it to cause your own personal stock to rise.  And the answer is simple — start expressing your value as a technologist in terms of what problems can be solved.  Do you know who Troy Hunt is?  He’s the guy that can fix your group’s security woes.  Do you know who Bob Martin is?  He’s the guy that will help your team clean up its messy code.  Do you know how many years of Node.js either one of them has?  Me neither.  And they’re probably fine with that.

They’re fine with that because they’ve carved out niches for themselves and established reputations.  Others have done this as well, and it brings success in the form of lucrative consulting practices, conference speaking engagements, requests for training, etc.  But what’s really going on here isn’t that these are some kind of super-developers in a field of mere mortals.  It’s that they’ve gotten really good at saying (in the world of software), “if you have a broken garage door, I can fix that for you and I have lots of references and reputation to prove it.”

A lot of people I talk to seem to think that career advice to “niche down” means something like, “get really good at some very specific corner of some framework for some language and be the definitive expert on that.”  I sincerely believe that this misses the point in a subtle but profound way.  “Niching down” as a career/business strategy is most certainly not about finding some corner of the technical universe to which no one has laid claim and planting your flag there.  Rather, it’s about finding a way to say, “if your company/group/business/whatever has this problem, I can solve it for you.”

If you start thinking of your career this way and living it, I think you’ll be surprised to see how much better your leverage becomes.  “I know Java and MySQL” puts you in competition with countless nameless, faceless masses and renders you expendable.  You’re not solving a problem for anyone — you, like everyone else, are just a cog in their solution to some problem.  On the other hand, “I can wipe out 80% of the performance problems that you see in Java/MySQL ORM implementations” establishes you as someone who can solve a problem.

This is great for freelancers and people looking to establish consultancies, but it’s also great for staff developers looking for their next job.  Suddenly, you’re a specialist rather than “senior developer 224,” and this absolutely matters when it comes time to negotiate salary and title.  So no matter what your goals are, it’s time to think about what problem you’re solving for people.  It’s time to niche down.

Newest Most Voted
Inline Feedbacks
View all comments
Grant Winney
8 years ago

“Do you know who Troy Hunt is? He’s the guy that can fix your group’s security woes. Do you know who Bob Martin is? He’s the guy that will help your team clean up its messy code. Do you know how many years of Node.js either one of them has? Me neither.”

Wow, that right there puts so much into perspective. As soon as you mentioned their names, what they’re known for popped into my head. Thanks for sharing!

Erik Dietrich
7 years ago
Reply to  Grant Winney

Glad if it offered some perspective. That’s really what I was going for with this particular post.

Christopher C. Johnson

That was just a great article, I never really stopped to think about it like that. I’ve just been plowing through one skill-set after the next to keep adding to my toolbox so I can basically shout out “Hey! I know these things, look at me! Hire Me already!”

Erik Dietrich
7 years ago

FWIW, I’d never really thought of it that way until recently, either. It wasn’t until I was doing a bit of retrospective on recent, relative success with client engagements that the “what problem do I solve angle” occurred to me, and then it subsequently occurred to me that it seemed like just about everyone but developers operated that way.

Tim Morton
Tim Morton
7 years ago

I think this is a great point, but I see things differently for “staff developers.” Part of the tradeoff in being a full-time employee is specializing in your employer’s business. You learn skills that are firm-specific, and in return you get a (weak) guarantee of continued employment.

When looking for a new job, it’s great if your old niche overlaps the new employer. But part of the sales pitch in a job interview is “I learned these other businesses, and I can learn yours.”

Erik Dietrich
7 years ago
Reply to  Tim Morton

I wouldn’t argue that this is reality for staff developers at non-consultancy/non-software companies. But I don’t really view it as a good deal for anyone but the company, which is why I advocate cultivating a specialty (or simply highlighting an existing one).

My sales pitch, coming in as staff or a consultant, would be more along the lines of, “I’m not particularly interested in specializing in your domain beyond what’s necessary to solve this problem, but I can solve this problem quite well.”

Greg Jorgensen
Greg Jorgensen
7 years ago

I’ve given this advice a hundred times. Solve business problems. No business has the problem “We need 2,000 more lines of JavaScript code by next month.” When I found my niche and stopped trying to market my toolbox my freelance practice took off. If you speak the same language as your customers or employers you are ahead of the game.

It seems like software people have a translator in their head that changes “My application loses a few sales transactions every day” into “Rewrite with Rails and Angular.”

Erik Dietrich
7 years ago
Reply to  Greg Jorgensen

Very well said… especially that last bit about the translation. That gave me a chuckle.

6 years ago

Really interesting article, and very relevant to me as someone who is currently looking for a new gig. Now I just gotta find a way to add it to my CV without bloating it too much…
(Late to the party, but hey ho)

Jonathan Stark
6 years ago

I love this post so much, I’m going to ask it to marry me.