In today’s business world, the speed of delivery with customer’s needs being met is the number one priority, right?
Quickness to respond to changing needs, systems that are not working properly, new features that put you ahead of the competition are all critical in this super-fast world we live in. Your customers want it and want it now! (More likely, they wanted it yesterday.)
If you’re a project manager who is interested in creating an environment whereby software products and features can be delivered much more quickly and efficiently, then this article is for you. If you’re a project manager and have heard of DevOps, but don’t know that much about it, this article is for you. If you’re a project manager and don’t know anything about DevOps, but want to create a workplace that is able to quickly respond to customer needs, this article is for you.
You are a key player in managing workflow, development, and operations in the delivery cycle. You are a project manager…managing projects are what you do. How do you manage software development and deployment so that workflow is efficient and reduce waste of time, effort, and money? By using the Ops methodology. That’s how. By employing the DevOps methodology you achieve Continuous Delivery and Deployment.
This article outlines what DevOps is, how it is based on Agile principles, and how your role as a Project Manager fits into a DevOps environment.
DevOps—What It Is
DevOps is a methodology. It requires establishing cross-functional teams that integrate and work together to solve business needs. By doing so, DevOps increases efficiency and delivers faster. DevOps does away with the traditional “silo” mentality of development, testing, QA, and operations. With the DevOps methodology, there are no more traditional waterfall linear workflows.
DevOps uses the principles of Agile to create a value-driven environment and, by so doing, allows for quick deployment of software products and features.
DevOps methodology has evolved from Agile processes in order to create an environment that speeds up the entire process. This is achieved by establishing an integrated cross-functional framework that facilitates continuous delivery. When you incorporate DevOps methods in your business, you have an extremely high-performing IT department with fast, hi-quality software delivery.
Three words that succinctly describe Agile are value, learning, and change. Let’s review some of the Agile principles that are also inherent in DevOps:
- Agile values individuals and interactions over processes and tools.
- Agile values working software over comprehensive documentation
- Agile values customer collaboration over contract negotiations
- Agile values responding to change over following a plan
Both Agile and DevOps require that stakeholders embrace change in a way that change is highly accommodated and even welcomed.
How DevOps works
So, how does DevOps work? How does DevOps ensure that you can get products, features, and fixes deployed quickly and efficiently?
This is what an environment looks like using the DevOps methodology:
- Your cross-functional teams have a high level of trust. They have common goals and common values. Their incentives are aligned across departments. This results in a high-performing culture.
- The IT capabilities are viewed as strategic assets instead of cost centers or overhead. This means the entire development and deployment process is valued in a different way. What this means for the individuals involved is that each person has value and responsibility for the end-result.
- Automation is incorporated where it is possible. Fast and efficient delivery can only be achieved through thoughtful automation. Tasks such as configuration management, testing, version control and IT functions that are manual can be automated to improve efficiencies all along the way.
- Continuous delivery of software, features, and IT services requires short and frequent changes. This is accomplished through minimizing Work In Progress and being adaptable.
- Learning and improvement are practiced through incremental iterative workflows and technical feedback loops.
By having cross-functional teams where everyone has responsibility for the quality of the product, you have individual ownership in the end result. The team members have common goals and have the same prioritization of system value. Collaboration and continual feedback mean that everyone knows what is going on in the process every step of the way. Team members are working together for the common goals.
DevOps requires a value-driven behavior from the participants where you learn as you go with the end goal in mind. This practice enables speed in delivery and a higher level of quality because you are adaptable and change with the needs of the project. Planning is still required in solving the business need. But, using the DevOps methodology it is more of an iterative, continuous process by which developers work together with analysts and QA and operations. In DevOps, you plan as you go.
Limit Work In Progress
Using DevOps methodology to achieve continuous delivery requires limiting the Work In Progress. Teams focus on the highest value features and break down large projects into smaller components. This decreases the time it takes to get a product or feature deployed
Automate Where Possible
Automation needs to be used wherever possible. Tasks that can be repeated such as version control and testing code must be automated. Infrastructure code is kept in a common location and under version control.
Project Manager Role
DevOps is a culture and a different way of thinking and behaving. As a project manager working in a DevOps workplace, you are a key component of establishing and promoting the culture. It is important that you articulate the vision and get buy-in from your internal customers.
Create cross-functional teams that collaborate. Everyone takes responsibility for quality. With DevOps, there is no blame for what goes wrong. Failure is expected and used to get better quality. As a project manager, you are key to establishing and maintaining a culture of learning and adapting. We can’t stress this enough.
Build Testing into Infrastructure
Testing is critical in the DevOps method. Build testing into the loop cycle so that testing is occurring all along the process. When testing is built into the infrastructure and automated where possible you enable continuous delivery. Quality & testing need to be built in as quickly as possible so they are not reactive. If they are built in too late in the cycle, you will have more re-work and have inefficiency.
Focus on Business Value
Direct teams to pay attention to where the value is. Instead of taking a linear approach to the business needs, always look at those needs and prioritize based on those with the greatest value. Focus on the business outcome. Always ask the question “What is the business outcome?” Systems today are more complex than ever before and require a focus on the goal.
The DevOps method and a continuous delivery process change the definition of “estimating” from the traditional way we looked at it. The aspects to estimate in a continuous delivery process are:
- Cost of delay
- Optimization of WIP
- Estimate value for features
- Equalize requirements
- Build value into infrastructure
- Look at Infrastructure as equity
- Failure is a vehicle for change, learning, and improvement
In summary, as a project manager, you can drive the value-based behavior necessary in a DevOps environment. You can set the tone for cross-functional teams 1) to learn as they produce, 2) to be adaptable, and 3) to have individual ownership of quality. By articulating the goals and gaining buy-in, you create a collaborative environment. The key to success in a continuous delivery system is building great teams!