Thursday, December 26, 2019

Are you a Full-Stack or T-shaped developer?

When I first started programming as a profession in 2000, the idea of a cross functional developer was still in an infancy.  However, I suppose, the idea originated with the mainframe.  There, you would find a COBOL developer who knows SQL.  Mainframe developers know those two programming languages due to the coupled nature of SQL and COBOL.  It didn't make much sense to have a DBA or SQL-only expert come in an 'install' SQL to your COBOL program.  In today's world those two concepts compose two parts of the three-tier architecture application; business logic and persistent storage.

No one talked about full-stack or T-shaped developer just 17 years ago.  Today, it's a big deal.

Term review:
Full-Stack Developer:  A developer who can easily cross tiers of an application by creating usable solutions.  The three tiers commonly associated are presentational, business logic and persistence.  This developer has skills in: JavaScript, HTML, CSS, an OO-language like Java or C#, and SQL or noSQL database concepts.  It is also becoming increasing clear that some sites may skip over the OO-language in preference of JavaScript for their business logic tier.  What's also become useful in a DevOps world as well are skills related to configuring the platform where all of the above is going to run.

T-shaped Developer:  A developer who has a breadth of knowledge (the top line of the T) and a depth of one or a few skills within that knowledge (the down line of the T).  To a degree the Full Stack and the T-shaped developer go hand in hand.  However, a T shaped developer may also include skills related to project management, business analysis and people management.

I look for both types of developer depending on the role being hired for.  If I'm looking for a pure developer; a coder with headphones on most of the day, churning out commit after commit, and interfacing with other developers, then I'm looking for the Full-Stack variety.  If I'm looking for a lead or senior developer, then I'm looking for the T-shaped developer.

What do you need to get there?
First, I think a Full-Stack developer becomes a T-shaped developer over time.  This is a natural progression as you become more experienced and have the social skills to push properly for your vision.  Therefore, T-Shaped is really a very experienced Full-Stack developer!

So how do you become a Full-Stack developer?  Lots of training.  I think you have to spend time on your own to find the bits, pieces and parts that make up the above description.  The world is about websites and mobile applications; you can make your own on your own time.  There are plenty of tutorials to cover all of the technologies involved in a Full-Stack developer.  You just have to invest the time.  Finally, I think you have to put yourself in a professional position to do all of the above as well.  Interviewers like experience that involves for a business and what you do on your own.  You have to have both.  That will set you apart from others.

Conclusions:
A full stack developer is a T shaped developer!  Being human we are unlikely to be able to master many disciplines at a high level of performance in each.  Full-Stack Development is a starting point.  You can get going on the three tiers and see where that takes you as you go deeper and deeper into software development life cycles.  Good luck!

No comments:

Post a Comment