The Longevity of Information Technology (IT) Skills

Scott W. Ambler + Associates
     Home  |  Articles  |  Books  |  IT Surveys  |  Podcasts  |  Contact Us  |  Announcements  |  Site Map
Recently reviewed In the early 1990s I spent a lot of time mentoring and training people in object technology. In the late 1990s and early 2000s my focus shifted to mentoring people in agile software development techniques and the Unified Process.   Now my focus is on mentoring and coaching people in disciplined agile delivery and in strategies to scale agile.   One of the realizations that I’ve come to, depicted in Figure 1, is that any given skill has an expected period of time for which it is in demand.  My experience is that platform-specific skills, such as C# or Java programming skills, will be in high demand over a period of five-to-ten years and then will dwindle in popularity as new platforms being to dominate.  Of course some platforms, such as Ruby, are more volatile and as a result the skills required evolve dramatically every few years. This isn't to say that you still won't be gainfully employed as a Java programmer for more than 10 years, it's just that you likely won't be paid as much, or be in as much demand, as people who have skills developing on a newer platform. When I first wrote about this concept in 1997 in More Process Patterns C++ and Java were leading languages: C++ was declining in popularity and Java was clearly gaining.  In 2005, C++ was an important but mature niche platform and Java programmers effectively had commodity skills.  C# was in ascendancy and programmers with C# experience were clearly sought after.  Now, in December 2012, C++ and Java are considered mature, C# is a commodity skill, and Big Data skills are in the ascendancy.  


Figure 1. The longevity of skills.

Similarly, paradigm specific skills such as object-oriented modeling, agile testing, object programming (in general), and traditional project management have a lifespan of between 15-25 years.  Paradigms such as structured development, object-oriented development, or agile software development, tend to run their course over this time frame.  Structured analysis and design was overtaken by object-oriented modeling (in particular UML-based modeling) in the late 1990s and early 2000s and traditional project management is clearly being overtaken by agile project management techniques.  In the 1990s structured modelers had a pretty good run but in 2005 were finding it difficult to find employment without at least object modeling skills, if not agile modeling skills. Now in 2012 light weight agile modeling is the norm and UML rarely talked about. Similarly, in 2005 traditional project managers, particularly those with PMI certification, were in great demand.  Now the PMP is considered base knowledge and PMP-ACP is in great demand (given time this will also dwindle in popularity). 

Finally, communication and collaboration skills, often referred to as "people skills", will easily last you your entire career.  This includes basic writing, presentation, and meeting facilitation skills.  More importantly, it includes listening skills too.  A very healthy aspect of agile software development is that they make the need for such skills very clear to practitioners.

I'd like to make several observations pertaining to Figure 1:

  1. The more technical a skill is the shorter the period of its usefulness to you.  This should not be a surprise – the rapid rate of change in the technology field necessitates an equally rapid change in the skills of technologists. 

  2. If you choose to specialize in a specific programming language, and many people do, then you need to be prepared to overhaul your skillset every ten years or so.  Yes, you might be able to stay with a single language for fifteen or twenty years, look at COBOL and C programmers, but then again look at the sparse employment opportunities for APL, BASIC, and FORTRAN programmers.  In short, you need to be good at guessing what the next big thing is and then make the jump to it at the right time.  This is easier said than done: in late 1995 I realized that I needed to transition out of Smalltalk and into another language, and at the time my leading choices were Java and Eiffel, both of which had similar levels of buzz within the industry.  Luckily I picked Java.

  3. If you choose to stick to skills with greater longevity, for example project management or modeling, you still need to be prepared to keep current with new technologies.  In many ways project managers have an even greater need than programmers for training – programmers specializing in a single language need to gain detailed skills in a reasonably narrow topic, whereas project managers need to gain a shallow knowledge of a broad range of skills.

  4. The skills with greater longevity still evolve over time, requiring you to change too.  Witness the clear moves away from structured modeling, traditional project management, and traditional data techniques over the years.  The challenge is that the change in the marketplace is so gradual that it can be difficult to detect until it's too late.  Furthermore, the change can be harder because it typically involves a paradigm and it's likely been a long time since you've made such a change.  Nasim Nicolas Taleb, of Black Swan fame, writes very cogently about this issue in his new book Antifragile.

  5. Communication and collaboration skills enable you to transition to new paradigms, and paradigm-specific skills enable you to transition to new platforms.  Making the jump from Java to C# is fairly easy if you understand the fundamentals of object-oriented programming and the UML.  Making the jump from the traditional software development paradigm to the agile software development paradigm is similarly easier if you have the higher-level communication skills which are needed in both environments.  The point is that your employer will still want you to add value to a project team while you're going through the learning curve associated with the transition, and the way you do that is by applying the higher-levels skills which you've gained over the years.

Beautiful Teams

I believe that all IT professionals should strive to become a generalizing specialist, someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.  Hopefully this article provides some insight into how to go about this.  So should Strategies for Effective Training and Education in I.T.

Suggested Reading

Disciplined Agile Delivery This book, Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise describes the Disciplined Agile Delivery (DAD) process decision framework. The DAD framework is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value delivery lifecycle, is goal-driven, is enterprise aware, and provides the foundation for scaling agile. This book is particularly important for anyone who wants to understand how agile works from end-to-end within an enterprise setting. Data professionals will find it interesting because it shows how agile modeling and agile database techniques fit into the overall solution delivery process. Enterprise professionals will find it interesting beause it explicitly promotes the idea that disciplined agile teams should be enterprise aware and therefore work closely with enterprise teams. Existing agile developers will find it interesting because it shows how to extend Scrum-based and Kanban-based strategies to provide a coherent, end-to-end streamlined delivery process.

Let Us Help

We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer.  A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates

Disciplined Agile Delivery: The Foundation for Scaling Agile Agile Modeling: Practices for Scaling Agile Agile Data: Practices for Scaling Agile EnterpriseUP: Agility at Scale AgileUP: Towards Disciplined Agile DeliveryAmbysoft Inc. Software Development Practices Advisor Scott Ambler + Associates Follow @scottwambler on Twitter!

Copyright 2005-2014 Scott W. Ambler

This site owned by Ambysoft Inc.