{"id":2088,"date":"2010-07-28T04:40:54","date_gmt":"2010-07-27T18:40:54","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=2088"},"modified":"2016-08-22T15:10:08","modified_gmt":"2016-08-22T05:10:08","slug":"howto-screw-up-launching-a-free-software-project","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2010\/07\/28\/howto-screw-up-launching-a-free-software-project\/","title":{"rendered":"HOWTO screw up launching a free software project"},"content":{"rendered":"<p><a href=\"http:\/\/it.toolbox.com\/people\/josh_berkus\/\">Josh Berkus<\/a> gave a great talk at <a href=\"http:\/\/web.archive.org\/web\/20160405045221\/http:\/\/www.lca2010.org.nz\/\">linux.conf.au 2010<\/a> (the CFP for <a href=\"http:\/\/lca2011.linux.org.au\/\">linux.conf.au 2011<\/a> is open until August 7th) entitled &#8220;How to destroy your community&#8221; (<a href=\"http:\/\/lwn.net\/Articles\/370157\/\">lwn coverage<\/a>). It was a simple, patented, 10 step program, finely homed over time to have maximum effect. Each step is simple and we can all name a dozen companies that have done at least three of them.<\/p>\n<p>Simon Phipps this past week at OSCON talked about <a href=\"http:\/\/www.oscon.com\/oscon2010\/public\/schedule\/detail\/15407\">Open Source Continuity in practice<\/a> &#8211; specifically mentioning some open source software projects that were at Sun but have since been abandoned by Oracle and different strategies you can put in place to ensure your software survives, and check lists for software you use to see if it will survive.<\/p>\n<p>So what can you do to not destroy your community, but ensure you never get one to begin with?<\/p>\n<p>Similar to destroying your community, you can just make it hard: &#8220;<strong><em>#1<\/em><\/strong><em> is to make the project depend as much as possible on difficult tools.<\/em>&#8221;<\/p>\n<p style=\"padding-left: 30px;\"><strong>#1 A Contributor License Agreement and Copyright Assignment.<\/strong><\/p>\n<p style=\"padding-left: 30px;\">If you happen to be in the unfortunate situation of being employed, this means you get to talk to lawyers. While your employer may well have an excellent Open Source Contribution Policy that lets you hack on GPL software on nights and weekends without a problem &#8211; if you&#8217;re handing over all the rights to another company &#8211; there gets to be lawyer time.<\/p>\n<p style=\"padding-left: 30px;\">Your 1hr of contribution has now just ballooned. You&#8217;re going to use up resources of your employer (hey, lawyers are <strong>not<\/strong> cheap), it&#8217;s going to suck up your work time talking to them, and if you can get away from this in under several hours over a few weeks, you&#8217;re doing amazingly well &#8211; especially if you work for a large company.<\/p>\n<p style=\"padding-left: 30px;\">If you are the kind of person with strong moral convictions, this is a non-starter. It is completely valid to not want to waste your employers&#8217; time and money for a weekend project.<\/p>\n<p style=\"padding-left: 30px;\">People scratching their own itch, however small is how free software gets to be so awesome.<\/p>\n<p style=\"padding-left: 30px;\">I think we got this almost right with OpenStack. If you compare the agreement to the Apache License, there&#8217;s so much common wording it ends up pretty much saying that you agree you are able to submit things to the project under the Apache license. \u00c2\u00a0This (of course) makes the entire thing pretty redundant as if people are going to be dishonest about submitting things under the Apache licnese there&#8217;s no reason they&#8217;re not going to be dishonest and sign this too.<\/p>\n<p>You could also never make it about people &#8211; just make it about your company.<\/p>\n<p style=\"padding-left: 30px;\"><strong>#2 Make it all about the company, and never about the project<\/strong><\/p>\n<p style=\"padding-left: 30px;\">People are not going to show up, do free work for you to make your company big, huge and yourself rich.<\/p>\n<p style=\"padding-left: 30px;\">People are self serving. They see software they want only a few patches away, they see software that serves their company only a few patches away. They see software that is an excellent starting point for something totally different.<\/p>\n<p>I&#8217;m not sure why this is down at number three&#8230; it&#8217;s possibly the biggest one for danger signs that you&#8217;re going to destroy something that doesn&#8217;t even yet exist&#8230;<\/p>\n<p style=\"padding-left: 30px;\"><strong>#3 Open Core<\/strong><\/p>\n<p style=\"padding-left: 30px;\">This pretty much automatically means that you&#8217;re not going to accept certain patches for reasons of increasing your own company&#8217;s short term profit. i.e. software is no longer judged on technical merits, but rather political ones.<\/p>\n<p style=\"padding-left: 30px;\">There is enough politics in free software as it is, creating more is not a feature.<\/p>\n<p>So when people ask me about how I think the OpenStack launch went, I really want people to know how amazing it can be to just not fuck it up to begin with. Initial damage is <strong>very<\/strong>, <strong><em>very<\/em><\/strong> hard to ever undo. The number of Open Source software projects originally coming out of a company that are long running, have a wide variety of contributors and survive the original company are much smaller than you think.<\/p>\n<p>PostgreSQL has survived many companies coming and going around it, and is stronger than ever. MySQL only has a developer community around it almost in spite of the companies that have shepherded the project. With Drizzle I think we&#8217;ve been doing okay &#8211; I think we need to work on some things, but they&#8217;re more generic to teams of people working on software in general rather than anything to do with a company.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Josh Berkus gave a great talk at linux.conf.au 2010 (the CFP for linux.conf.au 2011 is open until August 7th) entitled &#8220;How to destroy your community&#8221; (lwn coverage). It was a simple, patented, 10 step program, finely homed over time to &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2010\/07\/28\/howto-screw-up-launching-a-free-software-project\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[76,11,14,254],"tags":[345,70,626,628,344,634,49,342],"class_list":["post-2088","post","type-post","status-publish","format-standard","hentry","category-code","category-linuxconfau","category-mysql","category-rackspace-work-et-al","tag-cla","tag-drizzle","tag-linuxconfau","tag-mysql","tag-opencore","tag-openstack","tag-oscon","tag-postgresql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-xG","jetpack-related-posts":[{"id":2145,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/09\/29\/lca-miniconf-call-for-papers-data-storage-databases-filesystems-cloud-storage-sql-and-nosql\/","url_meta":{"origin":2088,"position":0},"title":"LCA Miniconf Call for Papers: Data Storage: Databases, Filesystems, Cloud Storage, SQL and NoSQL","author":"Stewart Smith","date":"2010-09-29","format":false,"excerpt":"This miniconf aims to cover many of the current methods of data storage and retrieval and attempt to bring order to the universe. We're aiming to cover what various systems do, what the latest developments are and what you should use for various applications. We aim for talks from developers\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1400,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/02\/20\/linuxconfau-2009-wrap-up-incl-open-source-databases-mini-conf-day-0-1\/","url_meta":{"origin":2088,"position":1},"title":"linux.conf.au 2009 wrap-up (incl Open Source Databases Mini-conf): Day 0-1","author":"Stewart Smith","date":"2009-02-20","format":false,"excerpt":"It's no secret that I love linux.conf.au. My first was linux.conf.au 2003, in Perth and I've been to every one since (there are at least two people who've been to every single one, including CALU as it was called in 1999). I've been on the board of Linux Australia for\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3651,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/01\/13\/my-lca2014-talk-video-past-present-and-future-of-mysql-and-variants\/","url_meta":{"origin":2088,"position":2},"title":"My lca2014 talk video: Past, Present and Future of MySQL and variants","author":"Stewart Smith","date":"2014-01-13","format":false,"excerpt":"On last Wednesday morning I gave my talk at linux.conf.au 2014. You can now view and download the recording of it here: http:\/\/mirror.linux.org.au\/linux.conf.au\/2014\/Wednesday\/28-Past_Present_and_future_of_MySQL_and_variants_-_Stewart_Smith.mp4 (hopefully more free formats will come soon, the all volunteer AV team has been absolutely amazing getting things up this quickly).","rel":"","context":"In &quot;linux.conf.au&quot;","block_context":{"text":"linux.conf.au","link":"https:\/\/www.flamingspork.com\/blog\/category\/linuxconfau\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2447,"url":"https:\/\/www.flamingspork.com\/blog\/2012\/01\/23\/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena\/","url_meta":{"origin":2088,"position":3},"title":"MySQL and PostgreSQL Cloud Offerings &#8211; linux.conf.au 2012 miniconf talk by myself and Selena","author":"Stewart Smith","date":"2012-01-23","format":false,"excerpt":"Selena and I gave a talk on the various issues of running databases \"in the cloud\" at the recent linux.conf.au in Ballarat. Video is up, embedded below:","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3661,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/02\/03\/past-present-and-future-of-mysql-and-variants-part-1-ghosts-of-mysql-past\/","url_meta":{"origin":2088,"position":4},"title":"Past, Present and future of MySQL and variants Part 1: Ghosts of MySQL Past","author":"Stewart Smith","date":"2014-02-03","format":false,"excerpt":"You can watch the video of my linux.conf.au 2014 talk here: http:\/\/mirror.linux.org.au\/linux.conf.au\/2014\/Wednesday\/28-Past_Present_and_future_of_MySQL_and_variants_-_Stewart_Smith.mp4 But let's talk about things in blog form rather than video form :) Back in 1979, there was UNIREG. A text UI to records (rows) in a database (err, table). The reason I mention UNIREG is that it\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1347,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/01\/14\/people-on-irc-as-some-measure-of-a-project\/","url_meta":{"origin":2088,"position":5},"title":"People on IRC as some measure of a project","author":"Stewart Smith","date":"2009-01-14","format":false,"excerpt":"#mysql isn't too fair to include, as it's really about users, not dev. #mysql-ndb is there because i heart ndb. Oh, and linux.conf.au is there because it's *awesome* and you should go. Totally unscientific due to i'm only taking a sample once and whatever... but it kinda interests me...","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"http:\/\/spreadsheets.google.com\/pub?key=pvD6nw6CQOO7xiL2Fxkl0Dw&oid=1&output=image","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=2088"}],"version-history":[{"count":3,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2088\/revisions"}],"predecessor-version":[{"id":4155,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2088\/revisions\/4155"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=2088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=2088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=2088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}