Home

I’ve had my ‘fork you’ shirt for over a year. It was a gift from Github when I made a partnership call on them to discuss how we could better work with Github Enterprise. I wore it on an early brunch date with @stefpiece, and it caused a bit of a stir in the restaurant even in tech savvy Palo Alto. At first blush the word fork sounds pointy and aggressive–and this is why the shirt is funny.

Fork_photo


‘Getting’ the fork shirt joke is like the recent quote from @cdixon:

 

“What the smartest people do on the weekend is what everyone else will do during the week in ten years”

 

Not everyone gets it. Last week the liberally open source project I work on, Cloud Foundry, was written up as being ‘in fear of forking’. Suddenly wearing my favorite shirt took on new meaning. Many people haven’t realized we have shifted open source eras, and in this era liberal forking is a requirement for a strong community.

 

I experienced my first open source shift when at Level 3 Communications in 1999–we ported several high throughput sections of our VOIP from Solaris 8 to Red Hat on x86. By my recollection that project started when the well known ‘smartest’ engineer on our team Roy Alcala started experimenting with the throughput of a few x86 servers one weekend for certain sections of the project. I accepted an amazing job offer from Sun several weeks after he convinced me Linux on x86 was the future–and spent much of my career there trying to fight back the Linux trend. As I watched Sun executives acclimate 4 years later to the reality of Linux in the enterprise I was never surprised. When Roy made the switch and pulled me aside to show me his results one weekend I already knew what 10 years later would look like, the freedom to run UNIX on almost any hardware you wanted would change the market–and in 2009 Sun was acquired at a fire-sale price.

 

One of the smartest people around me now, @drnic quietly built up weekend expertise on Cloud Foundry while he was an executive at another platform hosting company. He recently launched a consulting company based on the project’s code and already has more work than he can handle as smart early enterprises are betting on Cloud Foundry too. The project was built to be easy to ‘fork,’ with an Apache 2 license which doesn’t require users to contribute modifications back and is hosted entirely on Github. Every commit on the project is immediately available for the community to work with as it chooses. It follows the ‘fork yeah!’ development philosophy advocated by another smart guy, Bryan Cantrill. (In proof of a small world Brian is fighting to save Solaris from Oracle by bringing a modern open source approach to his distribution of the project.)


Brian’s maxim is: “The easier you make it to fork a project the more coherent the community will be” He preaches the values of rough consensus and running code for a successful community. Despite this sea change in how the best minds are thinking about software proprietary vendors will point to it as a weakness. But to others the insanity is questioning the modern fork friendly method of software development. To quote @drnic:
 

“If your company thinks that “threatening to fork [Cloud Foundry|anything]” is an actual thing, then you misunderstand open source software”

The proprietary playbook about open source – attack the organizing principles – hasn’t really changed. When GPL was all the rage Microsoft rallied FUD against another scary sounding word, ‘viral’, to describe the GPL. The GPL was  too restrictive, too anti-free-forking. We all know now that using GPL Linux in the enterprise is safe, and years from now it will be clear that fork friendly projects are the healthiest kinds of software communities.  

 

If you want get beyond the FUD and evaluate the health of a project in the fork friendly age of open source here are some areas to look at:

  • What percentage of the core code gets open sourced? Eucalyptus had to have a rough restart with their community after holding back too much of the code for a proprietary version. The result wasn’t a fork of the crippled community code but a full fresh project started by Josh Mckenty and crew at Anso Labs which eventually begat Openstack Nova.
  • Is there an active mailing list where engineers from inside and outside of the project are talking? As a subscriber to the Avro mailing list I am impressed with how frequently Doug Cutting, despite his lofty reputation in the Hadoop community, interacts in real time with new users. Rough and imperfect consensus happens here.
  • What is the quality and magnitude of the engineering resources being applied by the sponsoring company or foundation?  
  • How fork friendly is the code and process? The MySQL alternative MariaDB has begun to be included in some Linux distributions only recently after Oracle obfuscated and removed test cases from the source tree–making it harder to modify the code reliably. Red Hat itself demonstrates its misunderstanding of the current shift in OSS by obfuscating as well.    

Cloud Foundry scores well against these criteria, and all of them are actively monitored for health. And it’s not by accident. It was built to take advantage of the larger trends in community development. We can always do better and we love feedback on our mailing lists–I read every post there, often a few times.

 Freedom to use the code how they please is attracting and incredible community of developers who are teaching us about the future. Before we formally add .NET support to the project there is already a vibrant open source community around a fork of our code which adds it. We are actively cultivating customer feedback on this community fork and working with many large enterprises who have adopted it.

 The last time I had clear evidence from the work of a smart person on a weekend I made a short term play for a promotion and a sexy sounding job title in corporate development. This time I won’t be making the same mistake. I am all-in on the Github approach to open source and the Cloud Foundry project.

 Our primary mailing list is here.

The Github shirt can be bought here, and will set you back 22$.

2 thoughts on “my ‘fork you’ shirt

  1. Why isn’t part of the health criteria a measure of how large the delta is between a fork and the core project, how latent have forks been in being merged back into the project, and whether some set of forks cause customers to have to choose from a mutually exclusive set of options?What level of analytic depth would suit you? I’d be happy to drill in, but I’d want to do so in a fashion that would satisfy you.The name of this site is "Posterous", James, not "Presumptuous". You presume too much in stating that somehow .NET forks (two competing forks, I might add) have slowed our sales cycles. Our sales cycles have compressed by roughly 25% since .NET "support" was released for CloudFoundry, and we have achieved some spectacular customer wins (including a number of direct compete scenarios with CloudFoundry). Wouldn’t your last paragraph amount to the FUD you so despise?

  2. Sinclair,
    Yes, clearly I do. I point out two community fractures in the write up (Eucalyptus and MariaDB) and explain why the health criteria mentioned could forecast problems for OSS communities. Even in these cases of fracture however the communities continue to learn from each other (Openstack and Eucua, MySQL and Maria) because to win a community they must stay open. Notice how as a proprietary vendor you don’t discuss even those fracture with any analytic depth because that wouldn’t suit your FUD purposes.

    I know the existence of a .NET fork for Cloud Foundry has been slowing down your sales cycles as customers consider using it. I’m not sorry about this, because it is the future, and I can’t stop the future. I advise you not to bet against this groundswell as I did when I took the Sun offer.

    James

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s