Specialist or Generalist?
A nice & warm batch brew. Mmm…
I realised something this morning when buying coffee at my local café — the person who pumped the batch brew coffee into my mug was not the barista, and she didn’t pre-heat my mug with hot water before pumping coffee into it. It didn’t bother me much; it was simply something I noticed. I don’t mind my coffee being slightly cooler than piping hot anyway.
But the point is this: a barista would have done it better. I know some coffee lovers who would be upset by this broken ritual. They want their day’s coffee as close to perfection as possible, and it usually takes a barista — i.e. a specialist — to make that happen.
Now consider this: if there were only specialists, who would keep an eye on how their cafe business is doing and, if the business is faltering, try and figure out what might be wrong beyond less than ideal coffee temperatures and incorrect grind size calibration?
That would be the job of a generalist.
Perhaps the woman who pumped coffee for me today was one. She looked like she was waiting tables, taking orders at the cashier, and, well, serving batch brewed coffee. When I was checking out and noticed the bill to be 3 euros instead of 2.50 euros because of the 50 cents “bring your own mug” discount, I mentioned this to her and her colleague — the barista — told her how to key that into the POS system, and she said with some warmth, “I learn something every day!“’
I imagine that at some point, a barista would notice the missing step in her coffee ritual and casually mention to her, “You should warm the cup with hot water first, discard the water, then pump coffee into the mug. That way we serve warm, not lukewarm, coffee! :)” Again, she will learn, and over time, a generalist like her is much likelier to become a store manager than a barista focused on his craft.
Generalist vs Specialists in Tech
I think about this specialist versus generalist division quite often. (Here’s an article I wrote 4 years ago.) It’s partly because I don’t know which one I am more of. The other part is that I don’t know which one I want to be more of.
An example of a super generalist would be a CEO, and a super-specialist (in tech) would be a Principal Engineer. In between, there are Team Leads, Managers, Directors, and VPs. As natural law, the more generalised you become, the less specialised you are, and vice versa. So an Engineering Team Lead is almost always less of a specialist than a Developer in that team, and an Engineering Director is even less of a specialist than an Engineering Team Lead.
Years ago, I was a more specialised software developer at Altitude Labs; now, I’m an Engineering Team Lead at Smartly.io. So this means that I’ve become more of a generalist.
When I was a developer (i.e. specialist), I was regularly publishing posts about technical things like how the bubble sort algorithm works, how to implement a queue in JavaScript, what is a binary search tree, and so on. I even started a Medium publication called Bite Size Programming to house the growing collection of technical articles meant for a specialist audience.
And then what happened when I started as a team lead? I wrote more about people topics like questions to ask during 1-1s, problem-solving, and drawing analogies between things like bugs in software and city trash.
Predictably, with this shift to the general, I’ve noticed that I have less time to keep up with the latest in the world of web applications development or to keep my fluency in JavaScript (and React, Redux, TypeScript, and so on). This occasionally makes me slightly uncomfortable.
I think that discomfort stems from the fact that I don’t like being the person who directs a musical but doesn’t know how to sing, dance, or act. It’s the reason I quit my startup. I have to know at least one subject somewhat deeply to not feel like I’m lost. Also, it’s clear to me that knowing once doesn’t mean knowing always. Every skill needs upkeeping!
So now what?
I’m still working that out.