Business

Should Developers Specialise or Stay a Generalist? 17 Years of Lessons

Being a generalist feels like it gives you options. In practice it gives you more competition and lower rates. Here is what changed when I finally picked a lane.

Should Developers Specialise or Stay a Generalist? 17 Years of Lessons

Generalise or specialise. It is a question every developer hits at some point, usually when they are staring at a blank LinkedIn profile trying to figure out how to describe what they do, or when they keep losing work to people who seem less capable than they are but somehow charge more.

I spent the first eight or nine years of my career being a generalist. ASP.NET, SQL Server, PHP, JavaScript, whatever the project needed. I was competent across all of it. I got work. I paid the bills. And I was slowly grinding myself into commodity territory without really understanding what was happening.

The shift came when I started doing more serious Dynamics 365 work. Not because I planned some grand career pivot. A client needed it, I delivered well, and the next client found me through the first one. Before I knew it, half my work was Dynamics and the rates were noticeably better than my general development projects.

When I properly committed to being a Dynamics 365 specialist and technical architect, everything got better. The rates went up, the quality of client went up, and the constant scramble for the next project went down. It took me too long to see what was happening, but once I did the logic was obvious.

What being a generalist actually does to your business

You are competing with everyone

When you describe yourself as a "full stack developer" or a "software engineer" you are in a very crowded pool. Every offshore team, every recent bootcamp graduate, every agency undercutting on price. The skill you are selling is the same skill thousands of other people are selling, and the market treats it accordingly.

This is not just a pricing problem. It is a positioning problem. You have no natural reason to win any particular project over anyone else. You are hoping the client picks you based on personality, price, and timing. That is a terrible way to build a sustainable practice.

Clients do not know how to value a generalist

Specialists get valued against a clear market benchmark. If you are known for Dynamics 365 architecture, the client can look at what a good D365 consultant costs and assess your rate against that reference point. There is something to anchor to.

When you are a generalist, the client has no benchmark. Which means they anchor to the cheapest thing they can find that roughly fits. "We just need a developer." Sure. What kind? "Someone who can build things." Great. Your rate is now being compared to whoever quoted last time they needed "a developer."

I have been in both conversations and they feel completely different. The specialist conversation is about whether you are the right fit. The generalist conversation almost always drifts towards price.

How I ended up specialising (and what it taught me)

I did not pick Dynamics 365 from a spreadsheet of options. It emerged from doing good work in an area and then following the demand. This is how most genuine specialisms work. You do not choose them in the abstract. You notice where you are getting traction and you lean into it deliberately.

What I did do, once I spotted it, was stop diluting the focus. I started saying no to general web development work that would have paid reasonably well but was not building towards anything specific. That was uncomfortable. Turning down revenue when you are building a consultancy feels genuinely stupid in the short term. But every general project I took was an opportunity cost against building a deeper specialism profile.

The results were clear within about eighteen months. Not just on day rates, though those increased meaningfully. On the nature of the work itself. I stopped being brought in as a pair of hands to execute someone else's plan and started being brought in as someone with a genuine point of view on architecture, delivery risk, and whether the project was being approached sensibly. That is a very different kind of conversation to be having with a client.

I write about the commercial thinking behind building this kind of practice in The 28 Day Startup, which gets into how you build revenue-generating businesses quickly and without a safety net.

How to find a specialism that actually works

The intersection of depth, demand, and differentiation

The best specialisms sit at the intersection of three things: what you are genuinely skilled at, what the market actually needs, and where you can stand out from the crowd. Any two of those gives you a partial answer. All three and you have something worth building a business around.

For me the combination was Dynamics 365, Azure architecture, and real-world product experience from bootstrapping CampSuite and other ventures. There are plenty of people who know Dynamics. Fewer who understand architectural decisions at scale. Fewer still who have also built their own software products and understand what organisations actually need from a CRM or ERP implementation. That combination is what makes my Dynamics 365 work different from a standard implementation partner.

Test for market depth before committing

One mistake people make when choosing a specialism is going too narrow. "I only do Shopify performance optimisation for D2C brands between two and ten million in revenue." That is specific, but it is also a tiny market. You want something specific enough to stand out but broad enough to sustain a proper practice.

Dynamics 365 implementation and architecture is a good example of a specialism with genuine depth. Mid-market and enterprise organisations are buying this platform at scale. They need people who can deliver it well. The market is not going away. There is enough breadth to build a real business without being spread so thin that you never build genuine expertise.

Ask yourself: are there enough clients in this space that I could turn away bad ones? If the answer is yes, the market probably has depth. If you need every single lead to convert, you have a market size problem.

Does specialising mean ignoring everything else?

No, and this is where people get unnecessarily anxious about it. Specialising is about how you position yourself and what work you actively pursue. It is not about refusing to learn adjacent things or pretending other technologies do not exist.

I still write .NET. I still work with Azure. I still build products from scratch. But those skills sit behind the Dynamics 365 specialism. They make me better at the specialist work. They do not compete with it for attention in how I describe what I do.

Think of it like a doctor. Your GP has a broad understanding of medicine. But when you need something serious done, you want a specialist. Nobody goes to a cardiologist and worries that they do not know enough about other things. The specialism is the point. The breadth behind it is what makes the specialist good at the specialism.

What actually changes when you commit

The most immediate thing is that you start getting found rather than having to find work. When you are known for something specific, people looking for that thing will find you. Referrals become more targeted. Your network starts to understand what to send you and what to send elsewhere.

The second thing is confidence in pricing. When you know your market and you know your value within it, negotiating rates becomes much less fraught. You are not guessing what the market will bear. You know, because you are in that market every day and you can see what good work in your area is worth.

A lot of developers worry that specialising means getting bored. That you will be stuck doing the same thing forever. My experience is the opposite. When you are a specialist, clients come to you with harder problems because they know you can handle them. Generalists get the work that nobody particularly wanted. Specialists get the work that genuinely needs expertise.

After seventeen years of doing this, the single most impactful decision I made for my practice was getting specific. Not because it narrowed my options. Because it made me easier to find, easier to hire, and considerably easier to charge a fair rate for.

If you are still trying to be everything to everyone, you are probably working harder than you need to for less than you should be earning. Pick a lane. Commit to it. The market rewards clarity.

More from the blog

Business8 min read

How to Price Your Consulting Services as a Freelance Developer

Read more
Business8 min read

Why Every Developer Should Start a Business at Least Once

Read more
Dynamics 3659 min read

Dynamics 365 vs Salesforce: An Honest Comparison from Someone Who Has Used Both

Read more