Areas of DevOps That Enterprise Organizations Must Address
DevOps culture completely replaced this role-based mentality with an inherently collaborative culture that is more holistic and goal oriented.
Join the DZone community and get the full member experience.Join For Free
Once upon a time, developers and coders were sort of viewed as the rock stars of the software world. They designed their code with little regard for the strains it might put on operations, or QA managers for that matter. Their roles were to create good code; Interoperability and defect detection weren't really their concern. This isn't reflective of any particular character traits on the part of developers. Rather, it was the just way things got done.
DevOps culture, however, completely replaced this role-based mentality with an inherently collaborative culture that is more holistic and goal oriented. For larger organizations that have many moving parts, achieving this collaboration from coding to QA test management is especially difficult – but not impossible. Here are three of the key elements of DevOps that enterprises must focus on:
Large corporations in particular have a well-defined workflow structure with rigid roles, which is contrary to the DevOps mindset. The good news, according to TechTarget contributor John Treadway, is that you do not necessarily have to fire all of your specialists and replace them with experts who have a greater breadth of knowledge. In fact, this would be a mistake, because specialists will always be necessary to answer tougher questions that require more refined expertise.
Rather, Treadway stresses that DevOps is a mindset. While this means restructuring to accommodate it may be necessary, which may even "require hard decisions about team members," the point is to create a culture in which all team members feel accountable for the overall solution, rather than their pigeonholed processes. Experts don't have to acquire an arsenal of new skills to make this happen.
"Organize around business systems, not functional responsibilities," Treadway wrote. "People need to know what systems they are responsible for and not just float from system to system without accountability."
Communication and Collaboration Between Teams
Part of creating a culture of accountability is fostering strong communication between the various teams working on a project in every stage of software development and release. To truly have a clear understanding of a role in development is to also know where it overlaps with the roles of others. This requires significantly more communication than in waterfall methodologies. The same goes for business stakeholders, who historically had a clear idea of what they wanted achieved without having any notion of whether or not it was feasible.
According to DevOps contributor JP Morgenthal, how to adopt DevOps will depend largely upon what a business is trying to accomplish. This is important to understand, because the only way that a process can be created that will yield the desired result is if all the players involved know how their role somehow fulfills the overarching objective. This means knowing where they fit into the model, which is impossible without actually knowing the model. This is where communication between traditionally siloed teams becomes to important.
The above is especially true for creating a strong test management strategy. Without embedding testers into the workflow, enterprises risk compromising the value of their agile processes once the solution reaches QA.
"If all that work creates bottlenecks in testing, you've accomplished very little," Morgenthal wrote. "Now you must fix the flow to balance out development and testing."
In fact, if test management isn't integrated into the process, then you haven't really succeeded at all in creating an agile, DevOps-driven enterprise. It's therefore important to preemptively address test management as an integral link in the DevOps chain. Start by incorporating agile testing methodologies, which is to say, using a test management tool that supplies testers and developers with real-time visibility into the current status of a solution's quality. Next, automate everything that can be automated. This makes it easier for QA teams to run certain tests more quickly, and more accurately, which is a big benefit to big businesses as they try to become more agile.
Published at DZone with permission of Francis Adanza. See the original article here.
Opinions expressed by DZone contributors are their own.