These days, software applications are not your classic installable Windows apps, but instead exist in the cloud, delivered on the Internet and offered as a service to end users. This has ushered in the era of modern, web-based apps that require seamless internal operations throughout development, testing and quality assurance in order to deliver an experience that satisfies (and even goes beyond) user expectation for reliability, uptime, and quality.
This paradigm shift has resulted in the rise of DevOps, and launched initiatives that reframe the way developers and engineers work on a day-to-day basis. Enterprises must innovate smarter and adapt faster to outpace competitors and scale the business. DevOps strategies not only support technological advancements that benefit the consumer, but set benchmarks for entire industries.
The most straightforward roadmap to establishing DevOps is known as CAMS -- an acronym for Culture of Automation, Monitoring and Sharing. However, if one component is missing, the entire tower of agility can come crashing down. Let’s deep dive into how to incorporate (or course-correct) these four simple concepts to build a strong DevOps foundation and set up your teams for success.
1. Culture is king. Culture is the highest priority, not only for the entire organization, but also for individual IT teams. Development, testing and operations groups each have their own management chains and separate agendas. However, these three functional silos must cooperate to develop and deliver quality modern apps.
When DevOps initiatives fail, first look for signs of cultural mismatch, particularly with executives and managers. If they don’t all believe in cross-functional work, their skepticism may bleed into their teams. Listen for language such as "us" versus "them” when describing different organizational groups. DevOps initiatives will not be successful if teams blame failures on other functions and fight for credit.
Foster an environment that demands open and respectful communication. Additionally, arrange a desk system where different teams sit next to each other, creating opportunities to get acquainted, collaborate and establish positive working relationships. Consider incentivizing cross-functional work by establishing a simple rewards system or publicly praising individuals experiencing success with inter-group projects. While these characteristics often may be deemed unimportant, teams that openly communicate and spend time with one another are often the most successful.
2. Automation all the way. Once culture is established, you need to automate your processes. High-performing organizations establish IT automation by using pipelines to manage environments with infrastructure as code and uniting the functions via a simple shared skill: programming.
First, look for any absence of source control, automated testing or continuous integration. These are often already in place to some degree, as most developers have grown to appreciate the value they provide by allowing developers to quickly respond to business changes. Then, ensure you have continuous deployment and continuous delivery methods in place. This allows teams to make changes to code without disrupting business operations, and ensures issues remain undetected by end users. Without automation tools, the operations team wastes precious time by working manually, greatly decelerating the velocity of value delivery.
3. Monitor everything. This means not only monitoring your modern apps for availability and performance, but also monitoring internal metrics such as number of known and unknown bugs per release, time per release and time taken to review code. Also, monitor the number of tests run and how long they take to execute, including unit tests, functional tests, end-to-end tests and tests against production. This allows teams to catch gaps in performance and keep tabs on overall efficiency.
While culture may be the X-factor that is difficult to measure, organizations still need metrics to show the health of a DevOps initiative. This also allows your organization to have constant and valuable insight into the status of your modern apps. Monitor systems wherever possible, trend it over time, then interpret any trends to derive ideas for continuous improvement.
4. Sharing is Caring
Finally, share findings across all teams who will benefit from the insight gathered. Don't keep knowledge within the minds of one function. Knowledge is power. Disperse it for the good of the organization so you can get a leg up on competitors, not other teams within the business.
Overall, the C-suite and those in managerial positions must learn that DevOps is not just about moving quickly and efficiently. It’s also about culture and understanding how people operate in organizations in order to maximize shared knowledge. Some may be hesitant of cross-functional work, as boundaries disappear and old habits die hard. Take note of the employees who see other teams as competition, continue to stick to their old manual ways of working, skip metric tracking or keep knowledge to themselves. They are the red flags of the larger engineering group, and will keep your teams from operating at their fullest potential.
As co-founder and CTO of Sumo Logic, Christian Beedgen draws on 18 years of experience creating industry-leading enterprise software products. Since 2010 he has been focused on building Sumo Logic’s multi-tenant, cloud-native machine data analytics platform, which is widely used today by more than 1,600 customers and 50,000 users. Prior to Sumo Logic, Christian was an early engineer, engineering director, and chief architect at ArcSight, contributing to ArcSight’s SIEM and log management solutions.