The concept of T-shaped individuals goes back 25 years apparently, but I became aware of the term probably 7 or 8 years ago. A T-shaped individual has depth in a given area, but also has the ability and passion to be involved in a wide variety of other areas. I appreciated the contrast shared on the Code Renaissance blog between a T-Shaped Individual and an I-Shaped individual
T-Shaped people are like the traditional I-Shaped person, a specialist, but they also branch out wider, where an I-Shaped person will primarily go deeper and deeper
These days a rough synonym for T-shaped individuals is that of Full Stack Developer
Benefits of T-Shaped
I appreciate teams built with T-shaped individuals because they tend to adapt to the challenges ahead of them easier. Because of the breadth of the team members if there is a bottleneck in one area of the team’s workflow (be that software development or something entirely different) the team can adjust to address the constraint and move forward.
Additionally T-shaped individuals tend to be passionate about many things which creates a very positive team dynamic. The variety of discussions and the insights from those discussions are better and create a learning environment (and generally an open minded one as well). Perhaps this also explains my preference/advice to those considering going back for a second degree to look at a different field rather than doing a graduate degree in the field their previous degree was in.
I-shaped specialists if not careful approach every problem with the same solution because it is the solution they are passionate about. The well-used everything is a nail when all I have is a hammer analogy could be applied here. That isn’t to say specialists don’t have a place, but the number of places they can be utilized is limited. If you have more than enough work in that space than this isn’t a problem unless they become the constraint (how often in a software engineers career has the DBA been the constraint….)
Not only does the breadth of a T-shaped/full stack engineer help them do work in different areas it also increases their troubleshooting/problem solving capabilities. They are better able to connect the dots and trace the challenges across different domains. The relationships between different fields/concepts are more readily seen as well which can be a catalyst for greater insight.
For those technical
Arguments against
One argument against is that as applications and systems grow you need more depth and that those that spread themselves out as much as down will not be able to address the technical challenges that emerge. I think there is a truth to that. I am not yet settled but I believe given the choice to be either deep or broad and not very deep that deep is the better choice because the solutions you propose will generally be based on facts about the technologies that you truly understand.
Another argument against is that in the new application world that we live in where machine learning, mobile platforms, and persistence platforms beyond relational have emerged that no one can have advanced knowledge in all.
To this point I would simply say that the T-shaped concept and by association the full stack engineer does not purport that a single individual is advanced in all the areas above. A team of T-shaped individuals would ideally have the appropriate balance of depth in the required areas.
Expansion
The concept of T-shaped individuals applies to not only software architectures and layers, but also languages and frameworks, business domains, etc.… Additionally when using the term T-shaped the perception is perhaps given that there is one area of depth.
Much more frequent (and more desirable) in my mind is more of a V-shape. As you expand beyond your areas of greater depth you inherently are a little deeper in adjacent areas because of their relationship with your areas of specialty.
Regardless of the term used
- T-shaped
- Full Stack
- Generalizing Specialists
- V-shaped
the more you want to lead the teams or lead the engineering of software applications the more true this concept becomes. An I-shaped individual generally doesn’t have the relevant skills to function on a more broad scale (thus the visualization of an I). Unfortunately often T or V shaped individuals asked to lead become — shaped individuals because they fail to continue to invest in their depth as their leadership requires them to broaden out. All too common in our industry is the software engineering manager who is so out of touch that they no longer could function in a technical capacity (or have any technical street cred left). That is why I so enjoyed the recent interview that Shawn Wildermuth did on his Hello World podcast with Scott Guthrie who heads up Microsoft Azure. He talks about his journey from a deep technical role and how he balances it. He includes a fun story about a recent incident where he inadvertently showed his continued technical street cred to a team of engineers who were troubleshooting a production Azure incident.
Here is to the continued development of V-shaped individuals and to the encouragement of leaders in all disciplines and domains to continue to invest in their depth as well as their breadth. We are all the better for it.
Resources