Product Managers and DevOps

In most of the scenario’s implementation of DevOps for software, delivery is an onus on the engineering team. DevOps implementation never gets treated as a new functionality by the Product Manager, nor can it be tagged as technical debt. Reading this blog further might convince you to have DevOps as a feature in your Backlog.

Those of you who know me from my days of Product Manager for Oracle Developer Cloud might think that I developed a bias for DevOps while being a Product Manager for a DevOps platform. But I can assure you that’s not the driving factor here. On the contrary that helped me understand the importance of DevOps that not just the engineering team but we as Product Managers should also take it seriously.

So, the question now is, why as Product Manager, should we care about DevOps?

Before I move on to answer the question, I guess it will make sense for me to present my understanding of DevOps and then dive deeper into its benefits from the Product Management perspective. Below described is the basic DevOps lifecycle:

In this blog I would be concentrating more on the Plan, Code, Build, Test, and Deploy phases of the lifecycle. It’s not that the other phases are not important, just that one blog is just not enough to do justice with everything put together. Also, it would make sense to cover the phases which are pillars of the software delivery cycle.

Plan:

You can use tools like Rally or JIRA for all the stakeholders like Product Management, UX, Engineering, and Management to collaborate for the planning of the software to be delivered. These are the tools where the features, user stories, tasks, epics, and defects get created. This is a very important phase from the Product Management perspective as all other phases in the DevOps lifecycle will get triggered once the planning is complete. Also, in this phase, the rest of the team will be most dependent on the Product Manager to define the use cases and create features and user stories that can get the rest of the team started on the work.

Code:

The default source control is Git these days and it helps the developers collaborate during the development. But at the same time the progress in the code development should get tracked in tools like JIRA or Rally where the Product Managers create and own the Features, Epics, Capabilities, or User Stories while the Engineers, UX, and Testers can create defects and tasks. Thus, helping the entire team collaborate and letting the information flow across tools. To help with this cross-tool information flow, Git integration is available both for Rally and JIRA.

Build, Test and Deploy:

Implementation of Continuous Integration, Continuous Testing, and Continuous Delivery with the help of automation tools and platforms is the key to the success of the final leg of software delivery in the DevOps lifecycle. Though these are taken care of by the engineering team and often the onus lies with them to implement this, but its correct implementation and success has a great impact on the quality, time-bound, and efficient delivery of the features proposed by the Product Managers. Thus, this makes Product Managers an equal stakeholder in it. It has a deep impact on the overall success of the product in the length which makes it important for the Product Managers to start taking interest in it.

There are enough tools and platforms in the market to help with CI & CD pipeline, like Jenkins, Hudson, Azure DevOps (Platform) to name a few.

Note: I intend to write separate blogs on Monitoring. Will update the link here, once the blog is posted.

Impact of DevOps implementation from Product Management perspective:

Faster time to Market

Implementation of Continuous Integration and Continuous Delivery pipeline ensures integrating of every piece of software getting developed and tested being integrated with your existing code and with automated integration testing in place it gets ready for production. As a Product Manager, this helps in a faster time to market for your backlog.

Fail Fast

Failing fast is very important for sustainable innovation. Not everything works as we would like it to work. A lot of the new features and products fall flat with the customers. And as a Product Manager, you would like to know this like yesterday. We can mitigate the risk of partially by-product discovery, balanced MVPs, etc, but still, nothing substitutes the actual market feedback. So, getting the new features, changes, enhancements to market fast, and getting the feedback quick can enable the Product Manager to take important decisions on direction and ultimately decide whether to improve, change or shelve. DevOps is one important piece of the puzzle that can help is faster collaboration and delivery of the piece of software that you want to test the water. 

Better customer satisfaction and experience

The popular phrases like “If you are not making mistakes, then you are not trying enough”, or “If you are not making mistakes, you are not innovating enough” essentially motivate us to embed the culture of innovation in the product teams. So, if you are delivering new features, enhancements at break-neck speed to survive the market, you are bound to induce some bugs. Some of these could be real showstoppers for your customers. This problem increases in magnitude if you are in the SaaS model.

So, having DevOps ensures fast, timely and quality delivery of those hotfixes, which restores your customer’s confidence in the product improves his experience and supports satisfaction in multi-folds.  

Scale your Operations

Growing product, expanding across geographies, and delivering your software across data centers throughout the world would require your operation to scale. Scaling operations has a significant cost attached to it and a lot of it rides on the flawless delivery vehicle for the software. DevOps becomes makes the delivery at scale possible. Continuous Integration, Continuous Delivery, Continuous Provisioning, and Continuous Configuration become the important pillars for the Operating at Scale.

Quality Delivery

Delivering quality software is of utmost importance and we all know about it. But if you are delivering a new piece of code at the speed of Flash, then your software testing should also match the speed. This can only happen if you as Product Manager encourage your engineering team to invest in test automation at all levels and for all forms of testing. From API to UI all code should have a corresponding test automation script. You have to ensure that those quick hotfixes or patches rolled out, do end up breaking anything else. But this should not hamper the speed of delivery, as this is even more crucial for the SaaS delivery model. Continuous Testing as part of DevOps has to become part of the development culture and you as a Product Manager has to encourage the engineering to invest in it.

Happier Engineering Team

Finally, a happy engineering team is very important for your success as a Product Manager. There can be many parameters to the happiness which you might not be able to control, but making sure the delivery process is established ASAP so that the engineers can concentrate on writing the code and innovating for the product is definitely a big tick in your checklist. And happy team means happy customers.

So, as Product Managers we should take interest in DevOps for the sake of our product and more importantly, for the sake of our customers.

Cheers!