This is the first article of the three-part series that examines the importance of people, processes, and technology in any Enterprise DevOps strategy.
The rate at which organizations are embracing DevOps is phenomenal. With benefits spread across a variety of aspects including frequent deployment, better collaboration, automation of repetitive process and thus reduced risk, and improved productivity, it is not surprising why there is a substantial increase in adoption rates.
Despite all the promises of DevOps, and how it can enable organizations to streamline the software delivery process, a lot of them fail to achieve the outcomes they’ve set out to achieve. This is mainly because most organizations drive all their focus on investing heavily in state-of-the-art tools, technologies, and processes, while overlooking the most important aspect of any DevOps strategy – people!
The Problem at Hand
DevOps is not just about implementing the right tools and technologies, but also about driving a cultural shift, the lack of which can act as a deterrent to reaping the benefits of a DevOps project. It is a change that disrupts the usual equilibrium, and forces people to move beyond their comfort zone into a zone that is unpredictable, and uncertain.
While the tools and technologies are important, what’s more important is the people who use these tools to make important decisions. The only way you can succeed with your DevOps efforts is to make your organizational culture more open to change while adopting an innovation mindset. You need to make DevOps the culture of your organization, and make teams understand their roles and responsibilities, and the implications of their roles.
Yet, many development companies balk at the idea of committing to external teams instead of handpicking employees or individual contractors. This greatly reduces the time internal teams must devote to continually interviewing, training, and wrangling new hires. The savings in time, resources, and redundant efforts (when, for example, a contractor or employee quits after training and a new person must be trained all over again before productivity can be measured) often boosts the value of such services’ flat and often discounted fees.
Furthermore, this arrangement enables better cost prediction and eliminates hidden fees — provided you use a reputable partner. This value is especially seen when dealing with newer technologies that your own team might not be as experienced in.
The Need to Invest in People
Although in philosophy, DevOps seeks frequent collaboration between development and operations teams, with resources specializing only in certain aspects of the development process, traditional IT teams naturally become siloed. These silos hamper collaboration and, ultimately, delay releases – at a time when DevOps is expected to streamline both.
Here’s what you need to do:
Communicate the Need for DevOps
Before you begin your DevOps journey, make sure all stakeholders including programmers, operations staff, business analysts, quality assurance personnel, and the information security team are briefed about the impact of DevOps, the efforts that will be required, and the benefits they will achieve from the implementation.
Get People with the Right Skills
Given how niche the skillset is, with respect to DevOps, get people with the right skills, so the right tools, techniques, and processes are used to achieve DevOps goals.
Focus on Internal Training
For organizations who supplement their workforce with contractors, it is essential to note that the approach does not allow for effective knowledge transition. It is just an easy way to bridge the DevOps skill gap, and a lost reason to conduct internal training to the company’s own employees.
Adopt Agile Practices
Invest in real agile teams that are fully cross-functional, and have the necessary resources to produce a working, tested increment of the solution; since such teams are self-organizing and self-managing, it enables value to flow more quickly, with a minimal overhead.
Build Cross-functional Teams
Build a team with resources across product management, system architecture/engineering, and release management so resources can provide content and technical authority, and an effective development process.
Ensure the Right Mindset
Get people who share a culture and mindset of engagement and innovation; make sure they have system build and administration know-how, a broad IT background with the ability to understand and code automated and repeatable processes and applications.
Look for People Skills
In addition to technical skills, make sure resources have people skills, can communicate and interact well with others, are service-oriented, and work towards achieving common goals.
Identify Product Owners
Identify product owners and scrum masters to help development teams meet their objectives; and make sure the customer is integrally engaged throughout the development process.
Ensure IT and Business Alignment
Ensure IT and business strategy alignment and get teams from across the software development life cycle together to foster engagement and collaboration.
Embrace Lean
Empower teams to embrace lean principles and agile practices along with automation to incorporate changes more easily; support a culture of continuous learning that allows teams to make mistakes and learn from them.
Strategize your DevOps Initiatives with the Right People
With digital transformation causing massive disruption across every business, software products need to be built using a successful strategy.
Today, that strategy is DevOps. However, in addition to having the right tools and technologies in place, to fuel better collaboration, improve delivery, and improve product quality, you also need to invest in your people.
Make sure your resources understand the need for DevOps; clearly state their roles and responsibilities and provide a platform for teams to come together and conduct frequent reviews, resolve conflicts, and improve quality of code.
Do away with departmental and team silos; make sure all teams work together as one unit, and towards the common goal of producing high quality software – quickly and efficiently – and achieve DevOps success.