DEVOPSdigest asked experts from across the industry – including consultants, analysts, organizations, users and the leading vendors – for their opinions on the best way to foster collaboration between Dev and Ops. Part 6 covers DevOps and development tools and processes.
UTILIZE SAME TOOLS
The best way for dev and ops teams to collaborate is to have everyone use the same set of tools. DevOps is Agile with operations included. And dev teams are most successful when they take smaller steps to shift towards project-based work (like inviting the right members of ops teams to join sprint planning sessions). So, although no single tool covers each primary role of DevOps, teams can use a set of tools that integrate with each other to manage the process.
Senior Content Analyst, GetApp (a Gartner company)
There are numerous ways for Dev and Ops to collaborate but one way I have seen very effective — especially in organizations that for other reasons can't reorganize so Dev and Ops are in separate parts of the business — is to share the same tools for all work. This includes common work tracking, same tools for deployment, and very critically the same monitoring data. The monitoring tools might not display the data in a form the developers can easily deal with because systems monitors generally focus on the system not the individual applications, but the data can be sent to be consumed by development tooling to be displayed in a form developers can more easily use. The key here is it's the same data so each organization has the same view of things. These monitoring tools need to be in place in the later development and test environments as well, so the data is available early in the cycle.
Distinguished Engineer, Chief Architect for DevOps for Enterprise Systems, and IBM Master Inventor, IBM
Create a culture of collective ownership through frequent peer reviews and transparent cross-department communication. In other words, share. By providing daily feedback on deliverables and source code, your teams will begin to establish a constructive cadence for each project. When you bring teams together across departments into one collaborative review tool, everyone gains visibility into the value that each member brings to the table. Over the years, we've seen how organizations adopting this approach have been able to successfully foster quality-driven cultures within their organizations and across departments.
Product Owner of Collaborator, SmartBear
Perhaps one of the most overlooked aspects that can help strengthen the relationship between development and operations is security. Vulnerabilities in the software code that hackers can exploit are an operations team's worst nightmare, and have been behind the some of the biggest headlines in the business world recently. Performing automated security audits early in the development process not only reduces your risk exposure, it also makes for a much better relationship between development, operations and the security team.
VP of DevOps Solution Marketing and Management, CA Technologies
Close collaboration between Dev and Ops improves communication, and the development processes. However, the often too ignored risk in all this is the failure to include security in this collaboration. Bringing security measures into this process early on will enable developers to consistently develop and test in the secure configuration that will be consistently applied to production. Adopting a mindset of DevSecOps, critical in this era of constant cyberattacks, means the tools and processes used to secure production environments are built into the DevOps process from start to finish. Each layer of defense that should be applied to production should be configurable automatically and tested throughout the DevOps process. This strengthens risk mitigation at the beginning, and helps avoid unnecessary workflow disruptions later on when new applications are deployed.
Manager of Product Management, Security, Ivanti
The greatest inhibitor to Dev and Ops collaboration is the lack of agility within Operations. While development is project driven, operations is interrupt driven. This means Ops team members often do not have enough "free" or scheduled time to effectively participate in collaborative sessions or to perform follow up tasks as a result of such sessions. Automation is the key to freeing up operations. Automating repetitive tasks, providing self-help access to Ops services and best practices will empower Ops to be more responsive to the business and more involved in DevOps efforts.
Product Marketing Director and DevOps Evangelist, Automic Software
As technology becomes the epicenter of transformation - Dev and Ops need to automate legacy processes around Change, Incident and Problem management to enhance agility and reduce cost. For example, one large manufacturer created a portal that streamlines the change process from test to production by automating security checks for applications before allowing them to be deployed into production. The custom security checker application cites the security remediation steps required before the application can be rolled out into production. This eliminates the need and queue for known checks that need to happen to fulfill their company's change requirements. Automation has played a key role in enabling key technologists to focus more on collaborating around strategy and less on arguing over repetitive tasks and communication requirements.
Author and Strategist, iSpeak Cloud
The best way a development team can collaborate with IT Ops is to automate manual tasks. Change is the enemy of stability. Development must deliver releases to IT Ops teams that are small, atomic and easily consumed. That means automation for every part of the application stack, including the database. Remember: automation for IT Ops is very different than for development because of the stateful nature of production databases. IT Ops is concerned about standards enforcement to protect customer data. So, collaboration between Development and IT Ops must include conversations on expectations and needs. This will allow both teams to reach their goals without the other party paying more than their fair share in resources.
CTO and Co-Founder, Datical
Greater automation can help Dev and IT ops teams collaborate better. Particularly, developers can gain quicker access to the IT resources they need, and ops teams can easier handle administrative tasks like provisioning dev/test/production environments, and setting up CI/CD processes, and scaling. Increasing automation like this allows each side to remain more concentrated on their core competencies: developers can focus on creating the applications, while ops teams can focus on preparing containerized software stack templates. And, automation from PaaS can manage the containerized environment from there on out, making resources more readily available to developers when they need them, while also requiring less Ops oversight, taking human error out of the equation and accelerating time to market for software products.
In order to best facilitate collaboration between Dev and Ops teams, organizations must leverage IT automation. IT automation minimizes downtime during the testing process by executing automated tests, sending notifications to initiate every necessary manual intervention, and providing change management tools to maximize the efficiency of those manual interventions. As a result, the testing process is not only optimized — which is advantageous for both Dev and Ops teams — but people are only required to intervene when they specifically are needed. This leads to less wasted time, smoother collaboration, and more efficient rollouts. Additionally, an IT automation solution that provides change management enables companies to synchronize and manage workflows across various environments, including QA and production as well as testing. This results in reduced delays, increased control over objects, and improved collaboration between Dev and Ops teams and the rest of the organization.
VP, Advanced Systems Concepts
JOBS AS CODE
There is a fine line between success and failure as Dev and Ops try to perfect their art of collaboration in app dev. Typically, development teams are focused on speeding up application delivery, and operations teams are focused on a stable release to production and meeting their service level agreements. Together they need to deal with the challenges posed by increasingly diverse infrastructure, disparate data, and accelerated applications — the critical components of digital business. To help foster collaboration between the two teams, one idea is to use a jobs-as-code approach within continuous delivery. By shifting left and putting job definitions in the hands of the developer and storing it within the code, the traditional hand-off between the teams significantly improves — saving time, improving quality, and eliminating friction as apps transition into product.
President, Digital Business Automation, BMC Software
Many development and IT operations teams run into issues when they must create exact copies of enterprise applications environments. The process is necessary for various use-cases, but it is time-consuming and laborious for quality and test teams. Assembling near-production data to feed these application copies can take even longer. All of this wasted time trying to recreate environments for testing slows down release cycles, making life difficult for app dev and IT Ops teams alike. Failure to reproduce these environments leads to lack of confidence in testing increasing risks of failure in production environments leading to a poor customer experience. Fortunately, these teams can better collaborate if they are able to simplify the process of cloning new production environments, along with the data and security the applications rely on. Effectively cloning environments and their underlying components gives both sides of the DevOps coin an app testing environment that speaks both of their languages and, ultimately, speeds release cycles and reduces deployment risks.
MODELS AND TEMPLATES
A key enabler that can drive a productive DevOps approach is to implement a vehicle that drives broad communication across teams. Such can be the case with using a model driven templating approach, where models and templates naturally provide broader communication between cross-functional teams. Given that models and templates are significantly easier to understand and manipulate than traditional reading code and programming, you see greater collaboration with this approach between network operations, engineering, IT and even product marketing to genuinely understand each other and "develop" together.
Senior Director of Solutions Marketing, Ciena's Blue Planet Division
Have shared repositories in place, so everyone can access the same scripts and comment (although not everyone should have edit permissions). Apply this methodology for as much config and scripting as possible, it will pay off!
VP R&D, Correlsense
Read The Best Way for Dev and Ops to Collaborate - Part 7, the final installment, covering IT Ops tools.