The FINANCIAL — Two Microsoft developers walk into a bar, order $2 Pabst Blue Ribbon tall boys, and talk code, according to Microsoft. Similar scenes probably play out every evening in Seattle, so there was nothing remarkable about the night in January 2009 when Clark Roberts and Mike Cook met up at Sully’s Bar.
But most happy hours don’t spark a project that’s used by developers in every division at Microsoft and will ship in one of the company’s major products. This one did. That night marked the start of CodeFlow, a collaborative code review tool that has been used by 28,000 developers across Microsoft. It has won a host of internal honors, including a 2011 Engineering Excellence Award, and is being incorporated into the next release of Visual Studio.
The story of CodeFlow is about a side project that saves developers time and has seen hockey-stick growth at Microsoft. But it’s also a story about grassroots innovation: how two employees didn’t give up on their idea, found a community that supported them, and joined forces with a senior architect to build a useful tool not just for themselves or their teams, but for the whole company. That night at Sully’s, Roberts, a software design engineer in test for the Windows Communication Foundation team at the time, and Cook, a software design engineer on the Windows Presentation Foundation team, found themselves griping about a shared headache: code reviews. Thousands of engineers at Microsoft do code reviews every day. The systematic analysis of lines of code helps find and fix bugs and improves the quality of software. Roberts and Cook agreed that the process was necessary and beneficial.
They also agreed it was tedious and painful. There must be a better way, they thought, and the pair dreamed up ways to simplify the process. The next day, Roberts and Cook typed up their thoughts into a proposal. They envisioned a system that would streamline the process of comparing code iterations and enable developers to collaborate on code reviews in real time.
They tinkered on the project during nights and weekends and built a prototype. When Roberts’ team held an app contest in the summer of 2009, they submitted CodeFlow and crossed their fingers.
They didn’t win.
Undeterred, they kept coding and completed the initial feature set. Another contest came up in October– the Developer Division’s App Idol – and this time CodeFlow took first place. As a result, they were invited to demo their project for Jason Zander, corporate vice president of Visual Studio. They also demoed at the recently launched Garage, a program that fosters grassroots innovation at Microsoft by bringing together employees working on side projects. Victor Boctor was one of the employees in attendance. Boctor, principal architect for Exchange, had been thinking about building a similar tool for his team. He approached Roberts and Cook and asked if he could work with them.
The two entry-level employees were thrilled. “You don’t see a lot of people at the senior levels reaching down and helping out with a project like that,” Cook said.
Boctor had long listed shared source projects on an internal resource known as CodeBox, and he was excited about the Garage community and the chance to find like-minded individuals – “doers, not talkers” – from across the company. With Boctor on board, the CodeFlow team started to expand their reach. From the beginning they wanted to take CodeFlow companywide. Boctor helped them design CodeFlow to be simple: “Someone should be able to see a demo in one minute and then be able to go back to their office and submit or consume their first code review,” he said.
They also wanted deployment to be frictionless. Teams wouldn’t need to set up their own server or even need to set up the tool; as soon as someone submits code using CodeFlow, all the reviewers get an email with a download link. CodeFlow was designed to go viral.
But first they had to convince people to give it a try. Cook said that was no small task. Every team at Microsoft essentially had their own code review tools or used different versions of the same tool. At first, the three convinced their respective teams to try the tool. They kept working out the bugs and started to present at Garage events such as the Productivity Science Fair and Developer Tools Pavilion, where they found more users as well as volunteers to help add features. To date, more than 40 employees have contributed to CodeFlow as a Garage project.
Team by team, CodeFlow started to spread across the company. Over one 18-month period, developers from every division at Microsoft launched more than 2 million code reviews in CodeFlow. If each review saved a developer five minutes, the savings would add up to about 300,000 developer hours – or 160 developer years.During the Visual Studio team’s customer research, code review emerged as a top feature request for the next release, said Tim Wagner, platform development manager for Visual Studio. CodeFlow’s next contribution to Microsoft will be as a working model for the Visual Studio’s code review feature. The usage data the CodeFlow team collected was particularly valuable and helped the Visual Studio team get a head start, Wagner said.
The CodeFlow team sees the integration into Visual Studio as the latest in a long line of successes. CodeFlow has improved the team’s day-to-day life, for starters; reviewing code isn’t such a pain anymore. They also learned skills they’ve wouldn’t have in their day jobs. Roberts and Cook have had broad exposure with senior engineers across the company. Boctor said CodeFlow has helped scratch his open development itch and has “served as a landmark that says yes, we can do this successfully at Microsoft.”
Discussion about this post