The fallacy of being a ‘jack of all trades, master of none’ developer
Tags: developer, programming, development, skills
Published: 2020-05-15 15:32:30



<p>‘Jack of all trades, master of none’ is an idiom that’s
becoming pervasive in development. The idea goes that a developer who dabbles
in everything cannot be amazing at anything.</p>

<p>In other words, it’s the generalist vs the specialist
debate. Should a software programmer generalise or specialise their skills?
Should they aim for competency in a variety of languages and tasks? Or, should
they focus their attention on mastering one language and a select few tasks?</p>

<p>Unfortunately, such questions are wasted on a fallacy. The jack of all trades, master of none debate is specious. It draws a line between generalising and specialising in development that doesn’t need to exist. In fact, being a jack of all trades developer comes with its own advantages. </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>

<h4><strong>Jack of all trades: the generalist developer</strong></h4>

<p>A generalist developer — those considered a 'jack of all trades' — are the developers that have their fingers in a wide array of proverbial programming pies. They're comfortable using a wide range of applications and languages. And they're competent at a variety of software development tasks and areas. (Coding the back-end of the software product, <a href="https://www.parkersoftware.com/blog/front-end-vs-back-end-are-the-lines-blurring/">to front-end</a> interface development, for example.) </p>

<p>The goal of a generalist developer is to be competent in all phases of the software development lifecycle. That means having the skills to adapt to any needed task or language to take a project all the way, from the drawing board <a href="https://www.parkersoftware.com/blog/the-software-supply-chain/">through to deployment</a>. </p>

<p>The idiom ‘jack of all trades, master of none’ suggests a problem with being a generalist developer. It supposes that those capable in many areas of software development cannot be masterful in any of them. So, what’s the alternative? </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>

<h4><strong>A master of one: specialist developers</strong></h4>

<p>The other side of the debate is the ‘master of one’
developer: the specialist. Specialist developers focus on one language and
skillset (or a select few). This means that they become experts in that
specific field and language. So, they’re more adept at their focused field than
a generalist might be.</p>

<p>A specialist developer has a slightly different <a href="https://www.parkersoftware.com/blog/the-benefits-of-being-a-boring-developer/">career path</a> than a generalist developer. They often slot into one company and rise through the ranks there. (Rather than fitting well enough in many companies.) This is because it’s common for the code and product they specialise in to be company-specific. </p>

<p>As such, it’s sometimes harder for specialist developers to find new positions. As a pay-off, they may find it easier to climb to a <a href="https://www.parkersoftware.com/blog/software-engineer-vs-developer-whats-the-difference/">high position</a> (and high salary) within a given company. </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>

<h4><strong>The fallacy shattered </strong></h4>

<p>The ‘jack of all trades, master of none’ fallacy in software
development suggests that it’s better to be a specialist. After all, the idiom
is predominantly used as an insult. </p>

<p>But the truth is that a jack of all trades developer has plenty
of benefits that a specialised developer doesn’t. For instance, they’re more
adaptable than their specialised counterparts. As an example, a specialised
developer might prefer to use their chosen language and methods for any (and
every) task. But a generalised developer can be more fluid. They can choose the
language and style that best suits the task at hand. </p>

<p>There are also more job opportunities for the jack of all trades developer. They can fit into most software houses, after all. </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>


<h4><strong>A false dichotomy</strong></h4>

<p>Here’s the real idiom-breaker: being a jack of all trades
doesn’t mean you can’t also specialise. In fact, the second half of the idiom,
‘master of none’ wasn’t even part of the original phrase. </p>

<p>The generalist vs specialist debate is a false dichotomy. The space between the jack and the master is a spectrum, <a href="https://www.parkersoftware.com/blog/in-a-nutshell-the-technology-adoption-lifecycle-and-crossing-the-chasm/">not a chasm</a>.</p>

<p>In other words, you can still delve deeper into a favoured
language or area of software development. So, you can be a jack of all trades
with specialisation in one, if that suits you. Being well versed in languages
and skills as well as having specialised expertise is never going to be a
disadvantage. </p>

<p>So, why not strike a balance between the two? Having a generalised foundation gives you the flexibility and adaptability of the jack of all trades. Meanwhile, branching into the intricacies of development that you find most interesting can help you stand out from the crowd. </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>


<h4><strong>Forget the fallacy, find the balance</strong></h4>

<p>The idea that being a ‘jack of all trades, master of none’
developer is a bad thing is a fallacy. There’s nothing wrong with being a jack
of all trades, just as there’s nothing wrong with being a master of one. </p>

<p>The most benefits are gained by those that embrace both ways of thinking. So, don’t worry about choosing one or the other. Find the balance between a generalised and specialised practice that best suits your career goals, and your interests. </p>

<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>

<hr class="wp-block-separator"/>


<p><em>Originally posted at <a href="https://www.parkersoftware.com/blog/the-fallacy-of-being-a-jack-of-all-trades-master-of-none-developer/">https://www.parkersoftware.com/blog/the-fallacy-of-being-a-jack-of-all-trades-master-of-none-developer/</a> on February 7, 2019</em></p>