The reasons behind Microsoft's drive for open source

Change in culture

Rather than changing the commercial basis of Microsoft's business, open source at Microsoft is about a change in culture, collaboration with the open source community – and the cloud.

As Brian Harry, who runs the Visual Studio Team Services developer cloud service, puts it: "We are broadly, as a company, changing to very open development and embracing the community to help us further extend the development of our technologies and tools. You're seeing a lot of that with .NET – we're getting the community to take small work units, branch the code and take it to new places."

Originally, the .NET team was expecting the open source work to concentrate on Linux, but once the community picked it up they quickly started porting it to OS X as well – far sooner than the .NET team had expected.

As Microsoft has opened up generally, to partnerships and cross-platform support and a more cross-division way of working internally, open source has spread internally – and that includes 'internal open source' where other Microsoft teams get access to source code that a product team would once have kept to themselves.

The Office team has been doing a lot of Android and iOS development on mobile apps recently. They took a copy of the VSTS build system and added the features they needed to handle things like code signing – and passed that code back to the VSTS team so they could make it part of the commercial service.

Former enemies like Red Hat are partnering with Microsoft

Former enemies like Red Hat are partnering with Microsoft

Opening up TypeScript

Some early open source projects at Microsoft have helped spread this open source approach, in particular the JavaScript tool TypeScript, which started out as an internal tool that Microsoft created to solve its own problems with large web projects like Office Online, turned into a technology it made available to developers and other projects, and has now moved to not just open source but also open design.

"For our first year we did a lot of our design in-house behind closed doors," the former head of the TypeScript team Jonathan Turner told techradar pro. "It was secretive but not in any nefarious way; it was just because that's generally how we in Microsoft had done design. We'd try to design something as best we can and then put it out into the world.

"As we learned to do open source better, we started doing things like moving to GitHub and then we took our design process open. Rather than me writing a ton of specs behind the scenes and hashing them out with the team here, we said 'no, everything becomes pull requests, everything becomes bug reports'. All the proposed new features become public knowledge and everyone in the community can come and comment on them."

That goes beyond people being able to read the design documentation to understand why TypeScript does something in a specific way, or what's in development. The design process is also open to the community, Turner explains. "If you have a suggestion, if you want a new feature in TypeScript, you can come and interact with the team and say 'here's my idea and here's why I think it's a good idea', and if the team says 'yes, it's a great idea' then you can send us a pull request."

That same open design process happens with .NET – it's a sign that Microsoft gets the value of open source.

Contributor

Mary (Twitter, Google+, website) started her career at Future Publishing, saw the AOL meltdown first hand the first time around when she ran the AOL UK computing channel, and she's been a freelance tech writer for over a decade. She's used every version of Windows and Office released, and every smartphone too, but she's still looking for the perfect tablet. Yes, she really does have USB earrings.