Specialists Are Dead. Long Live Generalists!

Published: May 6, 2024

Specialists Are Dead. Long Live Generalists!

Imagine you are in a rush to join a wedding and your suit needs some work such as, shortening the length of your pants, ironing your shirt, dry-cleaning your jacket, opening additional holes on your belt.

Usually, there is a a place that does all of these things and by taking your suit there, you can get it completed in a reasonable time.

Now imagine you had to go to a different place for all these works. It'd take a couple days to get these done and you'd definitely miss the wedding.

This story sums up how beneficial generalists to our life compared to specialists. If generalists make our lives easy as seen in above example, then what is the hype about specialism? Why do we glorify specialism and specialists and how did we end up with all the specialists?

History

Long ago, everyone used to be generalists. You'd grow your own food, defend your propoerty by yourself, educate your children at home, fix anything broken at home by yourself.

Everyone used to be generalist

Then we started to contract some of these duties to others, as we were not very good at all these things. You'd let a skilled farmer grow your food, a good plumber fix anything broken at your place.

Moreover, we created countries and governments and we entrusted them big duties such as defense, crime protection, and educating our children.

This way, everybody found an area that they were good at/ they could develop skills and made money only through this specialized area. Then we started using this money to receiver the services that we entrusted others to do.

Overall, things were going well, as people specialzied in certain areas, they increased their efficiency, and the economic output of such activities was much higher compared to the times when everybody did everything. Specialization helped civilizations improve their knowledge and skills across all areas.

Issues with specialization

Issue

Specialization is great, unless we overdo it.

This usually happens in sofware development.

We usually work in teams where each team member carries a responsbility. For example, in a typical software project, you'd have a designer (UX, UI Designer), an engineer (maybe many of them: front-end, backend, quality assurance), product owner, software architect..

In a data science project, you'd have roles like machine learning engineer, data engineer, data scientist, team leader, subject matter expert..

Recently, there are newly created roles like scrum master, prompt engineer etc.

This is manifestation of an issue that I call overspecialization. The issue with overspecialization is that we lose holistic approach. We end up depending on a web of skillsets that even when a team member is missing, the whole project comes to a haul.

Product owner doesn't know how to code, so she can't really understand the possibilities available in the product from an engineering perspective. Sometimes she requests engineer to do things that are not viable. Sometimes she readily thinks something is difficult to implement, but it might be easy from an engineering perspective. Overall, she doesn't have visibility into the engineering stack of the project.

Same goes for other roles. For example an engineer might think of a new feature, but it wouldn't make sense to implement from business perspective.

The more roles we create within a team, more dependencies we end up creating, and more time lost while these roles are communicating. This is one of the main reasons why sofware projects tend to overrrun their schedules.

This also severely hinders the improvement possiblities of a project. If the team lacks a person that has an holistic understanding of all roles, than it'd be near impossible to bring radical and lasting improvements to the products.

Solution to overspecialization

Recommendation

I recommend we re-evaluate the roles in our teams. For example, do we need seperate people for front and back end? Can we have someone that can do both?

Do we need a machine learning engineer or data engineer? Can our data scientist handle tasks relevant to these roles?

Why do we even need a prompt engineer? Do works related to that role justify having a separate role?

Should we have product owners who don't know about engineering? This can severely hinder project delivery both in terms of timing and quality.

Once we do this self reflection, we can start seeing which roles are not needed anymore in the team. These people should be given a chance to upskill themselves and stay in the team.

Once we have people who are good at multiple inter-connected things, we should be able to see our products shipping faster and better. Costs should come down too.

Do you feel overspecialization is an issue at your work place too? Or do you think otherwise? Let me know in the comments.

Leave comment

Comments

Check out other blog posts

Create A Simple and Dynamic Tooltip With Svelte and JavaScript

2024/06/19

Create A Simple and Dynamic Tooltip With Svelte and JavaScript

JavaScriptSvelteSimpleDynamicTooltipFront-end
Create an Interactive Map of Tokyo with JavaScript

2024/06/17

Create an Interactive Map of Tokyo with JavaScript

SvelteSVGJavaScriptTailwindInteractive MapTokyoJapanTokyo Metropolitan Area23 Wards
How to Easily Fix Japanese Character Issue in Matplotlib

2024/06/14

How to Easily Fix Japanese Character Issue in Matplotlib

MatplotlibGraphChartPythonJapanese charactersIssueBug
Book Review | Talking to Strangers: What We Should Know about the People We Don't Know by Malcolm Gladwell

2024/06/13

Book Review | Talking to Strangers: What We Should Know about the People We Don't Know by Malcolm Gladwell

Book ReviewTalking to StrangersWhat We Should Know about the People We Don't KnowMalcolm Gladwell
Most Commonly Used 3,000 Kanjis in Japanese

2024/06/07

Most Commonly Used 3,000 Kanjis in Japanese

Most CommonKanji3000ListUsage FrequencyJapaneseJLPTLanguageStudyingWordsKanji ImportanceWord Prevalence
Replace With Regex Using VSCode

2024/06/07

Replace With Regex Using VSCode

VSCodeRegexFindReplaceConditional Replace
Do Not Use Readable Store in Svelte

2024/06/06

Do Not Use Readable Store in Svelte

SvelteReadableWritableState ManagementStoreSpeedMemoryFile Size
Increase Website Load Speed by Compressing Data with Gzip and Pako

2024/06/05

Increase Website Load Speed by Compressing Data with Gzip and Pako

