 Well good afternoon and thank you so much for having me here as our announcer said Microsoft is a bit new in the open source world and it's a great pleasure for me to be here at the open source summit representing 15,000 Microsoft employees actually contributing to open source projects in GitHub last year. Just a very quick intro of myself I have just spent I have just crossed my 25 year mark with Microsoft. I started as a developer working on Microsoft Office product and when I think back the kind of transformation that we have gone through just a few years ago as a developer in Microsoft if you want to look at open source code you will actually need to have approval from your VP to do that. That was not very long ago and let me just tell you a story about we open sourced our C sharp compiler in April of 2014 so that's three and a half years ago. As we were getting ready for that particular plan we discovered that we will have to go give the source code right of the C sharp compiler that we built to another legal entity inside Microsoft and I have to tell my compiler developers that they have to sign a contract to become contractors of this other Microsoft legal entity and as you can imagine the my compiler developers were very confused so they came to me they're like what does this mean? Does it impact my benefit? Does it impact my rewards? Why do I have to do this? I'm like don't ask just sign right here that's what we need to get done and that needless to say that we have come a very very long way from those days and age and that was really only three and a half years ago and we have made significant pivot in such a short amount of time and I'm really proud that you know my team my division have led the way for overall for Microsoft embracing open source in a pretty significant way. We have a number of very successful projects including Visual Studio Code including .NET including TypeScript as part of the GitHub community and we have also partnered very closely with many open source communities as well as commercial partners in a broad set of open source project like Node like Kubernetes like Linux etc etc and today I'd like to share some of the lessons that we have learned in this rapid cultural shift and kind of transformation that we have actually been on and what I think about the open source attempts that Microsoft tried to make you know a few years back we were very naive we really thought about open source meant source only we were very focused on hey there's source code for developer to access and use and we took the meaning of open source quite literally and today when we really think about what open source project actually means we're looking at all the different aspects of being open and taking a much more holistic approach about thinking about this and another story from our own journey when we were planning to open source .NET which happened in November of 2014 we when we were looking at what does it take from an engineering perspective to make that happen one of the first deep realization we had is that we have to go make the entire internal engineering system available in the open and this is so that once the source code shows up in GitHub the community can compile the source code and run our tests to validate their changes and make sure that the compatibility is still there you know etc etc so having the engineering system being available is actually prerequisite of having a successful open source project and for us we had a proprietary engineering system that is Windows only we have spent a decade working on it so the effort of taking this engineering system make it available targeting making sure it works on Mac and Linux was the enormous amount of effort what we end up actually doing was that we decided to really sunset a lot of the internal tools that we were using and opt for open source tools by and a large and but there were a number of critical core internal tools that we end up having to open source and make it cross-platform ourselves so the community can actually actively engage in the .NET project when we actually made the open source and the second key decision when we look at the .NET open source effort was in how open we want to be and it sounds a little funny maybe but we actually studied many of the very large and popular open source project to see how the development was actually being done and you will find that some of the very popular open source project the way it was actually done is that the development happened behind closed doors it was happened internally and when we're done with a major release the entire source code kind of get copied out to the you know get her review for the community to see and you know and you're welcome to make bug fixes maybe and then there are some other open source project where the entire team will actually work in the open so when we look at these practices the decision we made is that we not only want to have the entire engineering team doing everything out there in the open but more importantly we really want to embrace the community in helping us in working on our roadmap together we want our roadmap to be designed in the open we want the architectural decisions we make to be discussed in the open we want feature requests and the prioritization and all of these design decisions to be completely discussed in the open so that's a very different approach and mentality approaching open from our early days of just thinking about open source and nearly as to say you know work entirely in the open was a huge cultural change for engineering teams we have a lot of seasoned engineers who have spent many moons you know in microsoft even with the best intentions the team in the beginning really struggled quite a bit with old habits and behaviors you know microsoft for good or bad we're a very email-centric kind of company we love we send a lot of email to each other and we love a lot of face-to-face meetings and for many years our proud decisions were made in conference rooms behind closed doors the architectural decisions were designed and discussed on whiteboards in our buildings so the question now we ask ourselves in this new open and transparent world is that how can we get a community to really understand the context and the rationale for some of these changes we want to make to the core base and really give us very rapid feedback in this whole process and so we took we made a many experiment on being transparent with the community we feed it and one of the one of the best practices if you may that we're starting to kind of you know using more is that we would collect ideas and discussions and topics and issues will actually get community to vote on some of the most popular requests we should put proposal out there and for the community to discuss and as an example the ASP.net team would actually record a weekly stand-up every week to talk about what are top issues that they're facing what is sort of planned for the next stage and they will just put it out on youtube and we get like well over five thousand views every week and then you know comments from the community about what they like what they didn't like questions etc and we have found that to be a very very helpful form for our own internal culture shift from an engineering perspective because for our engineers they are now in a with all of these engagement dialogue with the community they're getting a really deep sense of what are the customer scenarios they're building towards and they understand the impact of the source code change they're about to make and they develop this more emotional connection with actually the users in community at large and the other thing that we really benefited is this rapid and continuous feedback loop that we have even from the initial ideas we get feedback from the community and we you know for many of our product we have you know insider channels or preview channels where the community can get it very early they get to play with our early implementation and give us feedback and then once the product is actually released many of our community members are actually our best product advocates and they help us you know champion our the product so we have you know with this set of changes it really helps us to get the very fast validation of our plans and help us to de-risk the plans we're making and the other element as we realize just like everyone here who are you know in the open source summit we clearly realize that you know a community-centric approach brings a lot of value even then I have to say that we were very surprised by the magnitude of the value we actually received let me tell you another story also has to do with the .NET open source effort when we after you know going through a huge engineering system change and all of that as I mentioned earlier we put the source code out we made big announcement you know in our November event and you know we were top of Hacker News and one of the things we did to put the source code out is that we you know it was our intention to make you know this .NET work on Linux and Mac but our initial source code we released had many many gaps in terms of implementation in terms of APIs to make it fully functional product for Mac and Linux two days two days after we open sourced the product on GitHub we got a massive pull request from someone in the community which had the lion's share of the Mac implementation in his pull request we were astonished because our own team you know they were kind of estimating what take us a couple of months to kind of get to that level of completeness and we were humbled because honestly you know being Microsoft this is three years ago when we put something in GitHub we really didn't know whether community will pay attention they will actually look at our source code we were amazed and humbled by what the community has done and from that moment on it will really help us realize that just develop in the open which means our own engineering team development open is just not enough we really want to become community obsessed and we want to really work on how we can make community an extension of our team and really think about how we can make it super easy for the community to contribute to our repos to raise issues to have a dialogue and so there are many different practices we actually tried to you know a read to kind of achieve to that state one of things as we learned participating other open source project is that when we submit a pull request sometimes it says there for a long time and didn't really get looked at so we kind of instilled a internal SLA to look at like you know if the community making a pull request we want to respond you know in like 24 to 48 hours and not let lead people hanging and that's kind of the courtesy you will extend your own team anyways right and so we're like this is the same thing we will do with our community contribution when the contribution come in sometimes there's a very active dialogue going on the pull request there's lots of back and forth and we really work on give very detailed pull request comments about which part of scene works which part of scene are issues and I think that we have got really awesome feedback from the community that through this dialogue with our engineering teams they got a much better understanding of the core base you know of the of the scenarios etc some of the other things we have tried to do is that we also put a code of conduct out there for our for our for our open source project this is to make sure that we really get the broadest the most inclusive community participation and you know again this is very similar of how we treat our own teams and from a numbers perspective we kind of rethink about what success metric looks like in the past as product engineers we think a lot about how many new features we have released right that's that's what we're really proud of and now with a lot of open source project we also think about how many community contributors are part of our overall process and so for things like visual studio code the team spends up to 40 percent of their time triaging thousands of community feedback and issues every month and and also it's not surprising for visual studio code they're among the top 10 on all of the github projects in terms of total number of contributors to github I mean to visual studio code and for dotnet we're also very blessed that we have you know 60 percent of our pull requests actually come in from non-microsoft employees and the number of the contributors in our top 10 top 20 contributors are external to microsoft and so we really have you know benefited greatly from the community participation and from our engagement with the community lower the barrier to participate and as we transform from a from a company really of kind of shipping box software you know product which is built on proprietary software code that's what we used to do to a company that is much more open that is cloud centric that really embraced community we have learned as i mentioned many practical and cultural lessons initially we also thought that many of the lessons learned were very unique to microsoft we're like we're kind of our own beast and kind of much to our surprise as we're talking to many of the enterprise customers as we discuss their journey to have their own digital transformation with their journey of embracing and use more open source it turned out that maybe we were not as unique as we thought we were many of the lessons we were learned were very well or very applicable in the enterprise in the enterprise settings as well enterprises wants to embrace open source they want to increase the agility of their deliveries and they really found want to focus on you know very differential value to deliver to their own customers so the kind of concerns they have in terms of compliance you know scale security etc are actually quite common and we had dealt with many of these challenges in our own journey so microsoft has become a really trusted advisor to many of our enterprise customers in their own kind of workforce you know transformation and from those dialogues with our enterprise customers we have also learned a lot we learned that while they were very very interested in using a lot of the open source software but in the cloud context they're really not particularly interested or invested to figure out how to take open source and operate in the production and planet scale and you know they're not particularly interested in figuring out how to take open source software make sure it kind of meets all of the compliance and certification and all of these things which are the backbones of being an enterprise and so for us the solution to that particular you know customer pain point that we actually developed a whole set of managed services in Azure in our cloud which is you know developers can use mongo db they can use hadoub they can use spark they can use mycicle etc and by microsoft developing a managed service the enterprise no longer have to worry about doing these kind of end differentiated heavy lifting they can really just focus on delivering value to their customers and another key area for us to focus on being really focused on developers is to say how can we really have super simple and productive experiences for developers to develop their open source and software or based on open source stack and a couple examples some of you you know have been talking quite a bit about visual studio code which is our open source and and a cross platform editor and you know even from the get go we had great node development in visual studio code and one of the other extensions we produced is actually go so we see all of these you know go developers using visual studio code and you know they love the simple productive experiences and another example we have is that you know from a service perspective we recently just g8 the the the Azure app services for Linux so if you actually produce a you know your Linux Python whatever code in a container you can very easily develop and test and deploy that with a managed service like app service and just erase a lot of burden of dealing with SSL dealing with deployment slots and help you make your life easier building on top of open source stack so that's another set of value proposition we think that as Microsoft we can deliver and to really help the overall ecosystem and as I also reflect and think about sort of like the overall role that net had to play in the overall customer adoption of open source I mean it's really not a loss that among all of the popular developer platform done that was the last one to become open source and to become cross platform and now we finally are there we're actually very excited that we have really helped brought the overall open source ecosystem together and it really enabled developers new and oh to download to leverage this technology to be a broad part of solution that's leveraging open source a story I like to share in this case is there's a very popular gaming company the second largest gaming company in China and the name of the company is netties they were actually working on a new mobile gaming title for them and for a lot of mobile developers you were in a particular in the game scenario you know you might know that unity is a very common platform people use and the code to to write for unity is actually C sharp and dot net and so what they have done is that because we have made net open and cross platform they were able to now pick net as the back end implementation for this particular county in the for this particular you know game where historically they have always used you know either java or c++ in this context so when they actually picked c sharp and net they actually got fantastic sharing of code between their front end mobile games and their back end sort of you know back end infrastructure they can reuse the entire linux infrastructure they have previously built on see you know targeting c++ and java in terms of monitoring all of those things and it just runs down that code so in this way when the ecosystem come together our customers wins they really get to pick the best technology that you know that fits their purpose so I just want to say that our we're still on our journey of cultural transformation even though we have made drastic changes in a very short amount of time we're far from complete from our changes and we really appreciate your continued support collaboration and participation and feedback and thank you for giving us feedback and help us being here and in the last couple of years and we really look forward to being an even more active member of the open source community thank you very much