REDMOND, Wash. — Jan. 5, 2012 — Two Microsoft developers walk into a bar, order $2 Pabst Blue Ribbon tall boys, and talk code.
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.
Victor Boctor, Clark Roberts, and Mike Cook took CodeFlow from an idea in a bar to a tool used by developers in every division at Microsoft.
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.
“I hope the story inspires people to keep innovating,” Roberts said. “There are projects like this all the time, and most just fizzle off because people get tired or didn’t have the right direction. Somehow we were able to land three people who were willing to burn nights for a couple years cranking out this thing we all believed in.”
Similar Passions + Diverse Skills = Magic Combination
That night at Sully’s, Roberts, a software design engineer in test for the Windows Communication Foundation (WCF) 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.
CodeFlow streamlines the process of comparing code iterations and enables developers to collaborate on code reviews in real time.
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.
“I think what the Garage does is bring together people with similar passions and diverse skills,” Boctor said. “I think that’s a magic combination.”
Designed to Go Viral
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 (reviewing the code with CodeFlow, of course) 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.
28,000 Users and Counting
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.”
A Recipe for Innovation
Asked for the keys to their success, the team admitted some of it was building the right tool at the right time. But they did identify several lessons they’d pass on to anyone interested in reproducing Code Flow’s success:
Back up your idea with action. Everyone has ideas. Doers bring them to life.
Don’t give up when at first you don’t succeed. CodeFlow lost the first contest.
Design your project to be easy to try and easy to adopt.
Be prepared to play the role of engineer and marketer. It doesn’t matter how great your project is if nobody knows about it.
Find collaborators. For those at Microsoft, the Garage has a community of more than 2,800 employees who may be willing to lend a hand.
The team will keep that last point in mind as they tweak and add features to CodeFlow. Everyone at Microsoft who wants to contribute is more than welcome. “We believe deeply in the open development model,” Boctor said. “That’s because we believe that everyone at Microsoft is here for a reason and everyone is smart. That worked very well for us.”