If I had to choose a concept of software development that describes me, I would be Cross-Cutting Concerns. I don’t fit cleanly in lines.
– Sadukie
Let’s talk about a term that people seem afraid to say – generalist. I am not a ninja, nor a rockstar. I’m most definitely not a unicorn. When I’m asked if I’m a generalist or a specialist, I often identify as a generalist.
Throughout my career, many folks would ask me how I identify in tech. Am I a dev? Am I a data person? Am I an IT person? Am I a DevOps person? Yes, yes, yes, and yes. Then I would get looks like – “Well, which one are you?” 🤦🏻♀️ I’m that class known as generalist. I don’t have to choose one identity – they are all me.
My secret power is that you can drop me in a new technology, and my engineer ways go to town learning the “what”, “why”, and “how” of things. I like to go broad on a topic and see how it relates to what I’ve worked with before – or if it’s new, how I can tie it in with who I am and what I do. The best way I explain my life is through graph databases – always making connections and associations to remember things.
But You Need to Specialize! …. Right? 🤔
I hear from others in the industry that they prefer specialization and recommend it to others. I’m here to tell you that specialization isn’t for everyone. The world needs both of us and here’s why:
- The generalist typically has enough broad knowledge to understand problems at a high level and can troubleshoot with a breadth of knowledge.
- The specialist can deep dive into a topic when something needs someone who understands the inner workings and nuances of a situation.
- Together, we can leverage each other’s strengths and support each other in our weaknesses.
- A T-shaped developer can flip between generalist and specialist modes in some cases.
What About the Concept of a T-Shaped Developer?
My friend Ardalis talks about the T-Shaped Developer on his Weekly Dev Tips podcast. This is probably a better way of describing who I am. In my career, I’ve developed a breadth of understanding to make the top part of the “T” shape. I’ve got enough knowledge in some topics that I am just a search engine search ahead of some and do well because I know what terms to search for. I also have a few areas where I deep dive into things and can switch to a specialist role.
When I work on a full stack project, I volunteer for the CSS tasks – I enjoy CSS, and I also know that I usually end up on a team with middle layer and backend devs who struggle with the front-end. The UX of front-end trips people up often. However, it just makes sense to me. If you’ve got a problem in your business with communication issues among siloed business units, I can help work through those complexities. Need to go through a document and search and replace using regular expressions? I’m the one my previous teammates would turn to for that arcane knowledge. Need help getting PHP apps hosted in Azure? Need ideas on how to teach technical concepts to an audience? I’m there. Need to learn more about getting started with Azure Cosmos DB and its many APIs? I can help you with the graph database and document databases. But Cassandra API – not so much!
As a T-shaped developer, I know the limits of my breadth and know how to gauge a situation to see where I belong. I recognize when I’m in a situation where “I know I don’t know something”, and I still feel the discomfort we feel when we hit that situation of “I don’t realize I don’t know something because it’s this far out of my view”. Throughout my career, I’ve chosen stops along the way to dive further and learn more about things that intrigue me. These are the “|” part of the T.
So How Do I Become a T-Shaped Developer?
Did you listen to Ardalis’ podcast? 😊
You need to follow your curiosities, always learning in this field. If there’s something that catches your eye that you want to explore, then go for it! Remember – you control your career. People will have ideas of how they can use you in their business. However, it’s up to you whether you truly choose that path or make your choices.
So how do you become a T-Shaped developer?
- Always be learning. There’s no shortage of things to learn in technology.
- Embrace the breadth of a generalist. This is the horizontal part of the “T”. This will help you to better understand and troubleshoot problems, as you get a better idea of the high level overview of a problem.
- Embrace the depth of a specialist. This is the vertical part of the “T”. If there’s something about a situation where you really want to solve that part, embrace not knowing it and deep dive!
But… What If My Work Has Trapped Me as a {Role}?
If work has you trapped as a generalist or a specialist and you really are shooting to be a T-shaped developer, you need to be intentional and deep dive on your own time. If you have the privilege to grow on your own time, I recommend it, as having certain skills will open more doors and opportunities for you to grow in your career.
🎼 The generalist and the specialist should be friends…
– Sadukie, to the tune of “The Farmer and the Cowman” from the musical Oklahoma!
Oh, the generalist and the specialist should be friends…
One goes wide with what they know,
The other dives in and saves the show…
And there’s no reason why they cain’t be friends