DevOps Delivery: Could your organisation benefit?
What is DevOps?
Traditionally in many organisations, the development team (from developers and front end designers to quality assurance) works completely separately to the operations team (e.g. system admins) with little to no interaction between the two. DevOps is the practice of bringing development and operations teams together to create a working environment where information flows more freely, and consideration can be given to operations considerations earlier in the development discussion.
In a previous post we discussed the importance of principles when working in Agile. Similarly, the power of DevOps can only be realised when its values and principles are embraced by the organisation. The three core values of DevOps are communication, collaboration, and transparency. Communication is integral because it is key for all members of the team to understand how their work impacts the work the rest of the team is doing, and why that work is being done. This transparency will ease decision making, share best practices and focus on what’s best for the customer. In a transparent and communicative environment, collaboration thrives. Collaboration leads to faster troubleshooting, new ideas, and continuous improvement – all of which results in better products for the customer and improved outcomes for the business.
DevOps practitioners often use the CALMS framework – Culture, Automation, Lean, Measurement and Sharing. Using this framework will allow a business to assess how prepared they are to implement DevOps and where they can improve an existing DevOps environment.
- Culture – DevOps is a change in culture and requires the values of communication, collaboration, and transparency to be embedded to realise successful outcomes
- Automation – Helping to eliminate repetitive or time-consuming work, streamlining processes, and building reliable systems
- Lean – Continuous improvement, learning from failure and rapid recovery
- Measurement – Identifying and measuring what is most impactful to the business. For example, how long it took to go from development to deployment; how often are bugs or failures identified; which features are most popular with users?
- Sharing – Not just sharing information, but also sharing responsibility, success, and problems.
I’ve Already Implemented Agile – Do I Need DevOps?
When following an Agile method, the focus tends to be on development of the software or product and management of business and user requirements but doesn’t necessarily involve consideration towards operations or infrastructure. This creates an issue as the processes and requirements of the operations team who deploy and manage the new software products are left out. While Agile bridges the communication gap between customer and developer, DevOps bridges the communication gap between developer and IT operations. Eliminating this gap can prevent delays, rework and missed opportunities for improvements.
There are differences in the focus and end goals between Agile and DevOps. Where Agile works to deliver constant changes, DevOps works to deliver constant testing and delivery. Agile’s end goal is software development through collaboration, customer feedback and small rapid releases, whereas DevOps end goal is end-to-end business solutions and fast delivery by bringing development and operations teams together. However, both methods are complimentary and together support the acceleration of delivering value to the customer.
DevOps in Practice
There are many benefits when using DevOps:
- Improved communication and collaboration (which are two of the three DevOps core values). In a non-DevOps environment, developer teams will write the software applications and send it off to the operations team to deploy and manage, with little visibility into how it was developed. In a DevOps environment these teams work together which can result in better planning; alignment of priorities; and being able to identify issues and resolve them more quickly.
- Problem solving is ranked as one of the greatest benefits of a DevOps culture due to the reduced level of friction, and because when the two teams work together and have oversight of what the other is working on, issues can be identified sooner due to transparency, and resolved more quickly through collaboration. This early identification can prevent issues from turning into blockers.
- The ability to quickly build and release new products or upgrades can be a real differentiator in a competitive market, and DevOps teams can produce release more quickly (and at higher quality) due to more streamlined automation and processes, higher team productivity and a lack of barriers that would slow down communication and resolution of issues.
- DevOps teams put customers’ needs at the heart of what they do, viewing the whole development lifecycle as their responsibility. By working cohesively and communicating across teams, practitioners can go above and beyond their defined role, taking more ownership of deliverables and moving forward in an empowered way.
Where a company has successfully implemented agile delivery, or indeed has not yet taken this step but is experiencing the limitations of working in waterfall, it is worth considering if delivery work can be further improved by moving to DevOps. When assessing whether your company needs or is ready to implement DevOps, company culture is the first thing that must be considered. DevOps can be thought of as a solution to a cultural problem, as it aims to harmonise the goals and understanding between two traditionally devolved teams. Arguably, culture is the most important element of DevOps, and the culture established should be a collaborative one at its core. Although there are working practices that can help facilitate a DevOps environment (e.g. Agile delivery) and tools (e.g. Slack, Microsoft Teams), without the right culture and mindset, a DevOps environment will not succeed, and the benefits of this practice will not be realised.
Team size is another important consideration, and the challenge in setting this will be affected by the size of your organisation – the bigger the organisation, the trickier it is to keep teams small and agile. By keeping DevOps teams at eight to ten people the right skillsets can be represented, while maintaining transparency and collaboration. Team members skills will vary across organisations, but some common good qualities include good technical skills, strong communication, ability to be a team player, and adaptability.
By focusing on what your organisation most wants to achieve and trialling a team adopting a DevOps approach lessons can be learned, and the most efficient process devised for creating momentum and driving wider adoption through the organisation.