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.
- Five 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.
- FFL, AFF, UON, IBEW, ECB, SE
*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.
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 percent 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-plus 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.”
Why this dynamic exists and is much more prevalent in our industry than others is a topic I’ll leave for another day. 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.