8 Best Practices for Managing DevOps Projects
One of the hottest trends for managing software and technology projects is DevOps—a method that uses Agile and lean principles and brings operations and development engineers together throughout the entire lifecycle. I recently interviewed solution architect and ArrestedDevOps podcast co-founder Matt Stratton for my Project Management for the Masses Podcast. I quickly realized that the future of project management lies in the DevOps approach. Since then I have been researching the topic with keen interest.
If you haven’t used a DevOps approach, or are trying to transition over, how do you set your team up for success when managing DevOps projects? Here are eight best practices to help you get started.
- Start with small projects
When starting a new way of managing a project, it’s a good idea to start small. Let your team get a sense of how this new DevOps approach works in the real world. The best way to accomplish this introduction—even better than reading books and taking courses—is to try it with a small project.
This approach is especially effective if the team is well connected and has been working together for a while. This maximizes the chances of success and will create the right environment to start implementing some of the other practices explained in this article.
- Minimum Viable Product
Even within the context of a small project, if you haven’t yet started using this approach, the concept of the minimum viable product, or MVP, is extremely helpful. One popular industry belief is that the MVP is a critical and necessary part of any DevOps project.
A minimum viable product focuses on high return and lost risk projects, and can be measured and improved upon with each iteration. Putting this into action is a way to create fast, small products that can be deployed quickly and measured for feedback. A well-run DevOps environment can take full advantage of what is learned in these short cycles and do small, Agile course corrections along the way.
- Use the right tools
Because DevOps is all about collaboration, communication, the removal of silos and unnecessary overhead, it’s extremely important to use tools that will facilitate these principles. Success in DevOps is typically very much connected to the tools used.
When considering tools for your DevOps project, look for solutions that will simplify aspects of configuration management, application deployment, monitoring and version control.
- Eliminate silos
If there’s one bad word in DevOps circles, it’s the word “silo.” Silos and DevOps do not go together. The reason is simple: DevOps has to do with flow and integration, which means development and operations move quickly and in a horizontal manner. Silos, on the other hand, are vertical and walled in.
But how do we break down silos and the silo culture? According to a Forbes article by Brent Gleeson, some of the best ways to break down the silo mentality are to create a unified vision within the organization so all stakeholders and team members understand that they are all working towards a common goal. Additionally, it’s important to motivate and incentivize flow and integration not only in the context of a single project, but across all aspects of work.
- Reduce handoffs
Some of the most wasteful aspects of any project are handoffs. This is work that is completed by one person or team, and then packaged and handed off to the next phase to be completed by another team or person. This process turns any project into a sequence of discrete steps.
DevOps projects, on the other hand, sees projects as a continuous flow from beginning to end. By minimizing handoffs, discrete steps tend to disappear, facilitating a DevOps culture.
- Create real-time project visibility
This is very important: In order to maximize flow and integration, everyone who’s part of a DevOps system needs to know where the project stands. While access to progress measurements can be useful, in a DevOps environment it’s paramount that all team members have access to the status of the project and its many indexes of progress.
Creating real time project visibility can be done by using the right tools and encouraging all involved to engage in a centralized way. Consider using collaborative project management software that everyone can access, and one that shows updated schedules every time a change is made.
- Reduce overhead
There are many ways to maximize collaboration and productivity. Reducing company overhead is an interesting approach that many don’t consider. Work and resources saved from processing overhead can be redirected to increase productivity and collaboration.
For example, overhead can be reduced by:
- Cutting back on meetings (duration and number of)
- Eliminating status reports
- Minimizing company turnover. By investing in your team, you will motivate them to stay with the company and do good work.
- Give employees the option to exchange some commute time for work time.
- Manage change collaboratively
Effective change management can be a struggle for any project. Having a systematic way to approach change management is critical.
In DevOps, dealing with change management is even more important. In an effort to maximize flow and collaboration, dealing with change effectively can only be done when the team collaborates and works together.
The first step is to understand and communicate the need for a change management culture. Then, using the tools mentioned earlier, create procedures and processes to manage these changes in a transparent and collaborative way.
DevOps is a fascinating topic, and will become more and more mainstream. (Target just announced its moving to DevOps.) If you want to get in on more DevOps discussions and insights, I highly recommend the Arrested DevOps podcast.
If you’re interested in adopting a DevOps approach, then mastering an Agile process is a must. To learn more, download our eBook, Agile for Everyone.