When developers start out at an IT company, it's usually as juniors. Their main goal is to then become a specialist in their field. They are young, motivated, and full of zest to become a five-star developer in their respective fields.
Eventually, they figure out that being an expert in one technology or platform is not enough in a world where working in cross-platform teams and the agile environment is a must, and getting involved in discussions and decision-making is crucial to becoming a valuable team member.
Who is a T-shaped person?
A T-shaped person, and consequentially, developer, is someone who has expert knowledge and experience in a particular area. That knowledge represents the vertical bar of T.
In addition, that person has general knowledge of other fields and is able to collaborate with other developers and team members to achieve a common goal. That's the horizontal bar of the letter T.
In other words, a T-shaped developer is a generalizing specialist – rocks their own field and has general knowledge of other fields too.
So it's a jack of all trades?
Not really. The idea isn't to do everything kind-of well but to start looking into how everything fits together. No need to start learning all technologies at once to be able to interact with others.
It's a mindset shift where you no longer think that the only important and worthy challenges are those happening on the developer's primary platform.
Why every developer should become a T-shaped developer
The short answer: To see things from another’s perspective and improve your communication.
Becoming a better communicator helps to more successfully convey the pros and cons of some implementation solutions to others. The T-shaped mentality can be helpful in everyday situations, for example when refining new features or in interaction with other team members.
Secondly, becoming T-shaped will help you think critically, master problem-solving, and improve your decision-making process.
Getting involved in discussions with team members outside of your area of expertise allows developers to acquire better knowledge of the project they are working on and expand horizons, learning about architecture, design, features, and differences between platforms.
Big-picture thinking makes developers better at estimating projects and makes them more aware of potential dependencies and obstacles. In everyday tasks, T-shaped developers are more efficient, fulfilling tasks in less time, with less risk, and with fewer bottlenecks.
Of course, it takes some time to master but practice makes perfect.
One of the greatest benefits of adopting a T-shaped mentality is learning how to ask valuable questions that help illuminate potential pitfalls.
How to become a T-shaped developer
Real-life projects are the best and most conducive environment for developers to grow and nurture their T-shaped mentality in. Here are some ways to get there:
Start paying attention to issues that others deal with and what obstacles do they need to overcome so the team can deliver a valuable product.
Get involved in discussions, point out the possible bottlenecks, and always try to propose a better solution.
When someone from another platform speaks about the potential implementation of a feature you probably won’t work on, don't ignore it just because it's not directly connected to you. Speaking up may prompt someone else to reach a solution and you will learn something new about another platform.
If you're afraid that something might be implemented wrongly, raise your voice and explain the disadvantages of the current flow in a kind and professional manner, suggesting how you think it could be done better.
While pair-programming with your colleague or discussing the design with designers, really listen to them.
Be interested in what people are doing, ask them how the same thing from your platform is implemented on theirs or why a particular design has a better user experience than the one it is easier for you to implement.
What becoming T-shaped did for an iOS developer
In the begging, while working as an iOS developer, my main focus as a newbie was to implement required features quickly and successfully.
Being a team member on a large project with different technologies (Android, Backend, iOS, Frontend) and dedicated designers was a challenging environment where I needed to constantly stay up-to-date and collaborate with all platforms in order to deliver an excellent product for my client and customers.
I quickly realized that keeping my nose out of discussions and refinements is not the right path to go and that I need to take ownership of the things I can improve.
Asking questions, discussing issues, and involving myself in design and business discussions changed my perspective and development practices. With good collaboration, you really can decrease development time significantly and make an impact on the overall project.
The opportunity to attend and graduate from Infinum Academy Design Course further boosted my skill set, and revealed for me a previously unknown world of the design process that I was totally unaware of as a developer.
Also, I had an opportunity to work as a Product Owner and gain a ton of knowledge about what clients really want, how difficult and time-consuming defining things can get. I also learned how to facilitate feature development.
Self-development as important as software development
Developers should start thinking outside of their development boxes and get curious about what's happening around them.
Teamwork helps get to a solution quicker and identify potential issues early on. Asking questions, listening, and working with people from all domains gives developers a different perspective on problem-solving.
Finally, with a T-shaped mentality, developers can better value the work of others, thus becoming invaluable to their own team.
You'll be hypnotized by designer Kata Juras' shapes and colors in 3, 2, 1...