As we move into 2019, the demand for rapid and constantly improving digital experiences has never been higher. To match the market’s demands, brands are adopting a DevOps culture to streamline the development, deployment, management and maintenance of software at scale. Here’s everything you need to know about DevOps, and the DevOps principles necessary to be successful.
What is DevOps?
DevOps isn’t a “thing,” it’s a set of principles which lay the fundamental groundwork of DevOps culture. The primary objectives of the DevOps methodology are to speed up the time to market, apply incremental improvements in response to the changing environment, and create a more streamlined development process.
Joseph Pellegrini, regional CTO at PCM, Inc., explained that, by and large, there are two definitions for the term DevOps, “The broader definition, which has remained largely consistent since the term’s introduction around 2003, is that DevOps is a set of cultural principles centered on the concepts of cross-fertilizing expertise between software development and infrastructure operations,” Pellegrini began.
“The more specific definition is that DevOps is the engineering domain responsible for the design, implementation and management of CI/CD (continuous integration and continuous delivery) frameworks, which more recently has also subsumed responsibility for container design and management,” he continued.
The fastest way to a DevOps environment is to combine the development team with the operations team, forcing them to collaborate and communicate more. But, to truly achieve a DevOps culture, you’ll need to follow some key principles for a smooth transition.
Related Article: Agile vs DevOps: What's the Difference?
1. Foster a Collaborative Environment
The main theory behind DevOps is to combine development and operations to create a unilateral team that focuses on delivering common objectives. For brands to achieve this, they need to encourage development and operations to regularly communicate, share ideas and problem-solve together. “[In] breaking down silos and bringing development and operations teams together, companies can align their people, processes and tools towards a unified focus on the customer,” explained Jacob Lehrbaum, vice president of developer relations at Salesforce. “Aligning processes helps create a fluid experience across the entire development and deployment process, to minimize surprises along the way.”
Fostering a collaborative environment also involves embracing a cultural shift within a business, and this must start from the “top-down," explained Joe O’Brien, senior manager of IT cloud automation at SAS. “[To implement DevOps] it’s essential to line up executive sponsorship first. Executive support allows for a coordinated top-down initiative vs. a slower, grassroots effort,” O’Brien said. “Focus on getting the right people on the team who will confidently lead this cultural change [right] across the business.”
2. Impose End-to-End Responsibility
In the traditional software development model, developers and operations had separate roles. But in DevOps, both groups work as a team that is fully accountable for the application from beginning to end. “One of the core principles of DevOps is the control and responsibility of services from "concept to grave." Traditionally, developers wrote code and operations deployed that code, but that leads to all sorts of inefficiencies from differences in production to performance problems [and] unpredictable environments,” said Dave Blakey, co-founder and head of technology at Snapt Inc.
Related Article: Agile vs Scrum vs Kanban Weighing the Differences
3. Encourage Continuous Improvement
End-to-end responsibility also means that brands must continuously adapt to changing circumstances, whether that may be the emergence of new technology, customer needs, or changes in legislation.
DevOps places a strong focus on continuous improvement to optimize performance, cost and speed of delivery.
Waleed Bekheet, VP of practice solutions at Onica, explained how DevOps supports continuous improvement. “True DevOps unites teams to support continuous integration and continuous delivery (CI/CD) pipelines through optimized processes and automation,” Bekheet said. “A CI/CD approach enables efficiency in the building and deployment of applications, and automated application deployment allows for rapid release with minimal downtime.”
4. Automate (Almost) Everything
To strive for continuous improvement with high cycle rates and the ability to immediately respond to customer feedback, brands must utilize automated processes. Fortunately, there have been notable developments in automated tools to streamline processes including the CI/CD pipeline.
DevOps engineer George Miranda at PagerDuty highlighted several processes that can be automated. “Automation is a key step toward [CI/CD] or the ability to rapidly release new software to your customers. This includes automation of infrastructure provisioning, the building of new systems, software deployment and a gauntlet of tests to verify everything from functionality to security compliance,” Miranda said.
Miranda added that DevOps teams can create their own automated process. “[Since] computers are much faster at building and deploying software than their human counterparts, it's important for those humans to rigorously capture all of the steps necessary to safely make changes to their running services. By automating all of those steps, machines can be trained to deploy software faster, safer and more reliably than ever.”
5. Focus on the Customer’s Needs
DevOps requires brands to act like a lean startup that can innovate continuously, pivot when a strategy is no longer working, and invest in features to deliver customer satisfaction.
DevOps teams must have one finger on the pulse to consistently meet the needs of ever-changing consumer demands. The data gathered from the automated processes must be constantly reviewed to ensure performance targets are met.
However, to seamlessly deliver customer-centric action, it is imperative that brands focus on the right data. “Just because you capture metrics, that doesn't mean you should obsess on all of them. Start by focusing on the basics: [the] time between initial software commit and having that change running in production, the error rate when deploying new software to production, or mean-time to recovery whenever service interruptions occur. But to find the signal in the noise, focus on the metrics that matter to your company and your users first,” Miranda explained.
6. Embrace Failure, and Learn From it
To fully embrace cloud computing through DevOps, a brand must change their attitude towards failure.
By accepting failure, brands foster a “climate for learning” which will positively impact organizational culture. “When teams feel psychologically safe and are empowered to radically transform their work, failures can and will occur. When they do, it’s vital to turn those failures into opportunities to learn. Learning from reviews helps foster a climate for learning that can also impact organizational culture,” Miranda said.
7. Unite Teams — and Expertise
DevOps teams are required to be involved at every stage of the software development lifecycle, from planning, building, deployment, feedback and improvement. This requires a cross-functional team where each member is well-rounded and has a balanced set of skills.
Since it is quite challenging to find a well-rounded IT professional, Miranda advises brands to encourage teams to share responsibility. “In practice, that doesn't mean that functional responsibilities erode, it means that practitioners with different areas of expertise all share responsibility for running your code in production,” Miranda said.