As IT world is becoming more and more competitive and resources scaling up more than ever, it becomes important to have an awesome monitoring system that can track every damn application and process. However, instead of a combined effort of Devs and Ops, monitoring is implemented by Ops teams alone. While Ops team is responsible for the release process and preparing and maintaining networking and servers in production, Dev team is responsible for maintaining the applications they write after they are in production. This makes essential for both teams to collaborate and work together to be able to drive things into a correct direction.
That’s where MDD – Metrics-Driven Development comes into play, an approach where metrics are used to drive the entire application development, and measure everything from performance to usage patterns and revenue.
There are three key principles of Metrics-Driven-Development:
1. Assign metrics to metrics owners
2. Create layered metrics and correlate trends
3. Use metrics when taking decisions
Whatever numbers of metrics an organization uses, it important for each metric to have an owner, who has the knowledge and means to implement and maintain certain metrics. Those metric owners keep existing metrics up to date and create new metrics for each new application or functionality.
“MDD brings visibility to the whole development process, so decisions are taken quickly and accurately and mistakes are spotted as they happen and fixed immediately. Furthermore, everything that can be measured can be optimized. In other words, MDD enables you to feel the pulse of applications and provides you with an opportunity for continuous improvement.”
So how does MDD help an IT enterprise, especially DevOps teams? Here’s how:
Developers can easily spot when an application behaves differently from expected as they possess all the knowledge about the products they develop. This allows them to monitor application processes, get quick feedback, and grow their infrastructure knowledge. Similarly, Ops teams can work with Dev teams so that monitoring task is not left only to them. It becomes a collaborative and combined effort.
These metrics could be anything from Business metrics, Application metrics, and Infrastructure metrics, depending upon the organization. You can use these metrics to take decisions that are obvious, logical and simple to explain, and hard to refute. The best part is that MDD keeps misunderstandings to the minimum. Moreover, communication between the teams becomes less emotional and more data-driven, which undoubtedly improves relationships within teams, creating a win-win situation for all.