How we saved $1,000,000 for Microsoft with this one, small change

British Cycling Team - 2012 Olympics

Everyday when I am doing some small bug fixes or minor improvements I am thinking about the British Cycling team. They dominated 2012 Olympics thanks to marginal improvements. Such as cleaning hands properly, taking their own pillows when traveling or sleeping in the right position. All of these small things put together resulted in 7 out of 10 track cycling gold medals.

It turns out that the same strategy might work in software development. Especially if you work on large project.

1 million dollar improvement

In Azure Portal we have hundreds of developers working on one codebase. We are using MSBuild to perform builds. With default options, MSBuild was printing out to console a lot of logs that weren’t very useful. When you are building project, you are usually interested in errors. It turned out that changing verbosity of output speed up builds from a few seconds to a few minutes depending on the project that is being built and type of the build (incremental / rebuild all).

Taking into account that there is at least 100 developers working everyday on the Azure Portal (in fact there is much more, but not everybody is working on the Portal full time), and assuming that everybody is performing at least 20 builds per day (savings up to 30 seconds per build), and 4-5 full project builds (savings around 1-2 minutes), every developer can save around 20 minutes everyday!

This gives us:

100 developers x 20 minutes x 240 days working days per year = 480,000 minutes = 8,000 hours

Assuming ~$150/hr  it give us total savings: 8000*$150 = $1,200,000

Incremental changes over years

When I am looking back, I am impressed how much the Azure Portal have changed over last two years. This is portal in 2014:

Azure Portal in 2014

This is portal in 2017:

Azure Portal in 2016

We haven’t done any breakthrough changes overnight. I have never had a feeling that one day resulted in some significant difference. It was 1 step at the time, one small bug fix one day, one tiny part of new feature another day.

Small improvements every day, everywhere…

This applies not only to large scale project. Think about Open Source. Even when you are doing documentation improvements for ASP.NET docs, you can save time for hundreds of developers. You are not saving particular company’s money, but you are saving our (developers) money and what’s even more important, time that can be invested somewhere else.

Another great example of small incremental improvements is John-David Dalton. Creator of lodash. He is contributing code on github every(!) day for a few years now. This is his github contributions chart:

John-David Dalton contributions

No white squares. Some of his daily commits are tiny, some are small. By being consistent every day, over years he was able to create one of the most popular JavaScript library.

What small improvement can you do in your project? Think about it, and remember that best ideas are born when you are away from your computer!