DevOps: Collaborative Organizational Culture for a Digital Future
DevOps is one of the most discussed topic today in the IT Industry. It is expected to literally usher in a new era in terms of the speed and reliability of the development and deployment of solutions. Despite the plethora of opinions and strategies abound, few can agree on a cohesive definition of what DevOps really comprises of. This strange state of affairs is not really a result of lack of information, rather it articulates the dynamic nature of the concept itself. In practice, DevOps can literally mean different things for different organizations depending on their operational environment and area of practice. So our first job becomes to define DevOps in its broadest sense and try and pinpoint its impact in individual scenarios.
Understanding the binaries of Development and Operations in a traditional development life cycle
Development involves the codes that engineers work on to develop new software that the most businesses run on and their key responsibility is to get new features/software to the industry. Whereas operations indicate the system on which these codes run. The job of the operations team is to ensure that the codes that have been developed by the development engineers are up and running securely and efficiently.
The two departments look interconnected but have worked separately for years. They worked in silos with very little knowledge of the other’s working environment resulting in a myriad of confusion, back and forth and wastage of time and resources. There were issues like risky deployment, where a particular software written by developers looked functional yet had very little operational reliability. Deployment, then became a game of wait and watch. In many cases, once the software was pushed out by developers, it resulted in multiple complaints from administration, operations or client servicing teams. Sometimes, it would simply be a systems error while the software worked fine on developers’ systems which resulted in further confusion.
Belling the cat – Defining DevOps in an Organizational Perspective
Probably the best thing about DevOps is what it isn’t. It isn’t yet another set of tools or resources that you need to invest on. You literally cannot ‘buy’ DevOps. In a nutshell, it simply means a cultural shift enabled by a core set of technologies that are (in most cases) being used already. In some scenarios, it could translate to breaking the silos between different teams engaged in development, QA and IT operations and having a more streamlined approach where each member of the team has a nuanced understanding of all or at least, multiple functions involved. In others, implementing DevOps may involve automating the IT infrastructure to an extent where any further interactions from the developers’ side is rendered redundant. How DevOps is implemented in practice, then, is really unique to each organization depending on their individual needs and current operational strategies.
DevOps is believed to be a continuation of Agile Software Development that works on the concept of Agile Manifesto that was detailed in the year 2001. The Agile Software Development is basically the methodology for software development, under which the team works in collaborative effort. They self-organize the cross-functional teams. This essentially means that there is teamwork, frequent inspection, adaptation, self-organizing and accountability. This sets out the best practices which ensure smooth work and rapid delivery.
DevOps takes the principles of Agile Software Development a step further and focuses more on overall service at an organizational level. The term ‘DevOps’ blankets every employee/ team that is involved development of product/project, which includes people from the project team, QA team and other stakeholders involved in development. DevOps basically extends Agile principles to the entire delivery services without restricting it only to coding.
DevOps - Realizing the ‘two pizzas’ rule
The ‘two pizzas’ rule owes its origins to Jeff Bezos who famously claimed that if any meeting is too large to feed everyone with two pizzas, it’s probably too large. Taking a metaphorical leaf out of his book, DevOps follows the same spirit in working teams. It is characterized by teams who have multifunctional skill sets. Breaking through the clutter of larger teams working in silos, these are comprised of people who have knowledge of various departments like infrastructure, operations, configuration and testing. With closer collaboration and tighter planning, it also becomes imperative that each team member, irrespective of their expertise, understands the others’ operating environments and the nuances of all.
The right implementation of DevOps can result in tremendous value creation – by making operations easier and less strenuous with a more streamlined and efficient team that automatically leads to higher capacity generation. Improved deployment frequency can translate in faster time to market, lower failure rate, reduced lead time and faster time to recovery. DevOps can also help in attaining continuous delivery (CD), enabling building, testing and deployment. Experts even claim that the operational efficiency of DevOps could also result in the attraction and retention of better talent. As people involved get used to spending significantly less time on a particular development using DevOps, it in turn frees them up to focus their strengths towards solving business problems in other areas, thereby increasing overall productivity and engagement as well.
DevOps – Is it meant for you?
Cutting through all the jargon around DevOps is a challenging task and estimating its impact in the case of a single organization is even more complex. While the list of business impact on the implementation of DevOps can be staggering, whether it’s relevant for you or not can be answered with a simple question. Does your organization recognize itself as or is in the process of transformation to becoming a key player in the era of digital business?
As Andre Pino, Vice President of marketing for CloudBees, noted in a recent address, to varying degrees every company in the digital era is by necessity, a software company. In such a scenario, an integrated DevOps practice can not only streamline operations and make the entire cycle of development and deployment faster and more reliable, it can literally drive business growth based on the efficiency of approach that the company implements by increasing the interoperability of a core set of tools and resources.
Implementing DevOps remains a key challenge for the industry, as a lot of companies are still process of contemplating this new cultural shift. Adapting DevOps is a process that the organization needs to contemplate as a whole. This means first identifying the goals that the company plans to achieve through DevOps i.e. releasing customer-ready products in less time but with quality that meets or surpasses expectations. This means expanding capabilities beyond the regular tasks of running servers, deploying applications, tuning kernel parameters etc. to include the added onus of maintaining an overall perspective on development and programming, networking and security and cloud computing. All the while trying to fine-tune and improve the overall development and deployment cycle. Needless to say, this necessitates having people on board who understand the different operating environments as well as (ideally) making use of the same monitoring tools across development, test and production.
Achieving DevOps without treading on toes
As should be apparent by now, beyond adoption of ‘new-old’ tools, DevOps in its essence is primarily a culture-driven shift. Efficiency of the implementation of any DevOps strategy depends on how tactfully an organization can get teams to appreciate the difficulties and nuances across operating environments, cultivate respect for each function and slowly eradicate any borders between them.
Some organizations prefer to do this through signing up DevOps evangelists to ensure smooth implementation. These evangelists essentially have the task of winning teams over and eliminating any apprehensions or difficulties they might face in the transition. As Communication is key in assuaging concerns stemming from traditional mindsets, they work closely with the teams convincing them about the benefits of DevOps and explaining how this cultural shift would affect them at an individual level and the organization. They understand and empathize with the teams and their concerns, giving them substantial reasoning to help them accept this shift. Taking small steps is the key to a smooth transition as immediate major changes may not be well supported by the employees.
DevOps – Brilliant global and local use cases
One of the most popular case studies of DevOps is that of Amazon. In the year 2006, Amazon emerged as a giant in the technology space and pioneered in the cloud space with the release of Amazon Web Services (AWS) which was the on-demand Infrastructure-as-a-Service (IaaS) offering by the company. The engineers at Amazon were given a target of developing Application Program Interface (API), so that all the data could be shared internally in the entire organization. It was implemented in a rigorous manner. If the team failed to build usable API’s, interdepartmental complaints would be made due to the inability to access the required data. Availability and reliability were the pillars on which these API’s worked. The API’s improvement at the organization was organic as the teams were self-incentivized to improve their API’s since it made their working lives easier.
This mandate was not limited to departments but implemented throughout the organization. Due to this, the organization could create a wide array of users, scenarios and cases thus exposing any data within Amazon. A few years later when AWS released the API’s they were comprehensive as well as stable at release, this helped not only achieve the company goals but also helped them win the trust of the users.
In India, Tata Technologies, a leading end-to-end solutions provider for automobile and aerospace manufacturing organizations globally, is moving towards the DevOps platform. Tata Technologies is taking the leap to achieve the organizational goal to have one single tree for code version control and build system which will integrate easily with production releases and assure hassle free environment without risk. Additionally, it will enable governance backed by analytics at every stage from development to release and will provide full traceability of the process.
The organization has used various practices to successfully achieve the implementation of DevOps for non-SAP eco-system in the organization. Integrated Development Environment is provided for the teams to work in unison using various tools on a common platform and use learnings from the past lessons. Providing Agile framework so that the project team can plan and monitor the work. Automated unit testing so that the testing of the codes can be quick and automatic. Regular alerts and notifications, as this can help the teams with notifications whenever there are changes in codes, files, releases and plans etc. Dashboards and reports that can provide a status on the project to all the stakeholders involved.
Praveen Kumar Mishra
CoE Head – Emerging Technologies
Connected Enterprise IT Solutions, Tata Technologies
See What’s Next in Tech With the Fast Forward Newsletter
Tweets From @varindiamag
Nothing to see here - yet
When they Tweet, their Tweets will show up here.