This is a guest post by Chris Riley, a technologist who has spent 12 years helping organizations transition from traditional development practices to a modern set of culture, processes and tooling.
In DevOps there are several processes and tools that go beyond their face value. System Analytics, Application Performance Monitoring, and Continuous Integration (CI) go far beyond their core abilities. In particular, CI not only changes the speed and quality of releasing code, it improves communication and finds bugs in the software development process itself.
One of my biggest messages for companies moving to modern software delivery is the idea of being deliberate. Being deliberate means picking a culture, process, and tools that focus on results and how to attain them. Too often tools, especially those that are open source, are adopted on a whim without much forethought. This is the converse of being deliberate; allowing the tools to define the process and culture for you.
When organizations follow the ‘deliberate’ approach, they naturally get to a place where they move faster and what they have built is sustainable. A huge component of getting to this place is CI. No DevOps shop can survive without a continuous integration process. It allows front-end developers to participate in quality, find bugs before QA, test new functionality faster than ever.
The neat thing about CI is that it goes beyond its process, and actually helps with being deliberate. After all, you cannot be deliberate if you do not have the full picture. CI enables shops to be ‘deliberate’ by giving them a holistic view of what is going on, particularly in the middle of the delivery pipeline. If teams look at the analytics and trends in their CI process, they are able to identify the following:
- Are bugs trending up or down?
- Are releases more or less frequent?
- Is there a correlation between the backlog and bugs?
- Are application to system-level bugs taking too long to resolve? If so, this is a symptom of bad communication.
- Is there one repeating bottleneck preventing a release?
...And more. You could consider any of these as bugs to the environment itself. If you are able to identify the above trends, you can report on them - and if you can report on them, you can let the entire organization know the benefits of the new processes and changes to the development team.
DevOps is not a thing you ever complete, it’s an on-going process of optimization. The only way to optimize is to have the whole picture and means to measure the efficiency of the software delivery pipeline. Coincidently, continuous integration processes and tools help you do this. Leveraging the process data out of these tools and comparing them over some set time period will help you know if your software delivery pipeline is getting better or worse.
About The Author
Chris Riley is a technologist who has spent 12 years helping organizations transition from traditional development practices to a modern set of culture, processes and tooling. In addition to being a research analyst, he is an O’Reilly author, regular speaker, and subject matter expert in the areas of DevOps Strategy and culture and Enterprise Content Management. Chris believes the biggest challenges faced in the tech market is not tools, but rather people and planning.
Throughout Chris’s career he has crossed the roles of marketing, product management, and engineering to gain a unique perspective of how the deeply technical is used to solve real-world problems. By working with both early adopters and late, he has watched technologies mature from rough solutions to essential and transparent. In addition to spending his time understanding the market he helps ISVs selling B2D and practitioner of DevOps Strategy. He is interested in machine-learning, and the intersection of BigData and Information Management.