To Niche or Not To Niche: The Great Fear Holding You Back in Programming
It’s just another Thursday at the office. You need to rest your eyes a bit and get that much-needed afternoon coffee break, but then the unexpected happens. As you turn the corner, you slip on a spill that Pete from accounting neglected to clean up and you break your wrist. You begin seeking workers’ compensation. Your company gives you a hard time and doesn’t want to pony up. The search for legal representation begins.
You find a promising law firm. They list on their website the following qualifications:
- Excellent oral and written communication skills
- Familiar with case document scanning
- Heavily prefers Evernote to keep track of cases
- Five years’ experience in researching prior cases
- Three years’ experience in interviewing witnesses
- Proficient in filing evidence
- Capable of carrying piles of paper in a briefcase for many hours a day
Then you find another website. This time, the message is quite different:
“You’re stressed out and worried about making ends meet. You’ve hurt yourself and need help getting workers’ comp. We specialize in helping people just like you to get what you deserve from your employer. We’ve won hundreds of workers’ compensation cases and we can win yours, too.”
Which do you choose?
Your problem: You need workers’ comp and can’t get it. The second law firm solves that problem. You hire them.
Specializing, or finding your niche, works the same way for knowledge workers. Companies have problems that need to be solved. Frankly, you command a high price only when you know how to solve their specific problems.
However, many developers and programmers are afraid to find a niche and dive deep into a specialty. There’s a fear that corporate workers have been conditioned with: “I’m not valuable unless I know how to do everything all the time. I can’t concentrate on just one thing.”
Let’s dig into where this thinking comes from.
Job Descriptions Ruin Job Seekers (And Lie to Them, Too)
Here are some stats from a real job description I found (I won’t link to it because I’m not trying to single out a specific company):
- 21 qualifications
- 21 job responsibilities, including several listing “Lead” or “Mentor” as the first word
- 19 specific products mentioned within those 21 qualifications
This was not a senior position. It was an IT systems administrator position.
Job postings like this start job seekers on the path to becoming commodities. You feel you need to know how to do everything your company could possibly ask you to do in order to be valuable. You’re conditioned to become a generalist.
That’s simply not true. Your value comes from results. Your value comes from solving problems. Your value does not come from knowing Windows Server 2008, 2012, and 2016, Linux, Unix, Red Hat Enterprise Linux, Microsoft Azure, Amazon Web Services, Windows 10, or the other myriad of things commonly listed in job postings and resumes.
The book Developer Hegemony illustrates the logic of the corporate world well. In it, Erik Dietrich describes a scenario involving a man who needs to have ditches dug on his estate. He hires a bunch of people who are great ditch diggers and agrees to pay them a fixed rate every day (essentially, a salary).
But one day, it begins to rain, which means that no ditches can be dug. The owner of the land has to pay the ditch diggers anyway, so he brings them inside and makes them do chores inside his house to earn the money. They weren’t hired to do the dishes, they were hired to dig ditches.
The corporate world has a similar mindset to the above homeowner. “I’m paying you a salary to come to work and, to justify that salary, you pretty much have to do whatever I tell you to do.” This mentality causes developers to get stuck in jobs they hate because they’re moved around from project to project at will and rarely have any say. They should just do as they’re told.
Job descriptions like the one mentioned above are a contributing factor to this phenomenon in programming. These job descriptions throw everything that could possibly happen on the page and make you think you need to know all of these things to get hired. This is not true in practice.
However, many applicants are still hesitant to apply when they see a wall of qualifications, not because they feel they can’t do the job, but because they don’t believe the employer will give them a chance.
Job descriptions make it seem that knowing everything is the most valuable thing you can do for your career. That’s a lie. Knowing everything is the most valuable thing you can do for the company. It’s the best way for the company to justify paying you such a high salary, benefits, and retirement plan.
The company wants to put you wherever it wants and tell you to do whatever it wants so you become a cog in the solution to a problem that some middle manager thought up somewhere that will likely be wrong and waste tons of money. But don’t worry your little programmer head about that. That’s “business stuff.”
Corporate Life Limits You
The software development world is interesting. In it, middle management often decides what needs to be done to improve a piece of software or generate revenue. Then the developers are handed a specification document and told to retreat to their dark room and come out with finished code.
Unfortunately, this method of working puts developers in a low leverage position. What would happen if you came out of the room and told your managers that what they’re doing doesn’t make sense and give them some other ideas on how to accomplish the same goal?
I’ve done this before in my previous corporate life and I can tell you it didn’t work. You get one of two responses: either “That’s a good idea. I’ll think about it (or tell someone else),” and nothing happens, or, “Yeah, I know it’s not the best, but just do it anyway.”
When you go to a doctor, you tell them what is wrong and they diagnose the problem and prescribe a treatment. They don’t also administer the treatment. In typical corporate life, developers are not the doctors. Therefore, their diagnoses and prescriptions are not wanted. Instead, they’re expected to administer someone else’s treatment. Thus, developers should be thinking about how to become doctors.
I’ve been part of teams where the priorities change so frequently that you never have a chance to really get good at one thing. You do research on a topic and become excited about what it could do. Next thing you know, you’re on to something else and that knowledge atrophies. This makes it hard to market yourself to other employers because your company is making it more difficult for you to see something through to the end. That doesn’t help you get a job somewhere else.
Changing priorities hurts the company, too. When projects are switched so frequently that you start many projects but don’t deliver, it’s hard to justify the money spent. I’ve seen many teams go through an entire year and at the end, they felt like they accomplished nothing. This hurts the morale of the team, which leads to poorer work due to disengagement. How would a patient react to getting prescribed different treatments every week or every month? Not well.
You may be saying, “It’s not your company’s job to help you find your next job.” And I agree with you. But it is your job. You should treat your career as a business and look for opportunities for growth instead of just staying in the same spot doing the same thing for 10 years straight.
Many companies are happy to use you up as long as they can and then get rid of you when you’re not needed. Companies don’t care about you, despite the human resources rhetoric.
Why a Programming Niche Is Valuable
So what is the key to breaking through the limitations of traditional corporate development? Developing a programming niche is key to eventually becoming the doctor who prescribes the treatment and not the one always administering the treatment. And frankly, that’s where the value is.
Niches are valuable because you change yourself from commodity to necessity. Trying to learn every skill possible places you in a pool of candidates (many of them cheaper than you) that all know those same skills.
This is when companies resort to judgment based on what you wear to the interview or the minutiae of how you write a sort algorithm on the whiteboard—things that have nothing to do with what you can do for them but are arbitrary ways of judging the 100 identical developers they’ve invited to interview.
Instead, focus on differentiation. What makes you special? What makes you different from all of the others who are promising the company the exact same thing?
What if you specialized in building sales funnel websites for solo entrepreneurs and life coaches? You’ve now identified a problem that many people will need to have solved and told the market that you can solve that problem.
The leverage is in your hands. You decide what hosting solution to use, what programming language or tool suite you need, and how to design the pages and connect them to credit card payment systems. You also decide what you get paid.
When you try to learn every technical product or the latest trend, you end up learning very little about what businesses really need: problem solvers. Your company doesn’t need a .NET compiler expert. Your company needs to increase the performance of its .NET applications by 20 percent. The .NET compiler is a tool.
Learn to see the problem you’re solving in terms of the business value and not in terms of the coolest new technologies you get to use. Feel free to geek out about the tech to your friends, but keep the bigger picture in mind.
Don’t be the carpenter with five years of hammer experience who is an expert in wood lathes. Instead, be the carpenter who can design and build a dining room set.
How To Find Your Niche
Knowing that niches are valuable is one thing. Actually finding your niche and designing your career around it is something else. Therefore, it makes sense to address the big question that is doubtless growing in your mind.
“How do I find my niche?”
Here are some concrete steps to help you find a profitable niche.
Find Something You Do That People Will Pay You to Do
Take a look at what you’ve done and what unique experience you bring to the table. Have you built several sales funnels for your employer? Have you taken down and rebuilt enterprise email systems? Do you have years of experience in a certain type of product, such as customer relationship management software or accounting software?
Take a look at what you know that could be massaged into a solution to a business problem.
Make Sure People Will Pay for It
You need to find a niche that has a market of people willing to pay for your services. Check the Google Keyword Planner to see if people are searching for the problem you solve. Search for blogs, or questions on Stack Overflow or Quora, which demonstrate the appetite for content around your niche.
Market forces do matter. Following an “If you build it, they will come” philosophy could lead to headaches and cause you to give up. Be willing to test what works and go with what you learn, not what you wish were true. You need both the ability to solve the problem and the confidence that it’s a problem people need to have solved.
Find a Problem Many Businesses Will Face and Solve It
You can sometimes create your own market by finding problems people need help with and developing a solution for the problem.
Building a sales funnel is a problem that every solo entrepreneur or coach will come up against at some point in building their business. They’ll look for people to help build their funnels. If you’re on the short list of people who can solve that problem, you’ll never be without work.
Take a look at the projects you’ve completed for your current or previous employers or clients. Look to see if there are any projects that you feel you could do over and over again for other businesses or clients. Then start a blog on the topic to help others complete their projects. You’ll do well to position yourself as the person who solves that problem.
The Best Way to Leverage Your Niche
Take a second and think about whether finding and using your niche in a corporate environment makes sense. It’s not impossible to become known for your niche and offered high-paying jobs to help companies solve these problems. However, I don’t think this is the best path to using your niche to the greatest effect.
Being a developer in a corporate environment is limiting. There’s no way around it. You can get hired for $100,000 and then offered a 3 percent raise for 10 years. The only way to consistently make more money is to constantly switch jobs, which is what most developers are doing anyway.
On the other hand, working as a consultant (and not a fake one), or a freelancer gives you literally limitless opportunities for income. Developing a niche and building a business around it gives you huge amounts of leverage and increases your ability to make money leaps and bounds more than a traditional corporate career.
You can become a freelance software developer working on projects you choose to work on. You can become a consultant in your chosen niche and do the diagnosing of problems and prescribing of solutions. Or you can create information products that teach others your niche and thus create an asset that generates income for you without trading hours.
How to transition into freelance development or consulting is best left for another post. But doing so will be the best way to leverage your niche for maximum effect. You’ll become the go-to person to solve a problem and you’ll be able to charge more and more as you gain experience working in your niche. Plus you eliminate the hassle of going through programming interviews every two years.
Don’t Let Fear Hold You Back
Corporations want Swiss army knives as employees so they can learn every technical tool available and pull out that knowledge when needed. You want to be paid what you’re worth and be appreciated for what you can accomplish.
Don’t position yourself as the Swiss army knife, or even the hammer. Position yourself as the carpenter who can take an empty square room and turn it into a beautiful dining room. It’s the result that matters, not how many acronyms, certifications, and version numbers you can stick on your resume. Less is more in real value.
Fear of missing out can be a strong motivator to try to learn it all. But instead of following the latest shiny object, focus strategically on what will build your brand and your business. Even if you aren’t a freelancer or consultant, you should run your career as a business of one. And the best way to build that business of one is to find a niche and leverage it.