Adapting a New Technology: A General Guide to keep Your Systems up-to-date

 
Special Thanks to [Mohamed Othman](https://www.linkedin.com/in/mohammad-othman-55351b20b/) for his help in editing this blog. 

## Introduction

If you are generally working in the technology sector and specifically in the software industry, you will be under stress by the number of new things that are coming up every day.
New stuff can be a new integration technology, a new framework, a language version upgrade, or even a new library that helps you to do specific tasks in your code. In this article we will refer to those as: "new Tech".
And if you are like me, you will feel messed up if you don't know or know how to use the new trend!
So here, I will list some tips and tricks, along with best practices for keeping your projects up-to-date.
**Note**: the tips in this article for when and how to implement the new technology in your daily working projects are not concerned about keeping your knowledge up to date, knowing things and doing them are two different things, as this will be explained too in this article.
Furthermore, these points are related to the kind of projects that involve multiple team members unlike solo of projects

## Implementing New Tech

When implementing a new tech into your project or code you have to consider the following:

### 1. The Learning Curve

You need time to learn and understand how to use or implement the new tech. For sure, this time is greater than the 20 minutes of a YouTube introduction video and larger than a "Get started" page on the new tech documentation website.
So, DO NOT assume you will hit your peak productivity from day one; it's not recommended to use new Tech in "tight time" types of projects.
However, if the project is a "from scratch project" or a total revamp, the project will be a great sandbox to play with new Techs. But, keep in mind you need to make a proof of concept or POC before actually including the new tech, as mentioned in point No. 6.


### 2. Stability over Change


Changing something that is already working, familiar, and known for you and the team, means you are introducing new types of issues you didn't have before. This can cause an unstable system or solution.
However, this doesn't mean you shouldn't touch what is working.  You should have criteria on selecting what to change based on Stability and Compatibility not based on what the trends are.
Also, you must have a clear process for moving from the legacy system to the new one, and a rollback plan if the change is huge or badly affecting several components in your system.


### 3. Environment Ability to Accept this New Tech

You need to check if your current IT landscape is capable of accepting and integrating with the new tech, from operating systems, through network and security, ending with the way of deployment and other systems integration.

### 4. Unknown Challenges

Unlike the promoted tutorial videos, which explain the straightforward and happy scenarios of the new tech, you will implement it for very specific business scenarios, which increases the time of learning and researching. This time could be reduced if the new Tech covers the next point; No. 5.

### 5. The Community Base

The larger the community base the faster you can find answers to your questions and solutions to the issues you face. Before engaging with any new Tech, take a look into its community contributions e.g. in its website, GitHub, and StackOverflow.

### 6. Finally, Always Build a POC

Proof of Concept (POC) is an implementation of the new Tech but on a small scale.  On it, you prove the validity of the new tech to solve your business problem within your organization's environment and IT landscape.
A POC also provides a hint on the time estimate for future implementation.
Note that, POCs are not the final implementation of the solution; they might not turn out to be the change or the implementation itself. As they shouldn't, they are just exercises to discover the new Tech capabilities.

Therefore it's always great to wrap up your POC with some documentation on how the implementation is carried out and what type of issues you will face to be part of a knowledge base for you and your team.


## Conclusion

In conclusion, yes we have to keep our solutions and systems up-to-date, but we should only update when it is safe to adapt the new tech within the organization’s land landscape.

             

Comments

Popular posts from this blog

How to Automatically deploy Configuration Files with Azure DevOps CD pipelines

Adding Multiple DB Contexts in your DotNet Project