Skip to content

Being adaptable in the software world

Posted in Experiences

Adaptable [ uh-dap-tuh-buh l ], adjective:

1) Capable of being adapted

2) able to adjust oneself readily to different conditions: an adaptable person.

Not being adaptable in history never worked

Ever since the dawn of time, being adaptable has been a key element to every living species. If you can’t evolve in order to adapt to your environment you die off. Not necessarily right away but eventually you get barred off existence. Let’s take the example of the Smilodon or as you may know it the saber-toothed lion. Despite being a beautiful and powerful beast weighing up to a hundred kilos for smaller specimen it went extinct some ten thousand years ago. There are a few different theories on how it came to be but all merge in one spot: failure to adapt. Yes, it could be the decline and extinction of the large herbivores they prayed upon. It could be about them not being adaptable in the competition with humans entering the hunting game or more generalized felids better at chasing smaller prey.

Moving into something closer to home, I remember growing up at a time where Kodak was a huge deal. You could not spend a day without seeing at least a disposable camera from them. I read that Kodak’s core values built around innovation and progress but that then the company’s head got complacent about competition and new technologies. This eventually built up towards bankruptcy in 2012. Kodak was not adaptable, well, not enough at least. As we say in french “Ils sont morts dans le film” (they died in the movie).

What about software developers?

This can happen to software folks as well. Sometimes we get complacent and refuse to learn new things that can be useful. Heck, we might even use dumb excuses such as our language of choice being superior in any given situation. You really don’t need to go far to find JavaScript is garbage or awesome rants on Twitter. While some claims may be justified, others only exist from a refusal to learn. That refusal to learn can come from several places. You may want to enjoy life more by going out, traveling, capturing all 151 Pokemon and it’s perfectly fine. Some may just not be interested enough and want to stick to how they’ve always done and that I find problematic.

Learning to do things a certain way whether or not it works at a point in time is fine. That is how any learning begins. However, arbitrarily deciding this is the only way you should work from then on feels wrong. Picking a certain technology for a project should be based on a combination of knowledge and experience. Ten years of experience doing the same thing in the very same way is neither rewarding nor beneficial to me. However, ten years of experience doing the same thing in different ways feels like a treasure. Why? I hear the imaginary voice in my head say. Well, let’s take the example of sending a message to someone.

Sending a message

A way of doing so is walking to someone and delivering the message directly. It’s cool but gets tiresome if you have tens of kilometers and highly inefficient. Deciding arbitrarily that it is the best way stops you from discovering that other options. Like that walking postmen business famed by their 42 km mail delivery by foot from Marathon to Athens a few centuries back. In 2019 you can even send that message across the world within the next second without anyone having to walk.

Let’s say you are an avid WhatsApp user and convinced of the superiority of that platform over all else. You want to send a long message to a bunch of people and do so. You might be able to write your 10000-word long message in one go but it seems unlikely. Chances people will call you in the middle of your typing or that iOS 13 bug will kill the app state and you need to restart from scratch. Maybe you write and submit by chunks but people in the group interrupt you every few texts so your message gets noisy. The core of your message might end up not coming across at all.

However, using e-mail could work better for you in that context. You would need to know that e-mail is a thing to know it would be a better option here. But you won’t if the only way you know and want to send messages is through WhatsApp. Being adaptable requires to know or at least be willing to discover other options so you can pick the right one for the right context.

Is the guy writing these words adaptable?

If you look at my LinkedIn profile, you will notice something interesting. I have never done the same thing twice. Not only have I been switching industries but also technology every single time. During my first job in London, my first role consisted of developing and maintaining an iOS application. First with Objective-C then bringing in a change to develop new components and features. Had I not know about Swift and its interoperability with Objective-C this would have not happened.

Later on, I moved to a mostly backend role using C# and now I am in a role where I can literally do anything. From developing Typescript on both backend and frontend to data migration solutions building on top of a legacy mixture of AWK and SQL scripts (don’t ask). More recently I have even been learning to the point of productivity more DevOps tools like Kubernetes and Helm. Learning new things to the point they are useful has been a constant in my path and I believe one of the reasons I still am on the map.

Being adaptable is not for everyone, you need to know what you want first. If you don’t know where you’re headed then there is no point adapting. All you will be doing is wasting energy. Once you know where you’re headed, no what your assets are and whether they can help you move towards your goal. If your assets are not enough to move to that goal, try and figure what missing assets you can obtain in order to reach that goal. This is a recursive thought process as obtaining missing assets for the big picture goal can become a goal on itself for which you need to figure other assets you need first.

The Lego tower example

Let’s say you want to become the biggest lego tower in your town. You already know you will need some legos. Next, you will need to know whether it is a thing in and if so how tall it is. From there you can figure how many legos you will need and how you can get these legos. The easiest but more costly way would be to buy them all. To buy them you need a certain amount of money. In that scenario, you know that your neighbor Tom has built a 28 meters tall tower with 56000 legos. So you want to build a 30-meter tall tower and will try to gather 60000 legos. This would cost about $12600 and currently, your job allows you only to save $100 a month.

All in all, it would take you ten years and a half to save enough money for your goal. From there you can become adaptable if you know other options exist. You can know about these if you look for them. Crowdfunding is an option, you could gather most of the money that way. You soon realize nobody cares and you obtain only $500 in six months. Then you decide to gamble away and after gaining almost your goal amount you lose it all after one too many drinks. Eventually, you rob a bank, you get the money but end up in jail so there is no way you ever reach your goal.

Lucky for you, people tried all these options before and you can read about them. From these documented experiences you can pick an option that will allow you to reach your goal with less risk and in a timely manner if possible at all.

Wrapping up this already long post

The most important component in being adaptable is knowledge. Knowledge of your goal, knowledge of your tools and knowledge of paths to more knowledge. Next is a will to seek these bits of knowledge and how these can help you in a given context where a new problem arises. A way of reducing learning pains is to gradually expand your knowledge of a topic a little more overtime. Eventually, you will end up with a fair grasp of domains you would not even think about otherwise.

Knowledge truly is power, power all can obtain if they work for it. Experimentation helps accelerate knowledge growth especially in software development where you are a few clicks away from playing with a new or known piece of tech. Just go for it, it’s a beautiful journey. A journey that will make you more resilient, more adaptable. Thanks for reading.

Cover picture by Guillaume Meurice from Pexels

Be First to Comment

    Leave a Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    %d bloggers like this: