AmbySoft.com

Skill Longevity in Information Technology (IT)

In the early 1990s I spent a lot of time mentoring and training people in object technology. From the late 1990s onwards my focus shifted to teaching and coaching people in agile ways of thinking (WoT) and ways of working (WoT). 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. In December 2012, C++ and Java are considered mature, C# is a commodity skill, and Big Data skills were 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. In 2012 streamlined agile modeling was 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.

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 management or modeling, you still need to be prepared to keep current with new technologies. In many ways 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 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 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.

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

This book, Choose Your WoW! A Disciplined Agile Approach to Optimizing Your Way of Working (WoW) – Second Edition, is an indispensable guide for agile coaches and practitioners. It overviews key aspects of the Disciplined Agile® (DA™) tool kit. Hundreds of organizations around the world have already benefited from DA, which is the only comprehensive tool kit available for guidance on building high-performance agile teams and optimizing your WoW. As a hybrid of the leading agile, lean, and traditional approaches, DA provides hundreds of strategies to help you make better decisions within your agile teams, balancing self-organization with the realities and constraints of your unique enterprise context.