When I was a kid, growing up in a country town in rural Australia, I was fascinated with aircraft. The fascination was borne partly from my astonishment that this heavy thing was able to get off the ground and stay in the air.
It was also just the technology of the thing. However could humans, with a whole pile of different skills, ever imagine, create, test and then actually MAKE these things? Every single aircraft is a feat of human engineering and creativity.
For just about all of my life, the pinnacle of this technology was the Boeing 747. First test-flown in 1969 and put into service in January 1970, the 747 was the "Queen of the Skies." The people who got to pilot this behemoth were the best of the best, the top of their game.
As it does though, technology moves on. Advances in just about every aspect of the technology - from what the planes are made out of (light carbon fibre versus heavy metal), to engines, aircraft systems and more - mean that newer, higher-performing, more environmentally friendly, and more commercially viable aircraft have largely replaced the 747 as a passenger jet. These days the 747 is mostly relegated to the (very important) role of being an air-freighter. The plane which was once the mainstay of international air travel, is now the exception.
So what then of the professionals who flew and crewed these planes, the engineers who maintained them and all the others whose professional lives were based on this one technology? For many, for all of their careers, the 747 was THE thing - you could build a career on it forever, it seemed...... until you couldn't.
For anyone in this situation, the choices become pretty binary - you either take the foundation skills you learnt on the then peak technology, make the time and invest the effort, and use this to learn the next big thing.
Or you stop being a pilot.
The same applies for any career based on technology, and it is certainly no different in the software industry. We are living through (another) tectonic shift in the technology we use to create applications. Contemporary concepts such as services-based architecture and containers, machine learning, AI, etc. change the way we build complex applications. The functional code itself continues to evolve and innovators continue to create new practices and standards to optimise the code we write.
For technologists, this of course brings the challenge of remaining relevant in our field. Sure, there are niche opportunities to be the ‘last person standing’ in a particular technology - COBOL programmers’ don’t have to worry too much about competition these days - but it is a risky approach. The gigs get fewer and fewer, and the community slowly fades away. Besides, who wants to keep doing the same thing, over and over, when the new technologies allow us to do some truly amazing, awesome stuff?
We've been talking about this a lot in my role. New technologies are changing our industry and we are making the move to leverage these where we can, and this means that our team need to make the journey as well. We've committed to allowing people 15% learning time - not just formal training and education, but equally important things like mentoring with some of our more experienced people (good for both the mentor and the person being mentored), problem-solving sessions, hackathons, skills development challenges, customer visits for our technologists and more. It is about creating a culture of continuous learning - making it part of the way we work, the community we belong to.
Ultimately, we all have a personal obligation and have to make the time and effort to ensure that we maintain the right skills to add value in our industry. We can never stop learning.
I'm certainly committed to doing this, and frankly it is interesting and fun to learn new things. And besides, I still want to be a pilot.