DevOps—a cross-disciplinary, collaborative practice that blends software development and information technology operations—aims to build, test, and deliver software both more quickly and reliably. It involves the entire project lifecycle, from the early stages of planning through production support efforts. The “Dev” in DevOps relates to the development of the product—including varied disciplines such as QA and product teams—while the “Ops” in DevOps involves disciplines such as security professionals, system administrators, and operations teams.
There’s a good chance your company may benefit from incorporating DevOps practices into your project processes, and assessing when it makes sense for your organization to engage in DevOps doesn’t have to be complicated.
When does it make sense to engage in DevOps?
Consider situations when your team faces a specific challenge because of excessive downtime or lost productivity. Such challenges may range from deployments to production regularly failing and requiring long hours of remediation to new developers taking extended amounts of time to ramp up on a new project. Other signals that it may be time to engage in DevOps include when your team’s project suffers from multiple single points of failure, you’re continuously relying on only one or two people on your team to handle a specific task, or your team is constantly suffering from the “works on my box” paradigm. Further, if production regularly fails for unknown reasons or your team is uncertain of what codebase is even deployed—you could surely benefit from DevOps.
Some companies may not even realize they need DevOps help until an outsider of their organization helps point out the need. For example, Base2 Solutions (where I work) was asked to help control costs in a cloud environment and provide recommendations for the future direction of the client’s platform. After evaluating the client’s platform, it was apparent that the client had no way to effectively deploy code and maintain consistency across environments. This issue truly became transparent when a key employee was on vacation and the company experienced an outage where only that individual employee knew how to fix. As a result, their customers experienced a lengthy window of downtime—while the company scrambled to both identify the cause of the issue and then work to solve it. Base2 then engaged in a number of activities that provided consistency to their deployment practices and environments that eliminated the single point of failure.
How do we begin incorporating DevOps?
The first steps to begin engaging with DevOps is to perform an evaluation of your team’s current practices and procedures, as companies that actively invest in understanding where they lie in their project processes benefit most. Base2 can help identify the main pain points of your current processes, as well as recommend a path forward. Often, even a few small process adjustments can position your team for a successful start in adopting DevOps practices.
One way we do this is by using one of our custom tools—specifically what’s called a DevOps Maturity Model (DMM)—to assess how advanced your project processes are and offer recommendations on how to improve. The higher your team’s practices and procedures scores in a DMM assessment, the better positioned you are to take advantage of more reliable operations and increased organizational productivity. Organizations who live high on the DMM scale have the capability to innovate faster, beat competitors to market, and deliver a better end user experience at lower cost.
Why is DevOps worth the investment?
While you may feel ready to pursue a DevOps plan for your team, it’s possible your manager or director may not love the idea of incorporating new and different practices. As you have a conversation about why your team should invest in DevOps, focus on the potential benefits for the company at large, the team, and employee happiness or retention. Share with your company’s decision makers that investing in DevOps leads to the following:
- Avoidance of outage costs
- Shortened developer time to productivity
- Enhanced productivity with fewer staff
- Shorter time to respond to market demands and shifts
- Increased project velocity
- Increased ability to innovate
- Business continuity benefits
Additionally, when you offer your team the tools they need to produce quality work as well as affording them time to innovate, you tend to have happier employees. Investing in DevOps also means investing in the skills and career growth of employees.
OK, so now what?
Once your organization is on board with investing in DevOps, your team can move to the next level by adopting some basic practices and procedures for their project, such as:
- Using centralized source control tools and regularly checking code
- Creating and documenting a common build server for production artifacts
- Storing and versioning build artifacts
- Coordinating activities between development, QA, and Operations
Ultimately, DevOps is a collaborative approach to delivering the best possible project results; it isn’t a single tool or single person on a team. When your organization incorporates DevOps, your company learns to become proactive rather than reactive—leading to more productive, innovative, and happier teams.