The argument of specialist vs generalist is futile. They simple fit in distinct parts of the journey and evolution of a software product.<p>Generalists are highly valuable for many types of orgs and projects especially nascent projects. But sometimes you need the precise output of a specialist to achieve something.<p>If my business has a product that is highly dependent of let's say OpenGL, then an OpenGL specialist will generate more specific output that someone who knows a little of OpenGL and a lot of other things.<p>However, there's always the counterargument that generalists can compensate with their holistic view and understanding of problems throughout the whole stack. I understand this and agree with it, but I think there's a point in every innovation where the generalist contribution declines sharply. And I'm saying this as a generalist.<p>If you are a generalist and you feel undervalued, you're likely in the wrong project or too involved in phases of a project where your contribution can't move the needle significantly anymore.
In my career, I have met exactly one short fat engineer with >5yrs of exp that I was impressed by. That person is now a Product Manager at a FAANG company (albeit PM-ing highly technical stuff).<p>I bring this up because I think there is a very good analogy to the point that the author is making and the distinction between PM and Engineers. Broadly put, PM's are good at figuring out the theta, and Engineers are good at the r.<p>I think that with the perspectives that short fat engineers have, they can play enormous roles as "PM" or "Engineering Manager", and definitely as ICs during early stages of startups. But they clearly don't enjoy depth, and this can be counter-productive for that 1% of the time where you really, really want depth.<p>I don't buy the knowledge vs wisdom thing though, there's plenty of wisdom to be gained from going deep into a subject. I'd actually claim that wisdom can only come from depth - though what depth means is different for different roles.
None of these things exist. A taxonomy of three kinds is entirely inadequate to describe the potential of anyone working today. These sorts of quick fix mental models are pretty poisonous. There are literally recommendations for all three saying how useful they are. This is some of the dumbest snake oil to infect software development.
When I was younger I used to say that I was a jack of all trades, master of none. Many years later I feel like a jack of all trades, master of many. I no longer fit any of the profiles presented here.
"Junior in every department" really struck hard for me.<p>I know just enough of basically everything to get by or as a starting point, but I lack that really deep knowledge that comes from using a small group of skills
and tools for years. I feel that switching languages and frameworks and tools and OSes a bunch of times early in my career has really held me back.<p>I don't mind supporting my team, what I don't like is how companies will structure an entire team as support around one or two people. I am not a rock star but I am still capable of contributing more than "support". I want to build real features.<p>Especially when I know I'm capable of doing the things those devs do, just maybe not at the speed they do.
Is it really true?<p>A lot of companies are focusing on hiring "short fat" engineers. Especially companies having "dev ops" engineering model, where engineers must be able to work on all stages of the product lifecycle - from design, development, testing, to deployment and operations.
Do "height on demand". Constant abstract and compress the knowledge so you can ramp up in any area as needed.<p>Really, this is why programming languages are my "home base" of expertise. It's the study of formal ideas and their communication.
The point that "on a long enough time line, wisdom is always more valuable than knowledge" is pretty irrelevant to tech companies. They hire engineers to get stuff done quickly - not slowly gather "wisdom". The average tenure at a tech company continues to be a few years.
Also, I've noticed that entry-to-mid level jobs are great for "short and fat" engineers, but once you start aiming for senior (or higher) level IC positions, job interviews require you to be an expert in whatever field the position you’re interviewing for is in. If you stay "short and fat", you're setting your career trajectory up for failure.
This falls victim to the fallacy that everybody has a fixed number of points to allocate across skills. To torture the analogy, the reality is some people are huge squares and some are tiny slivers. Or a fat fork or some other weird shape. Basically, some people are just better than you at everything.<p>The other thing is that you often just need problem solvers where it doesn’t even matter how wide their experience is. You just need someone who knows the basics and is adaptable.
> Both dimensions can be useful; but breadth gives us perspective, and thus wisdom<p>No, it really doesn't. If you haven't ever gone through the work required to become great at something then you lack that perspective completely. If you have gone through that journey at least once you start seeing that journey in other domains as well which gives you a lot of understanding about the field, about engineers, about what projects actually require etc. I really don't see how you can be considered wise without having seen that, not as a software engineer at least. Maybe you could be a great product manager though.
A friendly suggestion for the OP:<p>An uppercase theta should be used for "Big Θ time complexity" regarding algorithms but for angles like in the article, it should be the lowercase theta that looks like this: θ.
Wisdom comes from depth and breadth not breadth alone. That initial bolder claim was a major turn off for me. The “wisdom” you get from breadth is the same kind of “wisdom” you get from seeing a lot of faces go by on the street. It’s surface level, and mostly wrong.
Egads. The term is "generalist", and has been for decades.<p>No one would or should say "short & fat".<p>And yes, generalists are undervalued.
Good "short fat engineers" are not undervalued at all, the reason they are not hired often is because they are the boss!<p>A wide profile is typically what you want as a boss/executive/entrepreneur. With technical knowledge but also artistic, legal, people and of course business skills. This is what you need to run a company. And as you reach your limits, you start to hire experts.
Everyone should aim to be T-shaped. The problem with 'tall skinny' engineers is that they can be extremely dangerous because:<p>- Their deep domain knowledge makes them sound a lot smarter than they are... Especially to non tech-savvy managers who don't know better. So they can be extremely persuasive in arguments. They only participate in arguments that they can win but their ability to constantly win those niche arguments gives them extra general credibility which is not deserved.<p>- They are excellent at implementing solutions within their narrow area of expertise but they tend to miss a lot of alternative solutions which may have been better. They could spend years working on a solution whose problem could have been solved much faster and more elegantly via a different solution which happens to lie outside of that individual's immediate domain of expertise. People who wield absolute top-of-the-range, world-class hammers but have no other tool in their toolbox have a very strong incentive to see and portray every problem as a nail.
Looking at the author's background, it's easier to say generalists are undervalued when you're a freelancer/agency - you kind of have the freedom to work on projects for 3-6 months, punt them, and move on to the next.<p>When you're a bigger product organization, more specialized approaches can work better since you're better suited to find the right trade-off of "speed" vs "future-proofness".<p>This can backfire too though - many specialists can get lost in the weeds and over-engineer solutions that can cripple a business with maintenance costs simply because they want to increase their depth.<p>I think this entire contextualization is kind of ridiculous though. If you were to categorize short fat vs tall skinny vs T, you might see something like:<p>fullstack eng vs ML researcher vs backend engineer w/ ETL experience<p>The fact is that fullstacks _are_ utility players. I don't know that they're really at liberty to "take the helm" if they're not well-versed in the technology that differentiates the company (or team).
The most successful engineers, to me, seem to be the ones who rise about the lower levels of technology and abstract out minor details.<p>They understand what the technology in question <i>can</i> do and <i>cannot</i> do. They know what other technologies <i>can</i> be paired and <i>cannot</i> be paired with the current one and they understand the performance, development, deployment and maintenance aspects of all the combinations.<p>They can then design applications or platforms, learning as they go.<p>Take, for example NodeJS. Ryan knows what V8 is capable of, knows what it's not capable of outside the browser sandbox, and built himself an alternate sandbox. The implementation details, while complex, are minor in the grand scheme of things.
Practical question: I have a short, fat resume (e.g. MechE degree, work experience in AI, UX, manufacturing, academic research, and writing). What industries/companies/roles will value this skill set the most? Where can short, fat people find opportunities?
What I've observed is that people have an easier time when they can assign you a label that fits with their world view. Depth (for some value or depth) provides the tag that (lazy) managers, hr, etc need to understand where you will fit. If you can do a range of stuff, even well, people aren't sure what to do with that, and so often end up focusing on someone else.<p>I saw that a lot in consulting, where people with what would objectively be a very superficial skillset in some area or another "branded" themselves as being a deep expert, and became the go-to for anything that was perceived as relating to their area.<p>So I would maybe rephrase as "skinny engineers brand more easily"
I think there's some dynamics at play here that obscure the situation.<p>First of all, there's a tendency for depth engineers to be more visible. But this is extreme; there's a handful of top names in StackOverflow for a tag like csharp or django, but that doesn't mean number 1000 in a given tag is an amateur at it, he's likely pretty good. Similarly, not everyone writes respected blogs, but the people who do tend to be ones who spent a heck of a lot of time in one niche. That doesn't mean you need a known blogger for your project.<p>Second, there's a tendency for hiring firms to want a dev fully trained in some vertical. This may sound sensible but often isn't. If you have some person who did a lot of work in RoR, but you have a Py/Django project, couldn't you expect him to get up to speed reasonably quickly? I think in a lot of cases, yes. Whether you'll be allowed to take that risk depends on the situation, and often you won't be. This works the other way too: a lot of devs will decide not to bother applying.<p>Third, diminishing returns. Like a lot of knowledge stuff, there's a sort of pareto principle here. You can learn most of anything in way under half the time to learn the whole thing, if that's even possible. If your project is not super specialized in one vertical, but still requires a lot of verticals, you benefit from having a guy who knows a lot about a lot of stuff.
Think of an engineering team like a DnD group. You need a tank (wide), DPS (narrow), buff / debuff (QA), wizard (designer), and more.<p>Going all wide or all narrow is a recipe for a team wipe.
A possible problem with ‘wisdom’ in this sense is that it doesn’t always stack well, whereas deep knowledge usually does.<p>A wise generalist manager deftly guiding the skills of a bunch of deep specialists probably makes for a great team, and a team that can be expanded without much friction. A team with too many ‘wise’ people (or people who perceive themselves that way) might just waste all day arguing.
How about "tall and fat" (square)? I'd consider myself fairly expert in C and C++, SQL, Windows programming, UNIX/Linux in general, Delphi and a few other technologies, in that quite a few people have paid me for writing important applications using them, teaching them and writing about them.
No sources and a lot of assertions here. I'm not sure how true this is tbh. Some of the best TAs I've worked with have a very broad knowledge of a lot of technologies, without being much of an expert in any specific technology.<p>I'm also personally somewhere between a tall-skinny and t-shaped engineer. Admittedly jobs seem to be a little harder to come by, but there are some jobs (especially with small startups) that really appreciate engineers who have a wide range of skills.<p>I'd love to see some data, confirming this. I suspect OP is right, but I don't think "short and fat" engineers are under valued as a rule, it's more that 90% of the time companies are looking to hire someone with a very specific skillset to fill a very specific role.
I think this article underestimates a risk of the "short fat" information spectrum.<p>People who think they know something are more likely to be wrong than people who don't think they know anything on a topic. There's a "competence gap" between knowing you know nothing and actually having deep knowledge; it's the "just enough to be dangerous" zone.<p>Depending on how tall precisely "short fat" is, that can describe an engineer that, more often than not, makes the wrong choice because they know enough to have opinions but those opinions are raw.
I made an account to give my perspective. I call my self a generalist because I don’t know the correct term. You can put me on any team and I can learn, adapt, and improve any system you put me on. I’m not the best at coming up with new ideas, but I can take any idea, implementation, etc and combine them all to fit whatever need. I tend to build systems, make them stable, teach people the how and why, and then move on to another project. I thrive at companies that allow me to choose my projects and allow me to learn and build new things.
For further in-depth reading, I recommend the book "Range: Why Generalists Triumph in a Specialized World". It explores the generalist vs specialist dichotomy within various fields (e.g. sports, music, engineering) and compares the successes and contributions between the two. As you might guess from the title, the book reaches a very similar conclusion - for spaces involving unstructured problem solving such as engineering, breadth lends itself better to creativity and achieving breakthroughs.
In my opinion, for most projects what's necessary is to approach from a broadly informed perspective and then dive deep into multiple potential solution strategies to see what direction will work well. Then dive even deeper into the details related to the architecture you have chosen.<p>The problem with focusing too much on one area is that you can only deal with one particular type of problem and maybe only with one particular type of solution.
I would add that deep skills, especially when expressed in years of experience, are often indicative of having worked in a bubble, and may not even generalize to other applications of the same tech.<p>Cases where someone has actually gotten progressively "deeper" as they continue to work in the same area are (anecdotally) outliers. It's much more common to have just spend a lot of time doing more of the same.
I guess I’m relatively fat, but not really. I’ve done a lot of surface level research/ on stuff that no one uses or really cares about.<p>Ive always been amazed by the “tall” devs and have one or twice (or more than I’d like to admit) tried to deep dive something always eventually giving up because I have no idea where to obtain the deeper knowledge. Perhaps more realistically, I just have a different type of fat.
This could be one of the reasons why tech interviews are awkward. Most of them are "optimised" for tall and fat engineers but what you actually get is "luck of the draw" T shaped engineers on random specialties that you may not even need, with the assumption that the T shaped engineer can be transformed on demand to a short and fat or tall and skinny.
Specialist vs generalist is a false bifurcation in the article's context. There's really just one dimension: influence. You have only breadth but you can convince teams to move in the direction you like, and you will be valued. You have depth yet the depth is of no use to solve your team's challenges, then your depth will not be valued.
A lot of sounds words without anything concrete. What is wisdom? How do you quantify it? Why "short far" engineer can have it and why T-shaped or "skinny" engineer can't have it? What makes someone "short and fat" valuable compared to other types?
This is shortsighted. The reason deep knowledge is more valuable is that learning anything stops being fun, and therefore presents less of a biological pull, after the first few milestones. There's a logarithmic decay in reward to effort put in. So naturally you're going to want engineers that have put in the hard work to build their knowledge, rather than the posers who read about engineering but never actually got into the nitty gritty. Why? Because it becomes rare, and scarcity drives up value. Simple!<p>EXAMPLE: Why would I care if my plumber also moonlights as a surgeon if all I care about is getting my faucet fixed without him passing the buck due to perceived complexity?<p>Those things are great in a dinner party setting, but in the professional workplace you want professionals not dabblers. Whenever I meet a self styled "generalist" nowadays I scoff. It's not hard to read HN daily and pick up on the lingo and memes and fake your way to 99% of a "generalist" in both knowledge and impression, but that doesn't make one a good engineer.
I suppose the paradigm for aging engineers like me would be "crumbling dock" rather than "T shaped": Quite a bit of breadth, with depth in various places, except that when you rely too much on it, you may find out that some of it has rotted away in the mean time.
The valve employee handbook talks about the T shaped engineer (page 32) <a href="https://media.steampowered.com/apps/valve/Valve_Handbook_LowRes.pdf" rel="nofollow">https://media.steampowered.com/apps/valve/Valve_Handbook_Low...</a>
One hidden risk with adopting industry leading technology at smaller businesses is that you unintentionally select for tools that favor specialists, and that is harder to hire for and less useful for an early or small business.
Remember the adage:<p><i>A specialist will tend to underestimate how much a generalist can accomplish, when they choose to specialize, and a generalist will tend to underestimate how deep any given specialty really goes.</i>
Looking at their illustrations reminds me of Tetris. I guess it is just like in Tetris - we need the right mix of vertical, horizontal, and T shaped pieces or we are screwed!
Bad article. Noone is just an expert in one thing and can't do anything else. What actually happens is by becoming an expert at something you also learn things that will help you elsewhere, which means you can pick up other things more quickly. So the choice is either between someone who is an expert in a one thing and knows a bunch of other things, or someone who just knows of bunch of things.
my theory: depth == salary, width == mobility.
depth is risky - when time is right, you make a ton of money; opposite also true.<p>width is a hedge - you don't get paid as much, but you can land a job quickly, because you can plug into any team
I am not sure that perspective will be widely shared, I am not even sure if I agree myself, but I do appreciate this post as I consider myself a short fat engineer.
The reality often goes against the premise of the article.<p>What are accomplishments of tall.skinny vs short.fat engineers?<p>Linux was driven by Linus T, javascript by Brendan E, Apple by 2 Steve’s, etc.<p>Innovation and creativity are more highly valued, which are byproducts of short.skinny type.
People who have broad interests with no depth of knowledge have not identified (for themselves) where their value lies.<p>I would imagine that this type of engineer needs to be carefully managed to stay on tasks that add business-value.<p>As such, it's not unfair that they are seen as juniors. They <i>are</i> juniors.
Not sure I agree. A "short fat" could theoretically be replaced by a group of "short skinny", whereas a "tall skinny" could only be replaced by another "tall skinny".<p>As value is largely determined by scarcity (supply and demand), this would cause "short fat" to be of lower value.
Why would a generalist be wiser than somebody who is able to go into depth and understand the ugly details of a project? That is what the T-shaped thinking is about.<p>Elon Musk is a great example who is able to answer deep technical questions on many subjects, and I think he needs people who understand their own project deeply, not ,,short fat'' engineers.
Specialisation is the exception, not the rule.<p>> Everyone should read "Range By David Epstein" <a href="https://www.amazon.com/Range-Generalists-Triumph-Specialized-World/dp/0735214484?dchild=1&keywords=range&qid=1613210249&sr=8-1&linkCode=ll1&tag=amazonpurch08-20&linkId=af13ec04a290a64559e7f315a391308a&language=en_US&ref_=as_li_ss_tl" rel="nofollow">https://www.amazon.com/Range-Generalists-Triumph-Specialized...</a><p>> In most fields, especially those that are complex and unpredictable. Generalists, not specialists, are primed to excel.