I think we’ve all heard from, well, basically everyone, that you should find your niche and specialize in something. And I’m here to tell you that, sometimes, it’s completely wrong. Sometimes you were born to be a generalist.
Yes, it’s amazing to be great in your field, but dabbling in other things can be way more beneficial for you, professionally and personally. We’re going to exclude some industries because some do require specialization. But, in software development, no matter your department or field of work, it can be good to have a wider breadth of knowledge.
A T-shaped, I, Pi, M, X, or E? – there will probably be a new one tomorrow
There are various types of employees and developers for that matter. From I, T, Pi, M, X, to E, there seems to be a lot of knowledge and skill shapes. And each one has its benefits and downsides. Fitting ourselves just in one mold might seem like another downside sometimes. So, let’s take a closer look at each of them.
This shape describes a person that has excellent skills and knowledge in a specific field but also has fantastic collaborative skills and can work well with others. It’s an extremely desirable personality shape in software development since it also allows for such employees to easily learn new skills and adapt to changes. They are often flexible and have good hard and soft skills.
Employees with T-shaped skills have an in-depth understanding of a particular role or field and a wide range of cross-discipline competencies. As a T shape, you’re both a specialist and a generalist or popularly called a “generalist specialist”.
The X-shaped person is someone who is good in multiple areas and can work cross-departmentally. They are great for managerial positions since they can understand and work with numerous different people and skills. Such personalities easily bring others together to work collaboratively and efficiently.
The I-shaped person is similar to a T one, but, even though they are experts in one certain area, they are lacking expertise in others. They don’t cover a wide breadth of knowledge and are not well-rounded since they do not put much into learning other areas or into developing extensive soft skills.
Pi-shaped personalities have evolved from the T-shape into one that exhibits general knowledge but also deep functional or domain expertise in two knowledge areas. These types are extremely flexible since they can easily integrate themselves into other areas of expertise based on their interests and multiple specializations.
This shape evolved further from the Pi shape. It consists of multiple areas or knowledge areas. With adding more areas of knowledge or specialization it turns into a Comb shape. These types are more adaptable than those with just one specialization and can work across broader teams. M is a multi-skill profile and can apply deep knowledge in multiple areas with great abilities and flexibility.
This shape is sort of relatively new. It covers four areas – experience, expertise, exploration, and execution and they form the letter E. Besides depth and breadth of knowledge, these types of personalities show a willingness to expand their skills into other areas, can deliver results and continuously work on improving themselves. This person has a vision and foresight that can align with company goals and ambitions. Someone with this type of personality has deep expertise in several areas and can show almost limitless potential.
Why a generalist and not a specialist?
Since in today’s world everything is seasonal, as they would say, some skills and knowledge become obsolete or non-trendy. Does being extremely expert in an old technology bring value if you’re not willing to learn new ones that are becoming the new norm or necessity in software development? Often, becoming a specialist is somewhat limiting.
So, which shape are you, and which one is the best for you to be? Well, ideally you’ll try to become the E shape, but honestly, it might not suit your personality.
Yes, it can make you a jack of all trades – a master of none, but don’t think too broadly. The full quote is, after all, “A jack of all trades is a master of none, but oftentimes better than a master of one”. Your skills don’t have to go way beyond, having just two specializations is already tremendous. Having one with the ability to adapt and learn new ones is also great. Being a T-shaped developer is often thought to be the best type for agile teams.
But, as we mentioned above, the T-shaped has evolved to multiple specialization types and more towards the almost generalist. Even now we can see the new trend of younger developers and developers-to-be leaning towards full stack development, rather than specializing only in frontend or backend. The market, sort of, dictates having broader knowledge and skills.
Okay, okay, you got us there. Generalists are not all that since they dabble in everything. Even full stack isn’t well-versed in absolutely everything. So, we’ll modify the term to accompany broad knowledge, but specialization in specific areas where you can be an expert.
And, okay, you will try to adapt to the market, but what’s in it for you? And what value do you bring as a generalist or someone close to that but not quite there?
Pluses and opportunities of a generalist
Seize the opportunities offered
Who knows, you might get offered an opportunity to learn something new and shift your focus. If it’s interesting and appealing to you, go for it. Going towards a more generalist side is not something you should be afraid of. Broadening your skill set and knowledge is always a good thing. Honestly, it’s how you stay competitive. Yes, one might search for skills based on one technology, for example in frontend development you might get hired for knowing certain sets of technologies and that’s it. But learning more will make you more flexible and open to new projects. You will grow not only as a developer but as a person as well.
Grow, don’t stagnate
The worst thing you can do is become stagnant. Humans are meant to learn and be inquisitive creatures. They thrive on challenges. So, why should you stop learning if that is the case? And most importantly, in software development, you have to go along with technological advances and new tech stacks. Like with everything in life, you learn, you adapt, and keep growing so you’re not left behind.
Find what you’re not good at
Being a generalist and broadening your knowledge will help you find what you’re not good at or what you’re not passionate about. Sometimes, things at which we fail, lead us to what we’re great at. Being a generalist doesn’t mean you have to do absolutely everything, it just means that you’ve tried it and turned your focus on other specializations.
Ability to see the bigger picture
People with broader knowledge can look at things from multiple perspectives and not just see a problem, but rather an approach to it. Generalists can offer input some specialists haven’t thought of. If you, for example, have great programming skills, but you don’t understand the business domain and perspective, it might be harder to analyze the problem from that side.
Easily transferable skills
People who are leaning more toward a generalist side, can easily switch to other specializations if needed. If developers want to switch to another technology or from frontend to backend, they will have less trouble and spend less time acquiring needed skill sets. Even skills from one specialization can help in adaptation to a new one.
Generalists can switch careers far more easily and faster. They can jump from one specialization to another without any major issues since they already have starting skills and interests. Their approach to a new career is more broad-minded as opposed to specialists.
Better team integration and versatility
People with broader knowledge and soft skills generally adapt better to new surroundings and teams. Even if it’s done just by switching between teams inside the organization, generalists understand each role in that team and can act as leaders. They can also take on different roles and feel comfortable in them.
Keep your chin up, not all is lost. Don’t force yourself into something you’re not.
Let’s not kid ourselves, knowing everything and being a generalist across a lot of fields, can make you lose focus and be average where you can be significant. There probably isn’t the best recipe for this. Just don’t remain an I-shaped type, strive more towards E. Match your personality and traits to the one type you’ll feel most comfortable with.
Don’t just limit yourself too much and lock yourself in a golden cage. Explore even outside of your comfort zone because you don’t know if something might spark your interest and drive you into another specialization. If you’re a developer, a generalist approach or even an E-shaped style can be extremely beneficial because of the fast industry development. It means you’ll adapt more quickly to changes and won’t get stressed out by switching fields or expertise.
Being static in software development is not quite a recipe for disaster, but it’s not good either. In such a dynamic field, developers should keep on learning and progressing, but most importantly they should invest their time in sharpening their soft skills. Generally, having people skills and the ability to understand the business domain is what pushes developers to be, well, great developers, and highly sought after on the market. So you see, striving just a little bit toward being a generalist offers more opportunities than being strictly I-shaped. Yes, we can all agree that being semi-good in everything is worse than being great at one thing but remember, generalists often develop skills in multiple specializations where they are great, and have some knowledge in areas they are not. So, all in all, strive to be inquisitive and explore anything you can get your hands on.