How Not to Get Eaten by Technology
I recently read somewhere that “software is eating the world,” and I have to say: This is the most expressive statement I have ever read describing the current craziness and hastiness in the software industry.
Join the DZone community and get the full member experience.Join For Free
IoT, self-driving cars, AI/ML, cryptocurrencies, automation -- It's a wonder any of us keep up!
And under the stress of this nasty wave of neverending buzzwords, a pressing question keeps coming to my mind: Is there anything we veteran tech workers can do about it?
Should I just jump on any technology boat I see and go with the flow? Should I be a little bit critical and set some criteria before deciding on investing time on it? Or should I just drop the whole technical track and seek a managerial one with less learning hassle?
You may also like: Can You Be Too Old for Software Development?
In this series of articles, I will try to answer some of these tough questions. However, I need everyone to contribute to and discuss this critical topic. But first, I will start us off by sharing my own experience.
Am I about to be obsolete?
Some time ago, we got a project from a client who needed to modernize their IT to newer technology that is more supported in the market and that the engineers are willing to learn. Their critical system was based on a mainframe -- yes, the big ugly computer that you probably have only seen in your computer architecture textbooks during undergrad studies!
I met the system owner, who seemed to be quite experienced with the Mainframe ins and outs, and of course, way older than me. I collected the requirements, ended the meeting, and thanked him for his help.
However, that started something rolling in my head …
When I returned home, I started to think: Ummm… What will the technology world look like after 30 or 40 years? Is it possible that I will just be stuck to a particular technology and continue using it until I get to my pension? Is it possible that the current technologies I work with, which have ample market demand today, will merely be a statue in some technology museum? Should I just keep reading and reading forever?
It would be impossible for me to compete with all the “cool kids,” knowing the latest and greatest in the field, not to mention their endless time and energy. Hmmm... it does not look good!
I started recalling in 2002 when I learned Visual Basic 6.0 after one year and a half; Microsoft released Visual Basic .NET, and I knew that I must learn it over again!
I remembered my graduation project when we planned to use OpenCV for specific image processing tasks (because I had some experience on it at that time); I checked the documentation and, BOOM new versions were released! Oh, I have to update my knowledge! You cannot rely on 2+ years knowledge my friend!
To make things even worse, once before, I implemented some reports using PowerBI, and just a couple of months later I got some requests to do some changes on them. "Simple," I thought. "It will take few minutes since I already know it."
Wrong. I went to start menu, launched PowerBI, and ooooops! It was requesting an update, which I did, and then of course had to relearn all about the required changes. What on earth?! PowerBI has a monthly release cycle; I had to set up a monthly reminder to read their blog.
The conclusion I would like to convey reach here is this:
Technology is not changing at a constant velocity; it is changing at an obscenely accelerated velocity! These tiny technology cycles can put you on a pension very quickly if you do not keep up with them!
Why are they doing this to us?
Further, the recent development in the telecommunication/electronics field made both mobiles and internet cheaper, which created ample supply of internet-enabled terminals. Therefore, many companies implemented distributed/cloud computing philosophies, possibly backed by a functional programming language to meet the enormous demand, which has also added an extra burden on developers to build distributed computing and security competences.
Even more, economic cycles and market competition are pushing firms to automate everything to save costs, reduce labor, and respond to client demands quickly, which gave rise to DevOps.
Inevitably, big companies like Microsoft started shortening the validity of their certifications from two years to a single year. The extended-release cycles of 1 year or 6 months are no-longer affordable.
Simply put, it is market pressure and business agility that are pushing the software industry to behave so.
But enough hard news :). Let us analyze and think what this means in practice and what impact does it have on businesses and employment opportunities.
- Effective and smart learning techniques and strategies are required. By effective learning techniques, I mean methods that will help you to identify hot markets, hot technologies, trends, learning how to focus on what matters, learning things quickly, and so on. (The learning topics is a big topic and deserves a fully dense article on its own.)
- Specialization became more valuable as the platforms are becoming more sophisticated, so being a “Jack of all trades” is no longer acceptable for many companies since mastering a particular track is a non-trivial time and effort investment. (Well, this is subject to debate!)
- The software engineering field is becoming a well-paid field, in particular for renowned experts since it is not easy to become a well-versed engineer.
- Soft skills such as negotiation skills, requirements engineering, time planning, and public speaking are timeless valuable skills that will boost career opportunities.
- Domain knowledge is always valuable; it's worth it to spend time understanding the business rules, domain language, and concepts on a specific business area you are working in, such as health, HR, banking, etc. The domain knowledge deprecates slowly, which makes its ROI high; it will also help you to easily communicate with the business people and be “close to their hearts!”
- Facing imposter syndrome is normal (feeling that you are incompetent); however, be aware of Dunning Kruger effect (feeling that you are superior). I’ll just refer you to this cool article by Ardalis for more details.
- The managers need to be less aggressive on deadlines, unexpected deliveries, and issues. The technology is really becoming volatile and irregular, so the most senior developer on your team will doubt his knowledge.
- I know that many managers, who were technical for a long time, are quite confident that they can fully understand and follow technical conversations based on their previous understanding. A typical manager would say:
“I know that the new changes to these technologies are just new features and syntactical improvements; in the end, it is just classes, components, servers, integration, and protocols. I do not really need to know the nitty gritty details or learn something more; I will just build on what I know and focus on improving my managerial skills.”
Well, I would say, 'Yes and No.' Yes, at the fact that it is true you should not focus on details. But no on that you are planning to only reuse your previous knowledge.
Unfortunately, no, my friend, it is not enough because the software philosophy itself started to change. Things such as reactive programming, serverless functions, and GraphQL emerged and has an entirely different perspective from previous programming approaches. You need to have exposure to recent technology trends and directions to properly keep up.
- Do not be shortsighted; investment in recent and more modern technologies could be cumbersome in the beginning, but they will be very rewarding in forms of higher support, better UX, and productivity. More importantly, in talent retention, since top performers are always worried about their careers and prefer working with new tech stacks.
- More companies need to adopt, “Hire for attitude and train for skills.” Academic research has found that attitude is extremely difficult to change, while technical skills are easy to teach to the right person. Interviews should focus more to validate understanding of general concepts, quick learning ability, problem-solving skills, and critical thinking – traits that are considered timeless in nature.
Enough for today! In the upcoming articles, I will share some tips and techniques on how to learn and to keep yourself updated.
Published at DZone with permission of Mohammed Osman. See the original article here.
Opinions expressed by DZone contributors are their own.