GzipCompressionPakoWebsite Load SpeedSvelteKit
Find the Word the Mouse is Pointing to on a Webpage with JavaScript

2024/05/31

Find the Word the Mouse is Pointing to on a Webpage with JavaScript

JavascriptMousePointerHoverWeb Development
Create an Interactive Map with Svelte using SVG

2024/05/29

Create an Interactive Map with Svelte using SVG

SvelteSVGInteractive MapFront-end
Book Review | Originals: How Non-Conformists Move the World by Adam Grant & Sheryl Sandberg

2024/05/28

Book Review | Originals: How Non-Conformists Move the World by Adam Grant & Sheryl Sandberg

Book ReviewOriginalsAdam Grant & Sheryl SandbergHow Non-Conformists Move the World
How to Algorithmically Solve Sudoku Using Javascript

2024/05/27

How to Algorithmically Solve Sudoku Using Javascript

Solve SudokuAlgorithmJavaScriptProgramming
How I Increased Traffic to my Website by 10x in a Month

2024/05/26

How I Increased Traffic to my Website by 10x in a Month

Increase Website TrafficClicksImpressionsGoogle Search Console
Life is Like Cycling

2024/05/24

Life is Like Cycling

CyclingLifePhilosophySuccess
Generate a Complete Sudoku Grid with Backtracking Algorithm in JavaScript

2024/05/19

Generate a Complete Sudoku Grid with Backtracking Algorithm in JavaScript

SudokuComplete GridBacktracking AlgorithmJavaScript
Why Tailwind is Amazing and How It Makes Web Dev a Breeze

2024/05/16

Why Tailwind is Amazing and How It Makes Web Dev a Breeze

TailwindAmazingFront-endWeb Development
Generate Sitemap Automatically with Git Hooks Using Python

2024/05/15

Generate Sitemap Automatically with Git Hooks Using Python

Git HooksPythonSitemapSvelteKit
Book Review | Range: Why Generalists Triumph in a Specialized World by David Epstein

2024/05/14

Book Review | Range: Why Generalists Triumph in a Specialized World by David Epstein

Book ReviewRangeDavid EpsteinWhy Generalists Triumph in a Specialized World
What is Svelte and SvelteKit?

2024/05/13

What is Svelte and SvelteKit?

SvelteSvelteKitFront-endVite
Internationalization with SvelteKit (Multiple Language Support)

2024/05/12

Internationalization with SvelteKit (Multiple Language Support)

InternationalizationI18NSvelteKitLanguage Support
Reduce Svelte Deploy Time With Caching

2024/05/11

Reduce Svelte Deploy Time With Caching

SvelteEnhanced ImageCachingDeploy Time
Lazy Load Content With Svelte and Intersection Oberver

2024/05/10

Lazy Load Content With Svelte and Intersection Oberver

Lazy LoadingWebsite Speed OptimizationSvelteIntersection Observer
Find the Optimal Stock Portfolio with a Genetic Algorithm

2024/05/10

Find the Optimal Stock Portfolio with a Genetic Algorithm

Stock marketPortfolio OptimizationGenetic AlgorithmPython
Convert ShapeFile To SVG With Python

2024/05/09

Convert ShapeFile To SVG With Python

ShapeFileSVGPythonGeoJSON
Reactivity In Svelte: Variables, Binding, and Key Function

2024/05/08

Reactivity In Svelte: Variables, Binding, and Key Function

SvelteReactivityBindingKey Function
Book Review | The Art Of War by Sun Tzu

2024/05/07

Book Review | The Art Of War by Sun Tzu

Book ReviewThe Art Of WarSun TzuThomas Cleary
Analyze Voter Behavior in Turkish Elections with Python

2024/05/03

Analyze Voter Behavior in Turkish Elections with Python

TurkeyAge Analysis2018 ElectionsVoter Behavior
Create Turkish Voter Profile Database With Web Scraping

2024/05/01

Create Turkish Voter Profile Database With Web Scraping

PythonSeleniumWeb ScrapingTurkish Elections
Make Infinite Scroll With Svelte and Tailwind

2024/04/30

Make Infinite Scroll With Svelte and Tailwind

SvelteTailwindInfinite ScrollFront-end
How I Reached Japanese Proficiency In Under A Year

2024/04/29

How I Reached Japanese Proficiency In Under A Year

JapaneseProficiencyJLPTBusiness
Use-ready Website Template With Svelte and Tailwind

2024/04/25

Use-ready Website Template With Svelte and Tailwind

Website TemplateFront-endSvelteTailwind
Lazy Engineers Make Lousy Products

2024/01/29

Lazy Engineers Make Lousy Products

Lazy engineerLousy productStarbucksSBI
On Greatness

2024/01/28

On Greatness

GreatnessMeaning of lifeSatisfactory lifePurpose
Converting PDF to PNG on a MacBook

2024/01/28

Converting PDF to PNG on a MacBook

PDFPNGMacBookAutomator
Recapping 2023: Compilation of 24 books read

2023/12/31

Recapping 2023: Compilation of 24 books read

BooksReading2023Reflections
Create a Photo Collage with Python PIL

2023/12/30

Create a Photo Collage with Python PIL

PythonPILImage ProcessingCollage
Detect Device & Browser of Visitors to Your Website

2024/01/09

Detect Device & Browser of Visitors to Your Website

JavascriptDevice DetectionBrowser DetectionWebsite Analytics
Anatomy of a ChatGPT Response

2024/01/19

Anatomy of a ChatGPT Response

ChatGPTLarge Language ModelMachine LearningGenerative AI