 Now we're cooking with gas. Thank you Everybody can hear me at the back. Okay, perfect. Thank you So I actually thought about a number of titles that were more interesting than the one that got the talk in I mean Lots of people worry about freeloaders in community now typically that Companies that are trying to do open source and all those people that aren't paying us money But still freeloaders. I'm gonna try and demonstrate to everybody freeloaders means you're doing it, right? I also was thinking of what the fuck, you know, because it's one of those things that again that we've been doing this for What? 25 years now 30 the free software foundation is 30 years old now and So one of the things I want to try and convey to people though. The reality is we've been doing communities Since you had a campfire and I wanted to sit beside it This we we understand how communities inherently work. We are a social species One of the interesting talks yesterday. John O'Bakin said, you know He really wants to get to the point where nobody has to buy the art of community anymore But the reality is no, we're actually a bunch of technologists. We aren't a bunch of political science Majors, we did not study Governance systems, so we're actually in a position where we need the book We do need some instructions and some formats and some templates for how to think about these things But I do maintain It adds a social species We've been writing we've been sharing software since we've been writing software The reality of this is this goes all the way back when I say Princeton there Von Neumann's original work on the original programmable computer in America They were sharing the software. They were writing as quickly with other a couple of other projects that were time-sharing at midnight with them Share from IBM started in the 50s deacus start in the 60s use Nick started in the 70s We've been sharing software since we've written software I remember going to my first deacus and shelling of $75 for a mag tape full of software That people were sharing with me You know so the network we had to share in those days was tape-sized packets on a you know Bi-annual conference kind of bandwidth We did not yet have the internet in the worldwide web But we've shared it for a long time and the reason for that is writing good software is hard work and You all you can almost get a feel for that with github right now You know you go to github. I can't remember how many million projects have repositories there of Which it's how many thousands are actually important of which how many hundreds are actually really golden places that you want to go participate in Two stories just to again try to set the tone of some of my experience I was at a usenix conference around 1999 and Saw a great talk from a guy that was doing an early community around Linux video drivers And he made the statement during his talk that there's maybe nine Developers on the planet that actually understand what you need to know to deeply work on a linux video driver That did not prevent them from running an open-source project and encouraging contributions in but It was a very small number of people and most of them were core contributors already. They were committers. They had right Privilege on the repositories and he said it's orders of magnitude for every thousand people you have using your software You know, maybe if you're lucky a hundred of them may give you some feedback of Which if it's a bug maybe ten of them will give you a patch of Which maybe one of them actually read your contribution guidelines and your coding guidelines and gave you something that was well formed So it's orders of magnitude. That's why I try and go back to this idea that freeloaders are important Brian prophet who was up on stage just before me gave a great example of a community We all live in towns or neighborhoods Most of us choose to live there and we just live there But some people are civic-minded from time to time. You'll want a dog park in the neighborhood Some people are a little more civic-minded all the time and they actually run for city council But a lot of us just live there second story I worked for Microsoft for five years 1999 to 2004 and I have the privilege of being the first guy to ever ship GPL code in a Microsoft based product Which was kind of fascinating we we brought a Product that was assembled out of open source before we called it open source Into Microsoft we were we were the Unix face on Microsoft on Windows NT This is not the sigwin project. This was something that was actually kernel integrated and so it was an interesting time to be at Microsoft because this was also the era of the Halloween documents and enormous paranoia at Microsoft around this free software and open source Stuff, but I got the the privilege of working on a project called rotor messes about 2002 We released a cut through the dot net framework that the runtime all of it So the base class libraries we basically built a reference implementation for what was the ECMA standard for the shared source common language infrastructure So that you know, they made they made a lot of noise last year. I think it was about they open source dot net and Rotor to be really clear was not an open source license. This was for academic research But it'll give you an idea of a community building. We were really really really careful It was about a half a million lines of code about a half a million lines of test suite and test harness We built a single installer that ran on Free BSD Mac OS 10 and whatever version of Windows it was at the time. I think it might have been XP And in doing that we ensured that it was basically with a single command You could set up your environment correctly With a single command you could build the entire software to a known state with a single command you could end up running the entire test harness and You know you expected to see these three bugs So any developer downloading the gzipped tar archive Could get to a known state in a matter of an hour of three commands that they had to type in The only documentation we provided for them was to literally sit down and in a few screens You know a couple of pages of documentation kind of thing We told them the three commands, you know how to set up your environment build it and test it to get to a known state And then the last thing we did was actually give them a rough idea of how the tree hung together So we did not describe the internals of you know the CLI We did not describe the the internals of the base class library or anything else. We just provided the source code 24 hours later We got a righteous contribution a developer who deeply understood the Intel chip architecture and deeply understood JIT technology Gave us a 15 line patch that gave us a 10% boost in performance That's fantastic. And then 24 hours later We got a second righteous patch where they had found a bug They fixed the bug but not just the bug they actually read our you know They looked enough at the coding style They fixed the bigger bugs not just the spot weld and they even provided a test case to say look look I fixed your bug and here's the test case for the test suite So that is the second righteous bug So if you do certain things if you take a certain attitude into this is not over. Hey come and help This is actually about we want people to get to a known state quickly. You can get amazing things very quickly Now here's the dark side of the story We were not building a community and this is how fast you can pour cold water on that After we got that first righteous contribution 10% boost in performance. We said that's fantastic. Thank you. We're not accepting contributions Because this code base was still tied to the product. This is 2002 Halloween documents is still coming out Microsoft is still Shriekingly paranoid about open source. Sorry legally very conservative in their stance towards open source and So we were not about to allow as brilliant a patch as this was into a core code base that we were still producing for product you know for product side of so and Then the second bug fix came in that you know 24 hours later and we said that's great. Thank you But we're not accepting contributions And we never saw another contribution It was that black and white. We just had to be very public twice and We shot any opportunity and we did it with malice of forethought that was the crying shame of it The core group of us that were part of this project We all deeply believed in free and open source software My background was building products out of it So I understood that you could do this and it wasn't the most riskiest thing on the planet or any of those things We cared but we also understood that our marching orders were we are not take we are not building a community And we're not taking input and the thing was an enormous thousands of programmers in the Microsoft net world still loved the project Because it allowed them to actually go and do some spelunking through the code base to understand exactly how the dotnet libraries worked It was an enormous tool for learning. It had its purpose Lots of academic work was done on it for bringing other languages to the dotnet world So again, you know, it was useful, but it definitely wasn't open source and we definitely weren't building community So it's you can build your own tragedies So the point is Really when you when you start with a project, you're starting with a community that really is a conversation in code It's not a conversation about code and you may grow to a point where you want lots of other contributions But at the core of it all It's a conversation in code And you've got a core set of commuter committers. There might be one of you There might be ten of you probably not ten, but you know a few of you and What you're really looking for is you are looking to find developers. You want at least to encourage other people to use it Because ultimately what you want is that idea of you want an inbound contribution flow Well, the thing is the question you have to ask yourself is where are you gonna find those developers? Well, you know Hang it out a sign that you know, if you build it, they will come that's probably not true But you know if you actually have a set of users Well some number of those users when we go back to orders of magnitude some number of those users are gonna be developers and If you can get them to a known state quickly, they may even start to do things for their absolute Own selfish interest. Hey, I wanted you know hack this in. Hey, I found a bug when I was trying to do that Whatever it is They're still not contributing anything to you But at least you've made it easy for them to learn and get to a position where it's a known state for them And so ultimately you need to be growing your user base because you want to be in a position that you can find the developers And then encourage the contributions in So this is really about there are three on ramps that you need to think about if you're trying to turn your project on your repository into a community and That is how are you going to find users? How are you gonna make it brain dead easy to install and that same way that with rotor? It was trivial for a developer to get to a known state They did not have to fuss around figuring out how to build it How are you going to encourage developers so if they're there and there will be developers in your user base How do you get them and then how do you encourage them to actually contribute their changes back now? Some developers are absolutely we live in a social media world All that's taking advantage of is a lot of us really do like contributing to the communities in which we sit So how do you make it easy for people to contribute? So I argue there's set of practices you have to start looking at and these practices so I I am a software construction. Nazi. I'm sorry. I believe there is one true way to build software I don't care what tools you use But you will have configuration management you will automate your builds and you will automate your test harness Which you have and you will have a review process because these things are important So it is literally things like From a from driving user base Did you publish executables? Is the executable environment available? I guess is the better way of say it because we have very broad communities now We're doing plug-ins for things and rest of it, but are the executables actually available or are you expecting your users to figure out how to build them? Have you automated the install in any way shape or form I? Love the fact that they made it easy on github to do your that kind of home page or to build your own page And you can sit there a lot of people do you know here type in these five commands Folks or computer people it's a script Don't tell them to type in these five commands to tell them to type in this word the simple command That's part of your source tree and it doesn't mean that you're promising that's going to work on every architecture Tell them what architecture it works on tell them to type this command or that command and have it Install in a meaningful way have it in configure in a meaningful way So these are the kinds of things you can do to start to build from a software construction point of view a software Discipline point of view you can make it easy to start building a user base There's also some community building things that you need to do Put a license on your work, and we're gonna talk about that in a minute I'm gonna bore you the tears, but it's important to have a license on your work Put some kind of FAQ in place put some kind of mailing list or some kind of a place for People to either ask simple questions or to capture those simple first things that everybody got wrong and the script didn't quite cover Those are the kinds of things you need to have in place. I need to make sure everybody understands. I am not a lawyer Lawyers are very special when I say this is all advice for building communities. It's advice It's the best experience. I've learned over 25 years of playing in this space It's not legal advice If you ever want to see a lawyer turn white Say I Think I've been given bad advice because that They're like they speak a different language those words the words that you and I use casually means different things or more specific things and So this is not legal advice. I am not a lawyer But we're gonna take a brief diversion on the licensing so Software is protected by copyright the people that wrote the software own the copyright The fact that you publish the github repository, and you don't care what people does Doesn't change the fact that software has a copyright and you're the person that needs to have a say in how they use and So you want to put a license on it? Because the license is the way in the open-source community or the free software community is however you want to define us Is the way that you tell people what they can do with your software? There's a handful of licenses out there It doesn't matter which one I have certain Preferences that I'm not going to share right now But it doesn't matter there's a handful of good licenses didn't you know it covers the GPL the Apache license Free BSD. Sorry the BSD license the MIT license the eclipse license if you're working on Java in the eclipse community There's a small number of licenses The free beer license as clever and cute and funny as it is is not helpful So use one of the common licenses and these common licenses these were written by serious lawyers that have been part of this broad community for 30 years now They deeply understand the nuances as lawyers speaking legally to one another in How to think about these concepts for other lawyers to understand? No lawyer that you hire is going to do better It's just not going to happen If you care about making money if you think this is an open-source project But there may be some corporate implications to it and it may serve you well You probably want to learn a little more about the law There's a really good book out there for developers written by a lawyer that can help you get your head around these things If you care about patents and by care I mean you either think they're a good thing or think they're a terrible thing you care about patents You again want to talk to a lawyer. It's that simple because This is it's a messy space and there's nuances out there that normal people like us don't understand Can I ask you to hold the question? Thank you. I They finally on github last thing I want to hammer home on github They finally made it easy to add a license a couple of years ago Please do that because right now the even two years after That had a github stood up at Ozcon and said hey, we finally did this There are still millions of repositories out on github that have no license on them And so it's it's ambiguous copyright You know it's all rather we know exactly who owns it but the user terms are ambiguous So if you want people to be able to easily use your software put a license on it Okay, so how do you make it easier easy to encourage developers again? There's a number of construction things that ah wrong button Better there's a number of construction things that you can do This is where you start to get into does the build automate So when I drop the source repository when I clone it to my machine is it again? Trivial to turn it into an executable environment. Is it trivial to test it to a known state? These are things you just need to automate you shouldn't be telling them to type these five commands because People fat finger things especially at two in the morning if you're screwing around or something and you're trying to get it to work So automate as much as possible make it easy From a community perspective Again, this is where you want to actually encourage that discussion in code So you want to you know consider things like possibly a code of conduct maybe a mission statement if you're so inclined if you're building communities You actually have to think about this stuff The art of community as a book is a wonderful template for the things that you need to think about in this space another small diversion so there are two ratios that Define the software space and that is the number of lines of code the average developer can write in the day and The number of bugs per thousand lines There's been lots of reasonable studies on this space. I understand how fraught lines of code is I don't think it's a good measure any more than probably anybody else in this audience But it is the measure that we have and we can at least say certain things about it We all understand, you know ripping out code made it better. I get I know I like there's no discussion We can have a lot of lines of code that we all don't Eventually end up in some kind of an agreement, but those two ratios have kind of held since we've written software and They've been measured by people that care about this stuff a number of different ways and those ratios haven't really changed That's the that's the crying shame of it. So every Everything we've done in either programming language platforms or software engineering practices Has been about delivering More software and better software and fewer lines of code. That's what we've been trying to do for six decades now So it's One of those things that community and product scale And when when you talk about some of these things the big aha for me 30 years ago now was It's not about managing complex code The reason you care about your configuration management and your automation is you can't scale without it What I mean by that is back in those days the only you know 35 years ago the only people that used configuration management version control and make and automation and things like that These were product companies in an early software industry Because that's the only way you can scale your product to the point that you can support your customers because when they you know When you get a bug report and you will You need to know what that executable thing is they're running and the only way you can do it is to be able to Reliably rebuild at time and again to know exactly what went into the recipe and what came out the other side and The same holds true for communities when you start looking at an expanded community around an open-source project like it's the exact same problem It's how do you reliably rebuild it because you're going to need To be able to fix it You're going to be able to know that the software on your machine is the same with stuff running on my machine when we Have an argument over the best way to fix it to the best way to fix that bug or the way to enhance it with something So that's the only way you can actually reach the scale you need is to have that kind of reliability The one other observation I'd offer you is is Linus's law It's actually about reviewing And there's all bugs are shallow has given enough eyes That wasn't talking about debugging because of some bug that was found if that was true We would not have had all the problems with things like SSL and the rest of it over the last few years No, that was a the failure in community there was the community was too small the review culture wasn't there Linus's law applies all bugs are shallow you discover them before they become bugs in the executable thing that's distributed That's the joy of it. There's a number of papers out there that have proven time and again You'll always find more bugs in review Then you do in test and That's kind of a startling thing But you just do and it doesn't matter they've even the one experiment They even varied it with things like with was this formal, you know six people in a room together when they all had roles Or it was a desk check No, you even with a desk check by you know a co-worker You will still find more bugs in review than you ever do That's that's the strength of some of these communities especially when you see one of the things that open stack gets right and For anybody that's ever heard me rant against open stack. You'll know that there's not many things They get right but one of the things they get right is they built a culture of review Into the front end of it and so that's huge because you're finding some of these problems early So lastly, how do you actually go hunting for contributors? So this is that space where again you want to make you want to publish your coding guidelines You want to tell people what to contribute and if you're looking for people to help with the docs All of these things apply You know you need to be able to get to a place where you have a known set of docs any person that wants to participate can get to That known state, but you're making it easy for folks to get there when I talk about kind of a second stage automation I'm talking about that kind of thing of when you see some of the very modern Projects right now go into this whole continuous integration continuous deployment tool chain So it's no longer kind of at first stage of automation of here's the make file We're now into a second stage of automation where we're making it trivial for you to test your software in A no one big environment rather than just doing it in your own small environment That is just a side story. That is one of the classic things. I heard at the open stack summit in Tokyo But some people are starting to question maybe the idea of allowing a whole lot of developers To test their clouds on dev stack on their own machine Isn't the best way to test for something that's supposed to be managing large multi machine clouds You know, it's that kind of thing of how do you do this thing? Well Again, there's some community aspects to those kinds of things When we start looking at these things you can you know you get into event management You get into governance discussions because at this point You're probably getting to the point where you want to start laying some of the foundations of this early now No point am I suggesting that you need to get all this stuff done on day one But you do kind of need to walk through it in order because that's how you're going to build these pipelines of people Because really what you want to get to You want to start with your project and ultimately, you know You want to advance from committers and the contributors into a community of folks around it? And you want to ultimately build an ecosystem? Now there are projects that don't there are projects that are very happy to be small but a lot of people really do want to foster that community that could Growth of their community and that ecosystem is a rich ecosystem. You know, there's products based on this project There's services around it. There's books. There's training. There's consultants. It's a big thing There's certification projects So that brings up a problem Because if we're going to get to an ecosystem with Projects and services products rather and services and all that stuff what happens Is you now have corporate contributors and you need to figure out what to do with them because these are different animals and there's a fundamental thing that companies need that most projects in their infancy don't have and and That's where you get into there's a whole pile of things that you need to do around IP management because that's the one thing they care about So again the license your first license was a social contract That's how you and if there was any other core committers when you started that that was the agreement you had for the kind of the The governance you've wanted to put into but it was more of a gentleman's agreement This was your early community and how you wanted to see it grow the fundamental things you believed in this social contract in an early community Now we're talking about a license from the perspective and I'm not suggesting you change your license I'm not suggesting you change The values that you consider important just understand that Corporations have opinions about licenses now again if you stick with that small core group You've got lots of flexibility and half of them were written by corporate lawyers and half of them were written by academic lawyers So you're mostly protected in that space already They they want to know about IP tracking they want to know about provenance They want to understand what your dependency graph looks like so there's a pile of stuff there That if you've been doing things well You've already you've already probably put it in place But just understand that this is a different set of practices for a different reason because companies care about this other thing Now there's a benefit here. There's an enormous benefit If you put these practices in place You can see an order of magnitude growth Because now you have dedicated resource Dedicated investment from corporate people that want to use this software in their products and services And you're not selling out. I have not in any way suggested That you want to manage differently change your committer structure nothing like that But it's it's an it's an interesting place The way a lot of people talk about this is From the perspective of foundations. I was technical director at the odor curve foundation for three years Up to a couple of years ago. It was an interesting foundation because this was the foundation that Microsoft was the primary founding sponsor for It was a proper 501c6. So a trade organization There was some awkward problems with it because they kind of saw it as well were Microsoft and we're gonna tell you how to do open source and You can imagine the community reaction to that and I was certainly on I walked into it with eyes wide open But it was there was always that kind of right. You're gonna tell us how to do open source. It'll be great But there was a really interesting thing that coincided with that a guy named Henrik Ingo He's in Finland. He worked for my SQL. He currently works for MongoDB Was I think he ran Maria DB for a while as the CEO when Monty was trying to build a corporation around it He did a study and it was a really interesting study and what he demonstrated and he pulled all the numbers and he's good engineer So he listed where all of his data came from all the assumptions he made and he was careful not to suggest this was causative but The number crunch he did demonstrated that the nine largest most vibrant open source communities are all developed in foundations The 10th is an order of magnitude smaller So while he's not claiming causality here He's carefully suggesting that there's clearly something going on here There is a correlation and that that becomes a really interesting thing and so my executive director and I were stuck in there And we were kind of what is the theory of foundations and the one thing that every foundation has to get right in the open source space And this goes all the way back to the free software foundation is this idea of neutrality a level playing field for all of those corporate participants That care about you know, I don't want to be building your product kind of thing Or I don't want you controlling my product kind of thing all those go away if you have a foundation wrapped around it properly Properly is an important word. I have other rants that I can do about foundations And that is where you need this idea of very bright lines between what is the project and what is that community and What are the products over there that come out of these projects that have customers because those are different things and so Here is a large collection of practices You do need to think your way through this if you want to build a large successful community Like I said, these are not everything that has to be done on day one I do not presume That anybody could do that. I mean, that's that's one of those things We have so much architecture in the way you never get to actually doing anything interesting in the project But there is this set of patterns and they really do Fall around these idea of driving you know encouraging users encouraging developers encourage your contributors and Then what do you have to do to do that next step up when corporate players show up because if you're doing the first things Well, corporations will show up. There'll be developers that might have been part of your community who work for companies that go You know, we could do this in a product or we could build this into our product or we can contribute this You know, we can build a service around this for our customers And so having that is that additional pattern? How do you think about those things? Because ultimately you want to take this graph and just like I was trying to do with the arrow I keep trying to I keep trying different visuals. I'm looking for input You want it you want it to grow into this space You want this to be a rich ecosystem where there's lots of stuff happening in that ecosystem and lots of people want to participate for their own selfish reasons and their own needs and You can support all of those things from that core project community Going back to this diagram So this is an interesting diagram because the really terrible thing is once you get corporate contributors Once you have products based on your community once there's services out there once there's you know books and training and everything else You end up with customers But here again is this problem. They're not your customers. You're the community you care about the project That's what you started and you might have a vibrant Yeah, your Lena's Torval's and your Linux is taken over the world But Lena's is still Lena's and he still runs a community. That's a really interesting thing Never gave up the trademark. He never gave up the source copyright and He still runs that community in the way that he defines us best for the community overall And then you step outside of that and you look at this massive ecosystem of other things around it and So what you really want to be careful of is getting sucked into any discussion about customers Because in the same way that projects are not products Your community are not customers And you got to be really careful and again, I'm a big believer in bright lines because when you talk about these things We can have a discussion around Community building and there are actual excellent resources out there There really are we like I said, we've known how to build communities since you had a campfire and I wanted to sit beside it Absolutely And the thing is in the product space. There are excellent excellent You know, you can go get an MBA. There are excellent resources in how to build and drive Products market them all the product management work that goes with it But these things there's a really bright line between the way those things work And there's a bright line between the engineering work that has to happen There's a bright line between how you have a conversation with your community versus how a company might have a conversation with a customer if you're building if so I've been talking as if you were a You know an independent Community project that has grown up into this space Everything I've said actually applies if you are a company trying to build that community Because you got to walk through all the same discussions But the trap that so many companies fall into is they make it that customer and community conversation They think is one Marketing folks think for our community that's kind of like a big part of the funnel And it's not and the engineering resort engineering teams if they get this thing wrong if they don't have good open source experience They think this is great The community is gonna be writing all kinds of things for us and again you got a that's not actually the way it works So you need to be able to get those conversations Really crisp with very bright lines between them and everybody inside the company needs to understand what those things look like And that's the same thing that you have to do if you are an independent community You need really bright lines for how you talk about these things So I've got another talk that I'll do you know next year kind of thing part two of the talk is really how to think about those Things with bright lines I'm actually finished at this point, and I am happy to take questions comments Sir, so I'm just gonna repeat this for the the video The statement is that I was being a little soft on patents and that you do need to think through them I actually agree with you very much what what always fascinated me the thing that is different about the Linux foundation Because Linus wasn't giving up control the actual IP was unlike the Apache software foundation or the free software foundation Or the the eclipse foundation. I guess it postates though When they set up the OSDL when the big vendors got involved They had to ring fence the IP and They ring-fenced it through exactly those kinds of things so they immediately hired Linus and Andrew to make sure that they were individually protected in the same way that the eclipse foundation and the Apache foundation protect their community contributors They turned around and they started there was some of the early work that the OSDL did was actually really pretty interesting stuff It predates the open innovation network and their patent pools and those are The OIN is a fabulous example of what can be done in this broad community of open-source related companies and open-source related projects It's definitely something we have to consider My personal view I I don't have an opinion on patents good or bad per se But like you said patents have to be managed. It's a reality in the world. We live in Go ahead absolutely patent rules do exist the The the interesting thing the way I've tried to explain it to people because I historically I did some consulting with small businesses that were doing open-source related things is Patents are tickets to negotiations They are and that and until you're big enough to be making money kind of thing and that Again, that's where the foundation if you if you're growing into a space where multiple companies are involved a foundation can actually help You think your way through some of those things if you're a company doing these kinds of things and you hopefully already have Council on on board that is advising you and it's sometimes painful. I think a company that does interesting things in the space is Red Hat I think they found a strong balance for how they want to protect their community and protect the company at the same time so But thank you Other comments questions Excellent question at how as you go through the transition From a community that was kind of small and a little more organic into that space where court corporate Contributions are are inbound. How do you manage that growth to not freak out your core community? I So there's a couple of couple of things there that I that we've all seen so if you look at Linux No, Linus really did run it the way Linus wanted to run it and so corporate contributors showing up You know, we were lucky. He was either young enough and arrogant enough or Finish enough and strong-willed enough. I don't know. I don't care He continued to evolve that community the way he saw fit so have it knowing knowing yourself so to speak having that that's that strength and belief and Maybe having a GPL license on your software provides a very bright line for how Corporations have to think about you. I think that was an enormous strength of that community and So that was interesting when you go back to Henricks nine projects, which dates up to five years ago He and I started a different discussion just recently so My CTO Martin think CTO of all of Hewlett Packard Enterprise got up on stage at Linux con and Dublin and his keynote was really about Everybody has assumed for a long time that the Apache software license was the business friendly license but that we shouldn't Not think about the the GPL as the other business friendly license There's lots of things to do with that and that's where I think the GPL provides a very bright line and Simplifies that discussion as companies come to play because they're going to be very careful But the other thing so when you go back to Henricks nine projects Six of them are GPL two of them are weak copy left There's only one of them that's Apache licensed And it happens to be the Apache group So I had the discussion with the president of the Apache Foundation because it was like what what's different there white and the best conclusion we Had that goes back to your question about how do you scale that community and not freak out the the original community? Apache has the incubator and the incubation process is 12 to 24 months that you have to come through the incubation process to be declared a full Apache project now Well, it's always been stated from the outside as this is We're teaching you how to be good community Developers working together in the Apache way, so it's always about the Apache way It's always about the software engineering The reality of it one of the net benefits of it as well is it drives all commercial discussion out of the room it builds that very bright line around what is the project and how does that community interact around what good things and Yeah, what you do in your project or what you do in your products and your services is your business And so it's building that bright line And I think it's so you can see a number of ways of doing it, but yeah, do it with the GPL do it do it with a strong copy left Just declare the GPL do it with a strong copy left or provide a process that drives that conversation out of the room Which requires either a process like the Apache way The eclipse way isn't you know they do it the same similar kind of thing in the eclipse foundation or Lenas was simply strong enough as That benevolent dictator to actually lay down the law as to how this would happen and because he never gave up the IP At the end of the day, you know, it was his way of the highway That's a good question because those those are the kinds of things we see regularly Other questions, what about forks? That's a great question as well. So what about forks? So as a company who is who did not want to live on a fork in the late 90s I worked very hard even though we were pulling software out of the open-source community To ensure that all of our engineering contribution went back upstream So again, I was very crisp in what was my product. How did I package it? How do I license it? What what do I do for my customers? But I don't want to eat the engineering cost of a fork as a company Because that'll only get more and more and more expensive over time So you want to contribute everything back upstream if it's not your project so Big believer not living on a fork big believer in There is one code base for the project if you're a corporate player the thing that destroyed the Symbian Foundation Utterly destroyed it is when they flipped it from Symbian into the Symbian Foundation The code was still being written by Nokia They were first amongst equals and they published into the community for the rest of the community of vendors to pull from So the vendors left that's that simple So you there needs to be that one true place. No forks. There was there should not have been the Nokia Symbian Release plus everybody else's And then in the reverse we've we've seen the occasional catastrophic fork GCC versus EGCS back in the late 90s that was a huge war over the future of the GCC compiler suite And that lasted God, I think better part of 14 to 16 months. I mean it wasn't over quickly that argument. There was two parallel growing trees of code and They finally understood themselves the engineering economics as open source projects Was ultimately to knit it back together. So there was one true GCC You can look at things like Jenkins versus Hudson Thank you That again I to me that's the kind of failure you saw with Symbian that that that's oracle Just upsetting the planet and not caring now in that case they could in the Symbian case it killed them But nobody talked about Hudson anymore And that that was a case where I think it was an interest a really interesting case that as strong as the Apache way is There are still failures along the way Statistically not that many Now when you look at the growing number of projects that continue to graduate the incubator You know the entire big data base a big data space based around Hadoop All the all the excellent work that continues to come out of Apache. It's great, but no forks are not good So that was the long answer forks are not good is the short answer Doesn't and it doesn't matter whether you're a corporation or a community. You do not want to have forks happening All of it. So in terms of the different approaches just to repeat the question the different approaches to dealing with patents in the community Different communities handle it in different ways Patents tend to be places where Corporations care deeply Microsoft screens will patents all the time and what you guys have to remember is you might be the generation that remembers Microsoft wielding patents against Linux. I have more gray hair I remember when IBM screwed over Microsoft in their initial patent discussion. So Microsoft suddenly became very adamant about patents that were important I've seen a brilliant Journalist article on the first time IBM approached Sun as well and back in the late 80s and kind of kicked Sun around for a while Until Sun signed the cross-license deal. So patents tend to be a big company thing I like the approach that OIN has of defensive patent pools I like the approach that Red Hat finally as Red Hat grew I mean, it's now a two billion dollar company by revenue and a 10 billion by valuation You know, it's they have had to think through a patent strategy as a company That does not upset their community And there's some you know, there's lots of hardcore anti-patent anti-IP folks, you know You almost have the IP anarchists. There's there's always one or two in a room that are way out on the fringe and That community the Linux community still functions because Red Hat has found that balancing line It's it's a rich enough community to support all those points of view. So it's I I don't think there's ever one right way Because it's your balance if you were balancing your own community if you're growing it well You're gonna have everybody from you know extreme anti-patent folks all the way through to if you're very successful And you have corporate players people that want to understand your patents That the really interesting thing that I I have not spoken to enough lawyers to understand Why more companies aren't playing this game Web them when Google did web them They did it under the Berkeley license because the Berkeley license is a well-understood open-source license That has zero discussion and zero ambiguity about patents and Then for that project they said by the way we have a different license for all the all all the other IP around it and They use that as the way to clarify their state around patents with respect to this space I thought that was a really interesting way to handle it as a corporation Because they weren't you know it left them a certain amount of freedom of play But it also allowed them to very be very clear with their community of exactly what they thought of patents with respect to this software So I Wish there was a clean right answer And it's I for a long time there. There's something called a provisional patent, which is very cheap You don't have to write all the claims. It's like $130 or $150 to file I always thought that would be great you file a whole lot of cheap provisionals They last for 12 months, and then you lapse them So you're just salting the fields around you Because you've now put a stake in the ground that said you know this is this is no longer an invention I have talked about it in this and you didn't have to go through all the legal Expensive getting you know really well crafted Well, it turns out the lawyers have caught on to this idea and the way they want to do Provisionals now is they still want to charge you two or three thousand dollars for the patent search And you know they still want to if they're not going to write full claims for you They at least want to start to draft them in a little bit for you because obviously you're going to want to turn that Provisional into a real patent application. So it's Again, I am not a lawyer you do not want patent advice from me But I've seen some interesting plays from different communities trying to tackle things and try and trying to be honest with their community I just want to expressly say I have no No opinion on anything going on in the Ubuntu Commasical world right now Other questions at the back What do we what do I think about contributor agreements? I'm going to do the two-step you know that because I've two stepped along here with everything to do with legal all along Yeah The time when they become important Important is again that crossover line when suddenly corporations want to understand provenance And I think there's an argument to be made that if you want to keep the bar very low And you want some confidence that you could grow into that space It's just do the DCO for now if you're starting small and you've got you're using the developer certificate of origination You at least have you can finger point back to a list of people In the contribution stream that you've been committing into the core code base for however long that's been As a demonstration at look we do kind of know who this came from and we do have kind of at least a first past statement that this is interesting and You know that kind of thing can work Because the worst case that we ever saw In something that became big was what happened with Apache You know the early days of Apache nobody knew who was committing what in the where kind of thing It wasn't complete Wild West. There was good engineers doing good things. Nobody was tracking it And again, you got to remember it was only 1980 that we started applying copyright to you know software So it became a space where when they formed the Apache Software Foundation Because again, there was there was big companies that had big lawyers that were concerned and they wanted to use it in products That's why the the the play they did was more of a well, it's an aggregate of software You know, so we don't really worry about where it came from in the early days So you can deal with the ambiguity, but I think being crisp up front just doing a DCO on the way by keeps it a very low barrier to entry It's if you go look up developer certificate of Origin I believe is what it stands for just Google it. It'll take you right to the page That's what they use in the Linux world Now I will push back. I used to get into a debate with Richard Fontana Who was legal counsel at Red Hat and he used to say no, you don't need contributor license agreements because gosh the DCO works Great on Linux. Nobody's challenging us Okay, Linux is a snowflake Linux is special There is so much big money floating around Linux that we all saw what happened when somebody tried to challenge That space once before you know at the end of the day Very large companies with very deep pockets and very large benches of lawyers are just going to ride that storm out for the rest of us So Linux gets a bit of a buy But I think it it is a responsible way to think about it if you were a small project and you just you know Moving along you you will always be able to go back to say that developer with that name Was responsible for that contribution see it's right here in my you know versioning system And so I can even point to specific versions if we ever had to rip it out for God forbid whatever reason You know exactly when I hit the code base and you can go back It's it's a useful way to track it I've heard lots of folks have opinions that it slows things down. I think that depends on how awkward you make it You know there's To me if you're if you're staying small and moving fast, I'd go with the DCO Is there a way to slow down corporate involvement? That's a great question What so and they might even be delivered in that steam rolling not mentioning open stack by name Fred Brooks and the idea that you know adding more People to the discussion building a bigger team slows things down because there's more lines of communication So I saw Brooks law applied as a weapon in The standards wars back in the 90s around Unix See if you add lines of communication it slows things down and There were certain big vendors that really did not want certain things in the Unix spec space happening too quickly So they just suggest yet another liaison point to this other group over there And all of a sudden you keep adding these we they almost ground us to a halt So that was how big corporations were definitely slowing down a small group of engineers trying to build some interesting standards There is that problem with Too many cooks in the kitchen Slowing things down. So I think a way I'm making this up as I go. I've never been asked that it is a great question I Would think about How you maintain your governance before you get into that space if you if you've got to a point where you actually have a few committers Then you should have a way in terms of encouraging other contributors But there should be some statements somewhere on how do you become a committer? How do you get right privilege on? Thanks, and that way you can start to think about ways early That you might have to deal with the problem of a whole lot of contributions flowing in or people demanding that well We're giving you all these contributions. Why aren't you patching them faster or or or if you can be really crisp in how you become a committer then That gives you if you have that conversation before you need to have it You're in a place that you can feel confident either telling them why they don't get a committer just because they've sent all this code or While maybe as a collection of committers You think they do deserve because you've been accepting all of those contributions They've been clean and strong and this is the person Identified that was sending them all in so that's the way I try and think about that problem What have I seen in the open-source hardware space? I am interested in that space, and I've seen nothing because I haven't gone on a look yet. So I'm afraid I I Am fascinated. I actually just started conversations here this week to start to go learn a little more about that So it's it to me. It's a really interesting space. I know that the kinds of places that I suspect there's going to be interesting questions is Historically all the body a lot it came out in there It was very patent heavy because we're talking about things that were you know, they were Adams in the real world not bits in the software world and if you look at even some of the history of Companies like IBM Intel Heeler Packard Enterprise, you know my employer. We're hardware companies We have a very different way of thinking about hardware patents versus software patents If you one of the fun things if you go back all the way through the history of the eclipse license When it used to be the common public license when it used to be the IBM public license. There is a small phrase Buried in there that has never changed even though it was You know the IBM license and it was a common public license as administered by IBM and is now the eclipse license as administered by the eclipse Foundation But that phrase in the IP section on patents said this does not apply to hardware patents They were very clear there and it's one of those things where I think it that's going to be an area that is hugely Interesting and different from what we've wrestled with in software And it's also the manufacturing costs even though things are plummeting with Some of the new technologies we have in terms of 3d printing and just the ability to build physical things and prototype physical things for normal People like us without spinning up entire, you know supply chains There's still going to be a lot of legal opinion and and legal You know conservative opinion left over from the days where no that it costs real money You know build a fab kind of thing so that it's it's going to be interesting in that space But it that's a guess that that I have seen nothing. I've looked at nothing There's no other questions. I think we've hit time Thank you very much folks