Now a days, every now and then we hear the buzz word DevOps and we are bombarded with the tools to just implement that. One may thing that do I really need DevOps in my Development Workflow and where I stand as compare to current market DevOps trends. We will be answering these questions and will be exploring why it is important to have a good DevOps Culture in place in your organization.
In this series, we discuss a brief overview of DevOps, common industries that are applying DevOps in their Development Workflow as well as we will be discussing the latest trends and how you can get best out of DevOps and scale in your organization.
Let’s start with Simple Question:
What is DevOps?
Simple put, DevOps is bringing people, processes and tools to deliver value to stack holders.
People represent different teams which are involved in your software life cycle, like Development, Operations, security and network to name a few. Process are set of rules or practices team follow to deliver better results and stack holder include the teams as well as the owner and customer of your product. With DevOps intro out of the way, let’s see what is going on in the industry.
In 2018 State of DevOps report was published, which is considered to be most widely reference source and it was compiled over 7 years, by surveying more than 30,000 technical professional around the world.
This report identifies the evolutionary journey of the DevOps. Many of us are already on DevOps train and many still in deciding phase, well early adopters see early success and then carefully developed DevOps practices and sharing, radiates through the organization and yet many of us despite early adoption don’t see the progress or failed to scale the practices to whole organization and in result still feel that we are at early stages of adopting DevOps Culture. To cover the whole journey of DevOps, Report presents five stages of DevOps evolution.

We will discuss each stage and will come back to these stages later on in this series. Let’s start with Stage 1. In the Stage 1 the first practice is, Application development team use version control. We all are pretty familiar with version control, some with git, which is distributed version control and some with centralized version control like SVN. It is important to know the continuous trend of version control systems to see the adoption and to know where we are standing, as we can see below version control system trends along with DevOps.

What is Version Control?
Simply put Version Control or source control is to manage changes to code along with history of code changes. Building strong DevOps culture starts with strong version control system and all other stages directly depend on version control. A typical version control system has following benefits:
-
Process Enforcement
A version control system enforces a process or workflow, every team member follows it, instead of going through their own version process.
-
Track Changes
Changes are tracked and version control can be used to restore changes at any time and point.
-
Prevent Conflicts
A version control system help team collaborate better by resolving the conflicting changes.
-
Automation
Version control help us automate tasks like testing, build and deployment, which in return save time and generate predicted results.
Every organization develop best practices along the way to steam line the process and get better results, some of the common best practices are listed below:
- Link changes to Work Item
- Exclude individual preference files or individual tool setting files
- Commit often and update often to avoid conflicting changes early
- Always include description along with code commits
Without going too deep into the details of the distributed and centralized version control, we will touch some best practices when to use which. Centralized version control like TFVC, CVS and perforce are best suited for large code bases where you want granular control, and distributed version control like git, Mercurial and bazaar are best suited as name suggest when you have distributed teams and want offline access to the code as the code is cloned along with history to local drive. If we look at the trend graph we can see that git is gaining traction here, it does not mean that this is the way forward or it is best suited for every situation but as git always have been aligned with open source and our current market paradigm shift toward open source and distributed systems ( Did you hear about Blockchain yet, it is also aligned on these concepts, Distributed and Open Source) so, it is usually recommended to start a new project with git now a days. See the link for more information
Stay Tuned! For Next Part.