24
1

Microsoft .NET's Voyage into Open Source

Embed Size (px)

Citation preview

1

Traditionally, Microsoft has been like a rocket shooting for Jupiter…we set on a straight path and are in space for years before we finally make landing.

2

The modern Microsoft is now set to navigate the agile and changing world of open source development, and we want to do it well.

3

In order to truly do open source well, we need to manage three tensions of open product development: Maintaining Product Direction, Reconciling Salaried and Passionate contributors, and adapting to distributed teams

4

In this talk, I'll introduce how we set out on this voyage and where we are today. Then I'll talk about our approach to navigating the three tensions. And I'll conclude with a look at how well our efforts have panned out so far and where we hope to do better.

5

Microsoft’s open source journey began over 10 years ago when we open sourced WiX on SourceForge in 2004.

6

Since then we have been involved in open source in three main ways:-contribute (.NET, TypeScript)-integrate (docker, cordova)-interop/tool and platform interoperability (github integration, web frameworks)

7

Today, the .NET team is primarily leading the modern Microsoft’s voyage into open source effortsThe .NET Foundation is similar to the Apache Foundation.13/35 projects in .NET FDN are external

8

Roslyn project background. We wanted to go fully open source from beginning but made sense to go piece by piece as we were working.Community helped make course corrections along the way

9

Biggest step was moving from source open model to fully open source (adopting community workflow)

10

Taking a broader look at some of the .NET open source repos, we can compare the new user growth over time to Joyent’s Node.js and the Mono ProjectThis volume of community growth, leads us to our 3 tensions of open product development….

11

3 tensions arise from the volume of community interaction

12

(1) How to do product development in the open without being randomized by community interactions?

13

First C#7 design notes inundated with community engagement! (awesome and high quality, but how do we have time to address all comments?)How to stay productive in the face of all this feedback???

14

Channel the community interactions with roadmap (only works for PRs and feature requests).How to improve our language design model? Look at Rust, maybe?

15

(2) Salaried Internal vs Passionate contributorsWhile both are passionate, their root motivations mayyyy be different. People inside large companies are always moving around. People get promoted, move teams, or leave the company.Tension is as much about big companies learning how to work with OSS community as about OSS community learning how to work with big companies.

16

Example of super passionate community contributor who ported CoreCLR to Mac OSX within 4 days of runtime being open source.

17

(3) Distributed teamsHow to keep energy high when core team operates in a different time zone than parts of the community?Visual F# team does online meetups—hard to get a time where everyone can get involved. Do 9am but this shuts out some developers…

18

Recap 3 tensions

19

Efforts navigating tensions and fostering community have gone well so far.

20

This is a compilation of advice from our team members who have been active participants in open source and knew how we should interact.

21

We are all a team. We are all the community. BE RESPONSIVE.The more responsive you are, the more patience the community has with you.Community told Roslyn we weren’t responsive enough early on, so we measured our response rates under new model on GitHub.

22

Have fun! Cup campaign for Roslyn code contributors.

23

We are still learning. A couple weeks ago we made a graphic for the roslyn repo because what open source project doesn’t have stickers?!Generated a lot of push back and nervousness which made me realize the extent of the changes that are happening. Microsoft is a HUGE company has teams fully committed to open source.This sticker example best illustrates my final point, which is that embracing open product development is a culture and workflow change not just for engineers, but for the entirety of Microsoft. Marketing, HR, management, the legal department, and engineers alike all have to adapt to a new way of working and thinking. We are all still learning and our journey is far from over!

24