Owning Your Code is Better
The role of the software developer has changed tremendously since the craft of creating software began. In recent years, this change has accelerated dramatically, with the developer’s role expanding beyond creating and running code in local environments.
In today’s world, the developer is often:
- Ideating with peers across various departments
- Designing and creating software
- Designing unit, functional, integration, load, and other tests
- Securing their software and applications
- Deploying across distributed environments
- Maintaining the software they just created in the wild
- Going on-call to support their software and applications
This is how we do things at PagerDuty. I can tell you from my personal experience here and in the past, that having each developer empowered, supported, and encouraged to own the entire lifecycle of their code increases your chance of success. This success spans to customer satisfaction, value realized by the business, product quality, and most importantly: your developer that sits right on the edge with your customer is productive and satisfied.
Distributing the Operational Ownership: Our Journey
When I arrived at PagerDuty nearly two years ago we were in the midst of a transition. We started the journey towards working in a more agile and nimble manner. We also had a distinct split between what was considered to be development related and operations related work. While we were working with a DevOps mindset, our roles and responsibilities didn’t reflect this as closely as we wanted. Keep in mind that during this two-year period we have nearly tripled the size of our product development organization. More people usually means more problems, but not in our case.
We made a commitment in early 2016 to distribute the operational ownership to all developers in the company. We invested in knowledge sharing, tools, infrastructure, and more automation to enable each developer to own their code from idea to delivery to managing your code in the wild with customers.
We had a belief that integrating both development and operations work and providing more control and ownership to the developer would improve time to market, innovation, and quality. And it did. We saw the following when comparing 2016 to 2015:
- 45% increase in number of changes deployed to production
- 25% reduction in major incidents that impact customers
- 50% reduction in Mean Time To Resolution (MTTR) of major incidents
- Less silo-based knowledge centers
- Teams were better equipped to deliver across product and technology
What we’ve learned about distributing the operations ownership of the work across all developers is that each developer is in a better position to deliver for the business. Developers have better tools, more knowledge, more ability to affect the change required to continuously improve in all dimensions.
Being Accountable for Outcomes That Matter
Technology teams across all companies are being asked to accelerate everything they do for the business, and the business requires faster delivery cycles to be competitive and successful. Developers are most successful when they are empowered and accountable for outcomes that matter. With advances in tooling, cloud computing, and numerous platforms that make all of this possible, developers are naturally getting closer and closer to the end user and customer experience. In fact, you can even say that developers are the true owners of the end experience and are in the best position to affect change. All of this is great news for developers across the globe.
As complexity increases with what teams leverage in order to design, build, and deliver great software, it’s important to simplify and clarify ownership. Some may prefer to have other developers act as a front-line team and handle much of the noise for them. I’d rather see energy and efforts applied towards helping the developers across all teams be supported by automation, streamlined processes, tools, and best practices. You can get far more leverage out of your organization this way. Unnecessary complexity and manual hand-offs only get in the way of progress and continuous improvement.
At PagerDuty we know that when developers own their code and are well supported to do their best work, everyone wins.