Do I need to learn DevOps?

You probably guessed what my answer to this question would be. It's a YES. The subsequent question that pops up in our minds is what I should learn or what skills to acquire.

The good news is that you already know the concepts of DevOps if you have coded something and have gone through the "processes" of deploying your compiled, tested, accepted code into a production environment. 

These "processes" typically involve you filling either some forms or entering information in an in-house or a standard tool. These "filled forms" are then processed by an "appropriate approver" for your line of business and then the "deployment/production operations team" will do the migration to the production region in an "allowed window of time".



If you automate and/or expedite these "processes" with help of standard tools to result in minimal human intervention yet achieve the effectiveness of the manual reviews and checks, that is called DevOps in a nutshell. Now I may have oversimplified this. However, I am convinced that my DevOps specialist friends will probably agree with my simplification in the context of explaining it to the developer community. 

The process of this automation or what we refer to as "implementing DevOps" is not something that happens over time. As you may now realize, there are multiple "teams" involved in the "processes" I explained earlier. Each of these teams will continue to have their presence post DevOps implementation too. However, they will now make use of the standard toolset. DevOps also brings in a "unified experience" for Operations and Development teams cutting across different technologies. The DevOps experience of a Java team, Mainframe team, .NET team and a cloud-native team would mostly be the same. This results in promoting the cross-technology movement of team members and can foster the culture of cross-training inside the organization. 

The benefits of implementing DevOps are well documented by multiple sources. I am not going to list them down. However, I would like you to think through the "processes" involved in migrating a "unit tested" code in the DEV region through multiple "TEST" regions and all the way to the "PROD" region. Anything and everything you do to automate these steps technically would fall under DevOps according to me. The DevOps tools are means to achieve automating these steps. This is what you should learn first before embarking a journey of learning the DevOps tools. 

I have seen several mainframe implementations over 2 decades where the different lifecycles involved in development and code migration were automated when the term DevOps was not even familiar. To me those shops are DevOps enabled already. Whether they follow Agile methodology is a different question and it does not take away the excellence achieved by those implementations. My idea of DevOps is not the "standard tools" involved but the implementation of the idea of automation for the given technology platform, SDLC used and best practices already in place.

Note: The idea of automation should be at all phases of SDLC, code migration across environments and deployment. There are several tools that specialize in each phase that may result in setting up complex workflows and sequences required. Evaluating these tools and their fitment to the organization is a key skill that DevOps architects provide. 

Comments

Popular posts from this blog

What skills to develop to become an architect?

What resources are available for learning?

Do I really have career growth if I continue in mainframe projects?