 Hi, my name is Martin Woodward and today I'd like to talk to you about Microsoft's journey in open source you know open source software is enabling organizations and and individuals to collaborate to to build to create better solutions for our businesses, but also for our communities across the world and You know, it's creating new ways for all of us to work together There's massive advantages to sort of building solutions to our common problems in the open However, the new way of working does kind of bring new norms and a need for new tools and need for a common understanding of how to work and Microsoft's deeply committed to helping, you know, our customers and the community build better solutions for open source and so in this talk I kind of I wanted to talk about the value of open source But also how Microsoft works with open source, you know, and why Microsoft works with open source I also want to talk about how that approach has changed over time and how working is in open source has helped change the culture of Microsoft for the better really I Started in Microsoft a while ago and I've had, you know, been a part of this journey for a long time I actually used to look after the coplex website, which was Microsoft's hosting platform for open source But the first open source project from Microsoft was actually released on source forge It was a thing called the the windows install a toolkit or wix that was back in 2004 coplex came along 2006 started contributing to the Linux kernel around 2009 and then It's about 2012 where we actually started getting involved in the git project That's something I was heavily involved in and still I'm involved in I actually created the Microsoft org on github In 2012 and that was the first project that we created on github and that was TypeScript actually fun enough Which you know has become now massively popular That was that very first project and then also helped create the dotnet foundation and helped, you know Bring dotnet to the open source community and make it a full open source ecosystem Visual Studio code is obviously massively important and then in sort of 2017 we actually Got the windows team Migrated over to git for source control and that was a massive massive technological achievement But also, you know, think about that for a second The team that build windows build it in the version control tool That was you know, originally authored by Linus Torvouts the author of Linux So that was just like a massive massive change for me and kind of a Fundamental sign that the culture at Microsoft had really changed I was part of a github acquisition team in 2018 and I now work over at github helping open source communities to be more successful and now Microsoft actually have well over 17,000 open source projects Hosted on github in the open, you know open source and this is a massive massive community That's across the world and in fact when we look at that global community on github We see it spread all the way across the world, but we see a really strong presence in Asia So thanks to everybody here. We're seeing huge amounts of open source contribution And when we look at the numbers of active users on github contributing to open source, we see Asia is Growing very very quickly and is about to overtake North America It looks like when it comes to the number of active users contributing to open source every year So fingers crossed, you know, this year's state of the octopus report. Hopefully we'll get there We'll see but open source is, you know, really changing kind of how we build software Not just for our communities and not just in the open But it's changing how we build software at work as well and in the enterprise If we look at the types of applications that we ship, you know over 96 percent of deployed Applications we see being deployed today Actually contain open source components and when we look at the amount of code that's being shipped You know 80 to 90 percent of that code is actually open source only 10 or 20 percent is the code that you wrote And that's a massive change from where we were, you know, 10 15 years ago at the start of Microsoft's open source journey And open source is kind of core to Microsoft's business It's core to how we build software at Microsoft, you know There's over nine and a half million kind of components used inside of Microsoft But in terms of contribution as well, there's over 40,000 Employees at Microsoft who have their GitHub accounts and are contributing to open source projects on GitHub And that's a massive change from again where we were at the beginning of that journey when I Created, you know, Microsoft's GitHub account in 2014 and this is a big big change where Microsoft is You know, we now have our CEO standing up on stage saying they love Linux, you know Microsoft believes the open source is a great differentiator for enterprises and and is deeply committed to open source because Microsoft's mission is to enable organizations and individuals to achieve more and Microsoft believe that open source is the fundamental part of this solution by creating open solutions You know, we not only enable our customers to build on the work we do We allow them to innovate more. We allow them to achieve more But when you look at, you know, why is Microsoft doing this? What are they doing? You know, they're trying to make open source work really well with Microsoft and allow our customers to do that And it makes sense, you know, if we look at Linux, for example Over 50% of the virtual machine cores deployed on Linux on Azure are Linux cores now Microsoft themselves over a third of the Microsoft cloud estate is actually Linux that running in the cloud And this is a massive change that any Improvement any investment Microsoft make in improving Linux and making it work better in Azure, for example Those cost savings those efficiency savings really add up across all of Microsoft's customers and across Microsoft's internal development themselves And so that that level of investment really justifies significant investment in open source It's a sustainable business strategy for Microsoft when investing in open source So how does Microsoft work with open source and why does Microsoft work with open source? Fundamentally it tends to fit into kind of three categories of projects The first category is actually related to DevOps and being more agile You know in the old days trying to get people to use the latest versions of .NET was incredibly hard You know getting people to upgrade use the latest bits And that meant getting feedback on those Latest releases of .NET was incredibly hard as well and was limited to a you know a reduced number of people By working in the open Microsoft are able to not just get feedback on the very latest release that they've shipped to customers They're able to get feedback on the latest commit They're able to get feedback before that commit has even been merged into the source code base And so that allows these teams these infrastructure teams to be so much more agile than they ever were in the past Another reason that Microsoft typically go towards open source is for when they need wide distribution So perhaps it's you know an Azure SDK Perhaps it's the documentation By making those available under a very permissive, you know MIT open source license for example That means not only can those SDKs and those Documentations and those source code samples and things not only can they be used in Private projects inside the enterprise. They can also be used in other open source projects They can be used, you know in open source projects under every different license And so when we want this broad distribution, then it makes sense to obviously go for open source Again, that's a change from how it was in the past And then finally you see Microsoft being involved in open source projects when there is, you know, a large market that uses kind of Open source standards open source mechanisms like Kubernetes, you know containers Linux Git that sort of thing and it makes sense for us to have the best hosting platforms for those types of workloads To have amazing compatibility to to be able to produce the best experiences for our customers And so again, that's an area where you'll see us contributing heavily to open source projects But there are times when I hear sort of dubious business goals about why we should be involved in open source And if you want to have a sustainable open source strategy You need to make sure you have a fundamental business goal for Working in open source and for contributing to open source Doing something because it's good PR is not a sustainable business goal Yes, you will get good PR from making something open source But that only lasts, you know till the next headline that only has 24 48 hours PR won't sustain the kind of long-term investment that the open source community needs and deserves And so PR isn't a reason to open source. It's a benefit of open sourcing Another kind of thing you get from open sourcing is goodwill, you know and goodwill is great People like the fact of open source, but again, you can't take karma to the bank You can't, you know use karma to pay for developers to work on things And so while you do get goodwill, it's not a business case for open sourcing And the final kind of dubious business goal I see around open source is people know that it's good for recruitment and it is people, you know like Seeing Microsoft working open source communities, they get to work with other developers from Microsoft They like to come and work for Microsoft So we definitely see working in open source helping recruitment But unless you've got a sustainable business strategy for building that thing in the open You're not going to be able to have any jobs for those people to come and work on So again, you do get recruitment benefits from working in open But it's not the business reason for open sourcing something You think about what your business goals are and how to make those around building communities in the open But you also need to make sure you've got policies in place to make it easy for your developers to You know use open source to consume open source responsibly respecting all the license conditions To contribute back to open source and to be able to release open source software Um, you know new versions of open source software Now consuming open source is usually a very easy sell to kind of manages in teams when they're getting used to it Well, how do you help convince them to contribute back to open source? And that's something I had many many conversations with different teams with over the years And the best way I found of explaining it is that um, the further you take without contributing back You're actually running in a fork and you're building up integration debt So as you're moving off in your own little private fork or something This project keeps going. It keeps getting new features. It keeps getting security updates And the longer it takes before you've got your code changes into the upstream project The harder it is to take changes that have gone upstream and bring them over into your project And allow you to take the benefits of consuming that open source library in the first place So if you don't give back you can't consume later And so think of kind of forking and think of not contributing back as building up integration debt And you want to keep that debt paid down and you want to you know, regularly contribute code back up to those upstream projects And to do that, you want to make it easy for your developers to contribute to open source You want to simplify your business processes? You want to have rationalized kind of legal business review, you know checklists or that sort of thing And you also want to build some internal kind of best practices on both consuming and contributing back to open source But remember when you're contributing back, you know, those maintainers don't owe you anything You know what I mean? Don't just arrive expecting your change to be consumed by that project If it doesn't take the project in a direction they want to go If it doesn't make have any benefits for them What's in it for them to maintain this code that you're giving to them? So you've got to you know, when making a contribution first of all Create an issue to make sure it's something the upstream project actually want to have changed And then when you do make those changes, you need to provide unit tests to show Yes, this does improve performance for everywhere not just on azure say but for everybody you want to You know give the reasons why you want to make it simple to review You want to make it easy to understand so that make this You know an easy decision for a maintainer to want to take your change and merge it into their project So then you can take all the benefits of all the other changes these maintainers don't owe you a thing at all So make it easy for them when contributing changes to the code And if you can't you know pay for developers to contribute changes to code to a make open source project and open source projects value Sort of code contribution over everything. What you can do is directly fund the project to maintain the code themselves Through open collective or through github sponsors You can pay open source maintainers You can give them a revenue stream to help look after that project And we actually have a fos fund inside of microsoft For funding critical open source dependencies and for projects that are sort of nominated by people inside the company And we send that money and we send it via github sponsors And hopefully allow those open source maintainers to earn a living and to justify some of their time that they're spending You know reviewing and keeping projects up to date Now one of the projects and one of the communities that I was involved in building was actually the dot net community as I mentioned And proud to say you know With the latest cncf survey dot net's now one of the top 10 sort of highest velocity open source projects But that didn't come overnight that itself was a long journey and kind of Had a few different stages along the way The first stage was just releasing the source code with an open source license But we weren't really accepting contributions We just released it and said here and allow people to look at that code allow people to find You know issues and sort of inspecting things But then the next thing that we did was actually we We opened the design notes. We Made rfcs We made design decisions in the open And got feedback from people and now we started getting you know quite a lot of value from open source Because we were able to get feedback not afterward shipped but actually on the spec on the design Which was great The next stage that we made was to kind of you know Allow people to send us pull requests But we had a private version of the code internally that we were working on And we would take those pull requests We'd merge them with our private code and then we'd make changes and then we'd push them back and then we'd distribute And again that was okay. It did a good job. We were able to you know get changes That was nice But the big change and where we saw the massive increase in the dot net community Is when we took the whole project and moved it truly into the open And we adopted that same community workflow for everybody on the project Not just the contributors that happen to live in microsoft but for every single person And that meant actually making the documentation better Sorry to tell you Just because you release something as open source doesn't mean you don't need documentation anymore You actually need better documentation because now your team Is asynchronous and is across the whole world It isn't just the people that happen to work for you and then the final stage in terms of You know making dot net open source was to kind of share ownership to give people the confidence in investing in open source and investing in the dot net platform Because they were able to say where that platform was going and they were able to you know be involved in the future of that project And that was kind of the fundamental lesson i learned really was to be part of the community Don't think of you versus the community you and the community think of you as part of the community that you are in um And if we think about how people contribute to projects and get involved in projects I often talk about the contribution funnel because 99 percent of people just consume your code And that's fine. They never come back But a small percentage of people will give you some time And then a small percentage of those people will give you some code and that's a massive gift and that helps you improve your project But you're not going to give code unless you've given time and you're not going to give time Unless you've got value from the project by consuming it So it's very natural that you know these are subsets of the people consuming and then the people contributing and then the people giving code And then finally a very very small subset of people who give code like she stick around and help you maintain Help you run that project And so you've got to think to yourself all the time like how do you maximize the number of people each stage? How do you maximize the number of people consuming the code? You know have a good read me make it easy to consume How do we maximize the number of people coming down that funnel so that we get more code into the projects? We get more involvement so we build a community Because you've got to remember an open source community is not a zero sum game You can work together with your competitors and build a solution that's better for everybody Not just better for you and if you make something work Well, you know if microsoft make linux work well on azure It doesn't make it work less well on a different platform It doesn't make it work less well in the data center. It works well better everywhere So it's not a zero sum game, but it does allow you to benefit everybody by making changes in the open And it's really kind of drove culture changes in microsoft and help, you know The team become a completely different organization And that was just a small small part of this overall massive team You know contributing to open source in microsoft And it was a you know an honor to be part of that journey and had a fantastic time So I want to thank you very much. Thank you for being here at forge asia Thank you for listening to this talk And also I want to you know, thank you for helping change the culture of microsoft One pool request at a time. It's a much more collaborative Much more inclusive much more open place to work And that's thanks to the community getting involved and thanks to the welcome that we've had here at foz asia And elsewhere around the open source community. So thank you very much. My name is martin woodward. Have a good conference