In case you missed the first part in this 5 part series — you can read about it at: Key Point 4 — Communicate & Collaborate — 5 things I wish I knew as a Software Engineer
All the 5 key traits can be found at
....
Honestly, this has been one of the most challenging topics in mySoftware Engineering career and I am certain for many others as well. There is really no right or wrong approach and the ultimate direction will matter a lot based on your preference, interests and operational style.
I will attempt to highlight key characteristics of each side below. Also, there is an added bonus at the end where I want to share a blended approach which I personally prefer (more on that later).
...
Generalists — also referred to as “Jack of all trades, Master of None”
Specialists — also referred to as being “T-shaped” i.e. growing vertically in a specific niche
...
Overall, Generalists can benefit from having a broader viewport, more skills at their disposal and skills that are easily transferable while moving jobs. On the other hand they could end up being on the surface of many skills but mastering none due to lack of depth and vice-versa for Specialists.
An area I want to highlight in the Generalist vs Specialist debate is in terms of Career Development and Growth. A key distinction that I believe is associated with each persona is:
Generalists — They do not have a Career Ladder per se to grow vertically in. They instead have a Career Rock-Climbing Wall which gives them the opportunity to change course and move up, down, left, right depending on their will, accelerated growth mindset and comfort.
Specialists — They have a definitive Career Ladder for the most part. The path may seem narrower, with pinpoint focus and locked down but there is always a solid next stage in sight.
...
BONUS
As promised, I wanted to share an interesting tidbit by Gartner. Beyond being a generalist vs specialist, there is a 3rd category which is being adaptable based on the situation, called Versatilists!
As you can see, Versatilists can scale as well as operate on-demand and as-needed. This is exactly the “wearing many hats” notion that is becoming popular in the field of Software Engineering.
Whether it is jumping on a PROD issue on one day to brainstorming the next product development iteration with the design team, the next day — the true difference in a programmer vs developer vs a SOFTWARE ENGINEER relies on this core skill.
I can personally attest that being a Versatilist myself gives me a strong sense of connection to the entire SDLC, company mission, enhances my communication and collaboration within and outside my team. While it is immensely valuable, there is a potential downside of this seeming as if you are “Spreading too thin” (there is a separate article as well I wrote regarding this at
...
Let me know in the comments below on what are your thoughts with such an approach and when does it make sense to leverage this.
Top comments (4)
Just read all the series, thank you for publishing! Amazing stuff. Although I would argue that most of us thrive to be as versatile as possible and there is no clear distinction between generalists and specialists I think all developers/engineers are somewhere on the specter
I agree. Thank you for your kind words. I am glad you enjoyed reading.
I have a few more tidbits in the works :)
Feel free to connect on LinkedIn at :linkedin.com/in/anandsafi
to stay updated and stay in touch
I believe it comes down to personality types, which are hardwired. As an NTP, I thrive on new challenges and always keeping things fresh and excited....naturally a generalist. But I also like being right and getting things done. But I only learn enough to move the needle, but never a bit more 😉. However, often this brings me deep into an area that is often completely unexplored, so maybe for that brief moment, I could be considered a specialist.
But I believe my wiring does not allow me to become an expert on something....and if I do, it is not long until I get passed because everyone else specializes when I am already onto the next thing ;-)