In the last post, I focused on different definitions of DevOps and RO’s opinionated point of view that DevOps involves closer interface and connection among all facets of product development and all members of the product team. Here, I’ll highlight some similarities between DevOps and Agile development, some similarities between DevOps and Continuous Integration/Continuous Delivery (CI/CD) and some overall benefits of a DevOps implementation.
DevOps and Continuous Delivery Enable Agile Development
There are infinite models for developing iterative software, just as there are an infinite number of CI/CD development practices. For starters, it’s easy to confuse DevOps with Agile and CI/CD. While they aren’t the same, they are related, as DevOps and CI/CD enable Agile development.
Agile is fundamentally a series of core principles involving iterative and incremental software development. Let’s say you’ve followed the Agile Manifesto and developed code in a way that puts people over process and in-person communication over documentation. That code lives on your laptop or in a test environment. Now let’s say you want to quickly, easily, safely and repeatably move that software into production. That’s where DevOps comes in.
In a DevOps environment, your team shifts from big releases and periodic iterations to features and fixes being pushed to production as often as desired or needed. Not only are you deploying and delivering value more frequently, but you’re also producing code you simply couldn’t before.
There’s an adage in Agile – if it hurts, do it more. Why? Because if you take active steps to solve the problem, over time you reduce the pain. For example, if you want to deploy more frequently, you’ll find it tedious to run into bugs all day, every day, unless you put systems in place to reduce failures. Of course, there’s always the possibility that an organization will enter a negative feedback loop, where encountering bugs in deployment means they deploy less frequently instead of instituting processes that improve product quality. However, if every effort is put forth to shorten feedback loops, it can inspire better practices throughout the organization.
DevOps Practices Impact IT and Organizational Performance
A DevOps Platform-as-a-Service approach allows product developers to strategically deploy, manage and monitor their own apps, giving them a window into operations. Think of it as a transition from individual tacticians (system administrators and database administrators) to more strategic roles within the organization.
Ultimately, DevOps is a story about why you want to do lean product development in the first place. Here are some reasons why DevOps matters:
In the DevOps world, the entire team shares the same business goals and remain accountable for building and running applications that meet performance, UX and security expectations. Teams learn to deploy small changes continuously, as well as detect and resolve bugs in real time and release quickly, pushing change to production in minutes vs. hours or days.
Resiliency DevOps improves change failure rates, faster time to recovery rates and overall resiliency. When a system fails at 2am, diagnosing and fixing the issue rapidly is important. When you have shorter units of work deployed more frequently, the amount of code you have to sift through to diagnose what’s wrong is minimized. For example, when you push a feature to production and the software immediately fails, you can isolate the problem to that feature. What you get is a more operable system with higher availability and reductions in mean time to failure.
Faster Time to Production (and to Market) The principles of DevOps encourage IT teams to produce, test and roll out actual services and products rapidly, which enables organizations to focus on business needs first and keep up with the pace of change in the marketplace. Deployment of smaller units of work means faster feature delivery and time to market. The result is higher efficiency towards innovating new products and services and the agility to change on a dime with markets and competition.
Reduced IT Waste
Streamlined, lean product development is about waste reduction. Waste can come in many forms, such as defects, inventory/overproduction, schedule delays and underused resources/talent. More frequent deployment gets features in users’ hands quickly to share value right away. Iterative deployment to a subset of users enables experimentation and encourages innovations that contribute to the bottom line.
Usability and Customer Satisfaction
A more proactive DevOps organization can steadily improve the quality of products and tools –and the customer experience. DevOps allows businesses to deliver applications and features into user hands quickly, which in turn translates into more competitive products, an increased user base and more revenue opportunities.
DevOps puts the needs of end users before all else because doing so is good business. Simply put, DevOps lets you do more with less.
In the next blog, I’ll talk in greater depth about the sweeping cultural shifts in thinking required at an organization that either is considering a DevOps implementation or is in the midst of a DevOps implementation.