23 ms·
Open Source (Almost) Everything
- baddox 15y agoThe article begins by discussing their choice to open source an integral part of their product. The article ends with an admonition: "Don't open source anything that represents core business value." It seems like Grit certainly represented core business value, yet they open sourced it. I'm guessing that what they really mean is that you should open source almost everything that represents core business value, but one piece should always be left out. Or, perhaps they're saying that their web interface is the core value they provide, and so they open source everything but that.
- pavpanchekha 15y agoI think you're reading "core business value" too broadly. Github might not exist without Grit, but the crucial test is that Grit might exist without Github. Grit itself --- the ability to interface with git --- it's something specific to the functionality of Github, it has broader applications. This isn't something true of Github, and neither is it true of their Jobs site, since it has (apparently, never used it) direct and deep integration with Github.
- GrahamL 15y agoIf your product relies on the network effect for its success (as GitHub does) and you've already established yourself, it doesn't seem to me that open sourcing your software would be a bad idea. See Reddit as another example.
- briandoll 15y agoReading on, "Open sourcing it would mean thousands of people worldwide could use it to build interesting Git tools, creating an even more vibrant Git ecosystem." Awesome Git bindings to Ruby are critical to the functionality of Github, but a vibrant Git ecosystem is essential to its success. Business value trumps technical implementation. In fact, Tom also mentions the libgit2 library that Github is working on, and may even replace some of what they use Grit for today. Another point: Zurb recently open-sourced their CSS/JS framework that they use to build all their client sites/apps with. They have spent years making it awesome. It's a major part of the material goods that they hand over at the delivery of a project. After it being opened up on Gitub, they've seen lots of great feedback, bug fixes and enhancements. I'd also bet they've seen an increase in new clients. What they wrote is awesome and now they are known to many more potential customers as being the people who know what they are doing. Business value trumps technical implementation.
- chc 15y agoThat's less "core" than what Tom seems to mean. By looking at the examples he provides, the essential distinction seems to be this: If somebody found the code, would cloning your business be the obvious thing to do with it? This isn't true of Grit. It is true of the core GitHub app, and it is true of the GitHub Jobs app. Interacting with Git from Ruby is not the core business value of GitHub. It's just something GitHub does in the process of providing its real core business value, which is the awesome interface and collaboration features they've built on top of Git.
- alexhawket 15y agoThere are two schools of thought, in marketing, on giving away parts of your business, your ideas etc: Give away your non-core ideas to attract people/resources/interest and then sell your complete system. Give away your core ideas to "prove your worth" and build trust/authority/recognition and sell your complete system. The second version is more powerful but it takes a leap of faith. Others could poach your work and use it against you but truly viable competitors are rare and people are lazy, the odds of this happening are often slim.
- vorg 15y ago> one piece should always be left out Another way is to make one piece of the open-sourced version run slower than an equivalent optimized closed-source version that does the same thing in the proprietary distribution of the same product. That way the business can make the claim "completely open sourced", knowing if anyone forks their product it will run slower.
- pnathan 15y agoI've generally come to the conclusion that open sourcing tangential software is a good cultural/social practice. Adopted broadly, it represents a gigantic time-savings for our industry, allowing us to collectively push forward to other more interesting problems than writing company-specific ci server/build system/source control system, etc. +1, GitHub.
- alexhawket 15y agoOne simple rule of business: commoditize your complements. Apple sells hardware and "gives away" all their media. Content creators and developers are charged only enough (30% margin) to basically break even managing the system. This adds tremendous value to their hardware since they now have "an ecosystem" and not just some electronic widgets. Aside: Apple have set prices for music but assumed app developers would always charge for their apps. When huge numbers of developers started giving away apps for free, Apple came out with iAds in an attempt to defray the cost of hosting free apps. They don't do anything for free. So, the same applies to open source and hiring. Good engineers are hard to find. If you outsource your software and it becomes popular, good engineers will flock to it. You've now got engineers pre-trained (for free) on an important component of your system and they are dead easy to identify, defraying the cost of recruiting. Since open source is the commodity in this scenario, giving it away for free is the most prudent way of insuring widespread use and a good supply of engineers. Edit: another idea is "give away your ideas, sell the system". Open source your non-core ideas to attract attention and sell your complete system. Although many marketers argue the reverse: give away your BEST ideas to prove your worth and build trust then sell them on the whole package.
- tome 15y agoOne simple rule of business: commoditize your complements. I'm surpised no one else has mentioned that. It's a very powerful idea, and essentially what this blog post is getting at. I don't know if Joel Spolsky coined that phrase, but that's where I first heard it: http://www.joelonsoftware.com/articles/StrategyLetterV.html http://www.joelonsoftware.com/articles/StrategyLetterV.html
- jamesu 15y agoI'm currently debating whether to release the source to one of my dead projects, so the reasoning in this article is quite intriguing.
- kiba 15y agoSometime I wonder if it is possible to open source everything without becoming some sort of service company, like Redhat. The only example I can think of is makerbot industries in which their core technologies are open source.
- fendrak 15y agomakerbot has the distinct advantage of having open-sourced a (largely) physical product. For me at least, paying them for the bits and pieces to put their printer together would be an order of magnitude less effort than compiling and installing some software downloaded from the internet. They still offer a valuable service in manufacturing parts, and hence don't have to just sell support to make a living.
- nickpinkston 15y agoThis is a great feature of open source hardware! Arduino has shown that there are plenty of platform plays in the physical world. The MakerBot builds on the RepRap mostly, and makes money doing the leg work of getting the parts to you easy / quick / cheap. Now the tons (10+ projects?) of clones coming out build on this platform. Excited to see the future of open hardware.
- brandall10 15y agoThis is addressed in the article - "Ok, then what shouldn't I open source? That's easy. Don't open source anything that represents core business value. Here are some examples of what we don't open source and why: Core GitHub Rails app (easier to sell when closed) The Jobs Sinatra app (specially crafted integration with github.com)"
- dhx 15y agoGitHub _is_ service company. The primary advantage they have over competitors is a trusted brand name. This name has been built, in part, by engaging and contributing to the open source community. If GitHub were to open source _all_ of their software, some copycat sites may appear. These sites would not have a trusted name, thousands of well known open source projects backing them up and the expertise to properly run an instance of GitHub. As long as GitHub doesn't try charging users too much to use their service, there is no reason for people to use competitors to save a few dollars a month (reliability is far more important than a few dollars here and there). Some open source projects may decide to operate their own infrastructure. However, this is highly unlikely because GitHub _as a service_ is much easier and more reliable than an independently managed instance. If GitHub can retain the open source community, they become "the hub" that everyone wants to be part of. As long as GitHub is known to support open source in a meaningful way, given the resources available, I'm sure they'd benefit from hundreds of open source projects improving upon and patching GitHub code. I think they could quite readily open source _all_ of their software.
- tomp 15y agoI have a question for the OP... Why the MIT licence, and not putting your code in the public domain? Is it the liability issues, or the attribution, or something else? I mainly pose this question because I am choosing a licence for my projects, either the MIT/Apache licence, or public domain.
- frewsxcv 15y agoJust a simple difference I know: Do you want to force users of your code to attribute the code to yourself? Then pick MIT/Apache
- Dobbs 15y agoA much better reason is that you can't easily put things in the public domain and many countries don't recognize the public domain.
- aprescott 15y agoI'm no software license lawyer (and admittedly I haven't read Apache in depth), but I understand that the Apache license has at least one requirement I'm personally not too keen on. 4.2 in the license: "You must cause any modified files to carry prominent notices stating that You changed the files", I'm not sure how "legal" it is to follow the convention of sticking a LICENSE file in the project root and have that assume to cover all contents therein, but that seems reasonable enough, versus 4.2. I'd love to know further opinions on MIT vs. Apache. [edit: engaged brain.]
- true_religion 15y agoThere is forced attribution and the fact that in some countries putting work under the public domain doesn't mean you give up a lot of rights to it. You need to have a specifically liberal licence in order to do that.
- tptacek 15y agoThis is probably a myth. http://cr.yp.to/publicdomain.html http://cr.yp.to/publicdomain.html
- programminggeek 15y agoI've started open sourcing more things lately, mostly in the realm of things that solve a problem I have that might solve someone else's problem. Sometimes I build tech for tech's sake that improves my software or apps, but it isn't a product in itself. Frameworks, libraries, templates, and tools all tend to fall into this category I think and github is a great example is open sourcing these things. You shouldn't open source your product itself unless you want to be a service company. I personally don't care to become a service company, so I keep the "product" and the data behind it closed, but the frameworks, tools, etc. can and should when possible be open source.
- alexhawket 15y agoThe product and data in this case is your "core" that the article is advocating to keep close to your chest while outsourcing the non-essential components that would attract interested parties to your work.
- peterbe 15y agoReason for working on a PRIVATE repo?: Committing code to side-projects during work hours.
- trafficlight 15y agoCommit locally. Push in the evening.
- SeanLuke 15y agoThe MIT license has no patent release. I think this alone should eliminate it for all but the most basic of projects. Yet the author doesn't even seem to realize this.
- nirvdrum 15y agoThat's the biggest reason I opt for v2 of the Apache license. Similar liberties with fewer liabilities.
- halostatue 15y agoWhat license would you recommend instead, for those of us who prefer not using share-alike licenses (e.g., the GNU GPL)?
- ajross 15y agoThe Apache license is generally considered to be the most bullet-proof of the non-copyleft open source licenses. It's what Big Corporations generally use when they don't use the GPLv2. The MIT and BSD text is significantly shorter and less formal.
- tingletech 15y agoAs I understand it, this is exactly why the contracts and grants people where I work like it...
- cpeterso 15y agoWhat is the consequence of using an open-source license without patent release? Does that mean that if your employer open-sourced some software that contained patented IP, then people must obtain a license from your employer? And what happens in the reverse situation, where a third-party contributor commits code that contains patent-protected IP?
- tingletech 15y agoResponsibility for any use rests exclusively with the user. No warranties expressed or implied. "as is" -- use at your own risk. My employer has over 3800 active US patents and 3600 active foreign patents. I just hack code in the library, and I like to share it. As far as I know, none of the code I write is based on any patented IP -- but who is to say some professor on one of our campuses isn't doing research that somehow relates to what I'm working on in some way that could potentially infringe? The projects I work on that are Copyright my employer don't usually have third party commits; under BSD they retain copyright to their contribution and I guess we accept it "AS IS/NO WARRANTIES". but even under apache license 2.0 or educational community license 2.0 someone can't license rights they don't have. There is always a risk that a "forth" party might make a claim that the third party contribution is infringing the forth party's patent. (views are my own and do not represent my employer)
- chubot 15y agoOne of the strongest arguments is modularity. It's definitely true that you prevent your code from rotting and acquiring random dependencies if you think about how you can export it as a useful open source library.
- mweibel 15y agoCouldn't agree more. As I and my teammate started working on Candy (http://amiadogroup.github.com/candy http://amiadogroup.github.com/candy) we knew that we want to open-source the project. Therefore we built everything so modular and flexible that even we used the vanilla Candy and wrote just some custom plugins for our own use-case. I think it definitively leads to better code.
- StatHacking 15y agoTom, I agree with everything but the "core business" stuff and the MIT License. The same principles apply to your core business - independent of what it is (not only GitHub). By opensourcing all of your business, you will gain all the synergy you mentioned (i.e. libgit2) within your core. Your competitors will benefit from it, but they won't be a challenge to you as long as they don't have the passion and insights from your team. If they can find a way to do better than you with that knowledge (expressed as software), then your position in the market is based on imperfect information (and therefore, monopolization power). Although you may have everything to start a DVCS frontend, it is not an easy task which doesn't rely only on software: you need the ability to understand the infrastructure needed for the problem and maintain it at a reasonable speed - armies of proficient developers extending and fixing bugs, armies of sysdamins, coordinate them, decide adequate directions, etc. Besides that, you need passion about what to do in order to keep kicking asses. Without it, it is not sustainable in the long run. Think about Launchpad, I think they add extra functionality to bzr than GitHub to git, yet people still sticks to GitHub. Why? Also if you opensource your "core", people will need also customizations, so your competitors can become your clients where you provide developing to them - they may target other niche that you can't or your are not interesting. This is where the license comes in: the best way of achieving this is by using AGPL3. With AGPL3, you make sure that everything you gave it won't be restricted to others - as you haven't restricted anyone by opensourcing it. You are not restricting others' freedoms, they can do whatever they want with the software. When someone closes the source, it's restricting others freedom, not his. What you can't do with AGPL is taking away others' freedom and right to know what they are using. If someone improves it, then it will come back to you, and you will be able to improve from others as they improved from you. The MIT license is good, but it doesn't close the loop and may have leaks, :D heheh! A hug from Uruguay, Rodrigo
- beagledude 15y agoso you think Google should open source their search algos?
- adgar 15y agoBased on his post, yes, in his view, everything should be open source.
- sogrady 15y agoThis is another datapoint that generational attitudes towards the value of software have shifted. In the early days of software, it was an afterthought: what made it possible for IBM and others to sell the more valuable hardware asset. Microsoft (founded 1975) perceived the economic opportunity attached to volume distribution of user facing machines, and helped usher in an age where the value shifted from the hardware to the software. Google (1998), by contrast, derived effectively zero revenue from software directly. Instead, they leveraged open source and commodity hardware to control their costs and were able to scale more effectively than existing search alternatives. While they didn't sell software, however, they continued to perceive it as a competitive advantage, and thus a minority of their overall development was shared via public repositories. For Facebook (2004), Twitter (2006) and GitHub (2008), like Google, software is the means to an end rather than the end itself. Unlike Google, however, most do not behave as if code itself is a competitive advantage. You can argue about what their actual product is - a critical mass of users, the data they generate or both - but you can't build the case that it is primarily the software. And if the software doesn't represent a competitive advantage, the follow on benefits of releasing it as open source software - whether it's general goodwill, amortizing development costs, greater efficiencies in hiring and recruitment, etc - are believed to outweigh the costs. Hence Cassandra, FlockDB, Hip Hop, Hive, Jekyll, Resque, Storm, Thrift and so on. None of these entities open source the entirety of their infrastructure, but it is increasingly common to see open source as the default rather than the exception. Software has and will continue to have value. But in an increasing number of cases it will not represent a competitive advantage, and therefore assuming the burden of maintaining it internally will become less attractive.
- bhickey 15y agoI can provide a data point here. In college I did some App Engine development. At a previous job, we used open source Google Java libraries like Guice and Guava. I recently started at Google and walked in the door largely proficient in using their stack. In my opinion, they did everyone a favour. They've done good by other companies by providing them with solid libraries. They did right by me -- knowledge of their libraries presumably made me a stronger candidate. Finally, they did right by themselves by reducing the time it took me to get up to speed.
- deleted 15y ago[deleted]
- elliotanderson 15y agoAnother company that came to mind while reading the article is Shopify. While their core business is eCommerce, they have open sourced some of the major components of their system while still keeping the app that glues them together proprietary. Some notable mentions: Active Merchant (payment processing library) Active Fulfillment (external fulfillment for Amazon/Shipwire/Webgistix) Active Shipping (shipping carrier integration) Delayed Job (job queue) Obviously there is a lot more work that goes into making a product as polished as Shopify, but they have released a large amount of core domain knowledge for other people to use and improve upon. While someone might be able to come along and use the same components to create a competitor, they still win in the end by having more people contribute.
- cpeterso 15y agoThe GNU Project has extensive commentary on a variety of open-source licenses. They recommend the Expat or FreeBSD license over the MIT license, because MIT has released code under numerous licenses so the term "MIT license" may be legally ambiguous. https://www.gnu.org/licenses/license-list.html https://www.gnu.org/licenses/license-list.html
- pm90 15y agoAnother company that i think does very well in open sourcing is Kitware. All their projects are open-sourced; and I know from personal experience that these are very good pieces of code that they just give out for free. Apparently, their strategy is that their flagship product (vtk) is so big that there is more benefit for a small company to have lots of other people looking at the code, using it and sometimes improving and committing back the changes; also, that there are just too many cool things that one can do with it, leaving Kitware enough opportunities to create customized products for a fee(of course, they also provide paid support services as well). For me personally, it meant that my monetary constraints (grad student here) were not a hurdle in my research.
- secoif 15y agoI like to imagine how awesome github's potential UX could be be if they decoupled, open-sourced and allowed contributions to their front-end. Something along the lines of stable and opt-in unstable UI branches with frequent releases.
- hboon 15y agoThey'd probably end up like how it is for most Linux distributions. An acquired taste.
- nicpottier 15y agoWhat?! If there's one thing time has proven it is that open source projects (usually) leave a lot to be desired in the UI department. UI is one of those things where a benevolent dictator is a good thing, it gives you consistency and given a talented designer leading the team gives you a far better product. The typical path for for open source UIs seems to be to try to please everyone, which means making something that isn't great for most people who don't want to spend half a day customizing their interface.
- secoif 15y agoTo be clear, I wasn't actually thinking about 'design', more like, features. Perhaps you're right, and perhaps I'm longing more for some kind of plugin architecture.
- ptman 15y agoIs the github subversion server (backed by git repos) open sourced?
- king_magic 15y agoI don't necessarily agree with the author that "it is the right thing to do". He may believe we are morally obligated to give back to the community, and that is his belief, and that's fine, but I do not share his belief. I'll contribute back to the community happily. I do so because I want to. But I do not feel that I am morally obligated to do so. I'm sorry, I simply don't. The author makes the point that one should give back, for example, simply because one "used the internet". It is one thing to say that you should open source your code and give it back to the community if it is derived in some way from another open source project. It is quite another to say that just because you use open source, you are now morally obligated to give back to the community. All of you out there using an Android phone - do you feel morally obligated to open source your work simply because you use a phone that is built predominantly on open source code?
- cmurtagh 15y ago"the GPL is too restrictive and dogmatic to be usable in many cases" Does anyone else see the total irony in this? Considering that both Ruby and Git (two of the core technologies GitHub runs on) are both GPL. People can use whatever OSS license they want, I certainly have no gripe with him using the MIT license, but I could do without the dogma.
- wbkang 15y agoIt's because the software does not link with Ruby or Git. It's just like most people don't mind using GNU userland tools...