CODEMINE: Building a Software Development Data Analytics Platform at Microsoft

Jacek Czerwonka, Nachiappan Nagappan, Wolfram Schulte, Thomas Brendan Murphy

IEEE Software · 2013 · 67 citations · 8 references

Concepts

TL;DR

The rapid scale of modern software development imposes constraints on decision‑making across planning, implementation, and maintenance, and access to relevant data can accelerate and improve those decisions. The article describes Microsoft’s process for building CODEMINE, a platform that collects and analyzes engineering process data. The authors explain the constraints and pivotal organizational and technical choices that guided CODEMINE’s design and implementation.

Abstract

The scale and speed of today's software development efforts impose unprecedented constraints on the pace and quality of decisions made during planning, implementation, and postrelease maintenance and support for software. Decisions during the planning process include level of staffing and choosing a development model given the scope of a project and timelines. Tracking progress, course correcting, and identifying and mitigating risks are key in the development phase, as are monitoring aspects of and improving overall customer satisfaction in the maintenance and support phase. Availability of relevant data can greatly increase both the speed and likelihood of making a decision that leads to a successful software system. This article outlines the process Microsoft has gone through developing CODEMINE--a software development data analytics platform for collecting and analyzing engineering process data—its constraints, and pivotal organizational and technical choices.

References

8