What is DevOps? Is it just a fancy buzzword that’s going around? Or is it something I need to know and should be adopting? Could my business benefit from DevOps? – These are just some of the questions that are being asked about the ‘elusive’ topic of DevOps, but it doesn’t have to be elusive. So, we thought we’d provide some insight around the area and hopefully clarify some of those thoughts and questions.
So let’s start with some history;
DevOps is an approach that began to form in and around 2007-2008, when IT operations and software development communities began to vocalise more widely what they believed to be the key areas for improvement within the industry.
DevOps combines software coding knowledge with quality assurance skills and operations workflows for continuous software development and deployment.
To elaborate further, DevOps uses the real-time feedback loop concept and further extends it to other key areas in the software development lifecycle (SDLC). This approach helps reduce risks due to potential disconnects between developers, operations staff and quality assurance. This approach also helps mitigate disconnect between developers and the current state of the software, as by adopting this way of working ensures that developers are continuously working on the software.
A fundamental principle of DevOps is continuous integration. What is continuous integration we hear you say? It’s a technique created by Grady Booch that continually merges source code updates from all of the developers within a team into a shared mainline. This process ensures that a developer’s local copy of their code/ software project never differs too far from the code that is being added by other developers within the team, thus avoiding major merge conflicts.
Continuous integration in practice, requires a centralised server that continually extracts all of the new source code changes from the development team and builds the software application from the ground up, informing the development team of any failures within the process. If a failure occurs, the development team are required to fix the issue before making any further changes to the code. Although this process may appear disruptive, it centres the development team on a single metric: a collaborative automated build of software.
A crucial element of the DevOps approach is to remove disconnects in understanding. In many instances, companies engineer a development team structure whereby one or more experts within the team focus on ensuring a domain-centric perspective. In order to remove any potential disconnect between development and sustainment, DevOps practitioners include IT Operations Professionals within the development team from the beginning. Similarly, in order to ensure optimal software quality, Quality Assurance professionals are also required in the development team.
To summarise, DevOps utilises the principles of Agile methodologies and expands their scope, understanding that ensuring high-quality development, requires continual engagement, feedback and integration from a range of technical professionals; developers, quality assurance and operations specialists, ensuring better collaboration and tighter integration.
What are the benefits of adopting a DevOps approach?
Culture and collaboration
The general consensus in the industry is that Culture is the number 1 success factor in DevOps. It’s difficult for teams that work in silos to adopt the ‘systems thinking’ of DevOps. ‘Systems thinking’ is understanding that your actions may not just impact you and your team, but the wider teams involved in the release process.
Not having visibility or shared goals can result in; poor planning, misalignment within teams, unclear objectives and priorities, finger pointing, an uncollaborative culture and a ‘not my problem’ mentality. This ultimately results in slow progress and poor/standard quality outputs. However, DevOps is that refreshing change in looking at the development process, identifying and eradicating the barriers between development and operations.
Quicker and smarter, together
Time is of the essence. It’s been noted that practitioners of DevOps release more frequently, with a higher quality and more robust output.
Team confidence and morale can be significantly impacted when a company has poor or no automated test and review cycles, which ultimately block the release to production. Poor incident response times, disparate tools and a lack of processes will also reduce confidence whilst significantly increasing operational expenditure, leading to context switching and slowing down of momentum.
However, through automation, continuous integration and a standardised set of tools and processes, teams will become more efficient and release more frequently with fewer disruptions.
Open communication and transparency
It’s been noted that the team with the quickest feedback loop is the most successful. Strong communication coupled with complete transparency is required for DevOps teams to reduce downtime and resolve issues as quickly as possible.
A lack of speed when resolving critical issues results in poor customer satisfaction. If communication within teams is not kept open, issues and problems can be missed, resulting in increased levels of frustration and tension within teams. Open communication and transparency enables Dev and Ops teams to identify issues, fix incidents and remove obstacles, helping to release quicker.
Receiving unplanned work requests are one of the biggest factors that can impact productivity. However, with recognised processes, clear priorities, more visibility and proactive retrospection, Dev and Ops teams have strong platforms and foundations to react and better manage unplanned work, whilst working on the planned work simultaneously.
It’s important to note, the above benefits are just a small snapshot of the wide range of benefits adopting a DevOps approach can do for your team or business. Many businesses within your sector may have already adopted the DevOps approach, below are some key takeaways from businesses that have:
- On average, companies that adopt DevOps see a 40% improvement in new business growth, according to a May 2016 survey by Coleman Parkes of 1,770 senior business and IT leaders around the world.
- DevOps (Continuous Integration) shortens the time to market for new products and features, so they can start generating revenue sooner.
- Early detection of errors can help eliminate the risk or limit the duration of application downtime, which costs Fortune 1000 companies $500,000 to $1 million per hour, a 2014 IDC survey found. It is estimated this figure has close to doubled in recent years.
- According to a 2016 survey of 25,000 technical professionals by Puppet and Dora, teams that deploy frequently spend 22% less time than traditional teams on bug fixes and rework; as a result, they spend 29% more time designing and building new features.
- Employees in companies that deploy code multiple times a day spend 50% less time remediating security issues, according to the survey by Puppet and Dora.
- Employees in companies that deploy code multiple times a day are 2.2 times more likely to recommend their organization to a friend as a great place to work, according to the Puppet and Dora survey.
- A recent survey carried out by Coleman Parkes found that DevOps improves employees productivity by 43%.
So the big question is, have you adopted a DevOps approach, or haven’t you? Will you or won’t you? (Okay, that was two questions).
#DevOps #dev #ops #continuousintegration #buckthetrend #technology #software #softwaredevelopment #operations #development