The T-shaped Developer

September 19, 20237 min read

The way how software companies work has changed. A new need has emerged — the need for T-shaped Software Developers.

Software companies are no longer looking for people who can do only one thing exceptionally well or do everything in a mediocre way.

Companies want people who can go deep when it matters but also be able to deliver other higher ROI tasks. This makes a company intensely adaptable - a critical business perspective.

Many Software Developers are unaware of the so-called “T-shaped” individual and its importance.

If you want to deliver more value, be interchangeable, or quickly find a new job, becoming a T-shaped Developer can significantly help you.

After reading this article, you will learn:

  • what’s the difference between a Generalist and a Specialist
  • what’s a T-shaped Developer
  • why & how to become a T-shaped Developer

Generalist

As the saying goes:

“A jack of ALL Trades, but a Master of NONE”.

A Generalist has a broader view of different fields, technologies, skills, or areas. He has a basic understanding and knowledge of the tools at hand.

You’re staying on the surface of your chosen tech stack.

To get a better idea of what it looks like to be a Generalist, consider the image below:

Generalists diagram and visualization

As a Generalist, your skills will go horizontally, as shown in the image above.

Generalists tend to have a broader range of analogies and concepts that they learn from using different technologies. Analogies help to find the better instrument for a specific job. This way, a generalist is less dependent.

The instruments and technologies are infinite, but the software concepts, ideas, and analogies are finite.

However, Generalists usually fail when faced with challenging tasks requiring deep knowledge and understanding. It’s not enough to be “on the surface” of a tech stack when a task requires higher expertise and proficiency.

For example, we may manage to deploy a simple web application. However, when faced with the first bug or problem, the chance of failure is enormous because we have only a minimum knowledge of the used tech stack.

Specialist

A Specialist is an expert in a specific field, technology, skill, or area. He has a deep understanding and knowledge of a chosen tool.

To get a better idea of what it looks like to be a Specialist, consider the image below:

Specialists diagram and visualization

As a Specialist, your skills will grow vertically, as shown in the image above.

Specialists tend to focus only on one technology or area of expertise. They master it. They can solve complex problems while other software developers can’t. When we have mastered a tool or an instrument, we usually have higher productivity and efficiency.

However, becoming a Specialist is hard and could be limiting. Devoting your time only to one technology, area, or stack could not have a good ROI in the future.

Another problem for Specialists is the limitation of the number of tools they know:

💡 If the only tool you have is a hammer, you tend to see every problem as a nail.

For example, if we have to create a full-text search for our app, most people will jump to Elasticsearch as the most famous tool. However, a Specialist in Databases knows there’re full-text indexes in the DBs, so maybe it won’t be necessary to use Elasticsearch. On the other hand, we can’t deploy a simple web application.

The Best of Both Worlds

As we see, being either a Generalist or a Specialist is not so great. Isn’t something in between?

Yes, there is - The T-shaped Software Developer.

The golden section. 🔥

The best of both worlds.

The T-shaped Developer

A T-shaped Developer is an expert in at least one area and has a broader understanding and knowledge of multiple areas.

To get a better idea of what it looks like to be a T-shaped Individual, consider the image below:

T-shaped developer diagram and visualization

As a T-shaped Developer, you grow your skills both horizontally and vertically. From here comes the term “T-shaped Individual” because the distribution of skills looks like a “T” as shown in the image above.

T-shaped Developers tend to be an incredible resource in one’s business because they are experts in at least one field and have a basic knowledge of others. This makes them valuable because they can deliver a different set of tasks and feature as well as solve complex problems when present.

However, businesses sometimes expect a T-shaped Developer to be an expert in all fields. That’s not realistic. Of course, a T-shaped individual can quickly learn and grasp a new tool and tech stack, but it will require additional time and effort. T-shaped developers are not a silver bullet. It won’t solve all the problems of a business.

For example, we can deploy a simple web application and when faced with challenging tasks in the databases, the chances to solve are higher because we are an expert in that field. However, for other complex tasks, we will probably fail to solve.

Generalizing Specialist or Specializing Generalist

Of course, it’s unnecessary to grow vertically only in one tech stack or area. As time passes, needs change, and you can also start expanding your skills in other fields.

Consider the image below: Expanded T-shaped developer diagram and visualization - Generalizing Specialist or Specializing Generalist

It’s not a clear “T”, as shown in the image above.

This is known as the “Generalizing Specialist” or “Specializing Generalist”.

Why should you become a T-shaped Developer?

There’s a real need for such individuals. Businesses need them.

If you’ve opened some job applications, you will see that usually there’re listed more than one or two technologies one should know.

This speaks for itself.

Apart from that, being a T-shaped Developer could position you in an interchangeable role in the team. The chances of firing you are low. Even if they do, you will quickly find another job because of the above-mentioned reasons.

How to become a T-shaped Developer?

To become a T-shaped Developer, you should grow your skills horizontally and vertically.

Growing vertically is not easy and it takes time. It’s not linear. Sometimes we proactively learn a new tool or technology. Sometimes, we don’t.

Being proactive will help a lot.

When allowed to work on a task from another project or field, get it. It’s a great way to expand your skills. For example, you usually work on front-end tasks, but there’s a task to create an endpoint in the backend.

To grow horizontally, we first have to be sure that it’s necessary and will have a high ROI. Because of that, a good direction is to look for tools and technologies you use daily. It makes sense to master them and devote additional time. For example, you use VS Code or VIM, then learn the shortcuts, configure it, etc. If you’re developing web apps with React and Tailwind CSS, then again, spend some additional time learning the tricks and quirks of the technologies. It will pay you a lot in the future.

Don’t worry if you forget something when expanding vertically. The deep knowledge could be returned quickly.

Conclusion

Nowadays, there’s a real need for T-shaped Developers. Embrace that.

Take the best of Generalists and Specialists. Become a T-shaped Developer.

A T-shaped Developer:

💡 “Jack of MANY Trades and Masters of SOME.”

And don’t stop there. Follow your curiosity. Expand your “T-shape”.

Ultimately, our goal is to solve problems, not to write only code. 🚀

🔔 You can follow me on LinkedIn to get the newest updates.