Saturday, September 11, 2010

Forking is a Feature

While Linus Torvalds is best known as the creator of Linux, it's one of his more geeky creations, and the social implications of its design, that may well end up being his greatest legacy. Because Linus has, in just a few short years, changed the social dynamic around forking, turning the idea of multiple versions of a work from a cultural weakness into a cultural strength. Perhaps the technologies that let us easily collaborate together online have finally matured enough to let our work reflect the reality that some problems are better solved with lots of different efforts instead of one committee-built compromise.

GitHub's map of code forks

The idea of "open source" in the technology world is really a set of cultural beliefs, despite usually masquerading as technical or legal choices made by a community. All cultures have norms, and standards of behavior, and most importantly, they have behaviors they consider antisocial or destructive.

For most of the first three decades of open source's ascendance, the most destructive action that one could threaten to do, the nuclear option, was to fork.


There are several related technical concepts that can answer to the name "fork", but the one I reference here is the dramatic moment when a software project undergoes a schism on ideological or technical grounds. Instead of merely taking their ball and going home, those who forked were taking a copy of your ball and going to a new playground. And while splitting a community could obviously cause an open source community's momentum to grind to a halt, even the mere threat of a fork could cause significant problems, by revealing conflicting goals or desires or motivations within a previously-united community.

Still, forks have had important consequences. Firefox (earlier Firebird and Phoenix) was originally a fork of Mozilla, the open source browser that had been mired in indecision for half a decade. WordPress was born as a fork of B2, a neglected early blogging tool.

Outside of tech, forks have an even bigger meaning. You could make a pretty strong argument that the Reformation was a fork, or that Christianity itself is a fork. So clearly, forking a community can have a significant, even profound impact. But in tech, it had largely been seen solely as a violent, schismatic action.

Part of the predicate for forks being so disruptive was the idea that there is One True Version — a creation, like a piece of software, a written work, or anything else, that can only be accurately represented by a single ideal expression. Even some of the most disruptive technological innovations like Wikipedia are still built around the idea of achieving consensus on a definitive work, and striving mightily to avoid forks arising within the community.

Until a git named Linus changed that.

In The Road

You know Linus Torvalds, he's the guy who created (and nearly eponymized) Linux. But perhaps his most impressive act of creating technological culture is in fathering Git, the enormously popular distributed revision control system. That mouthful of a description basically means "system that lets a decentralized group of creators efficiently collaborate on a complicated bit of software". Other systems had enabled distributed revision control before, making it easier to rapidly evolve software, and to appropriately assign blame to whomever had introduced a bug into the program, but few had found any notable degree of popularity.

Forking on GitHub

But Linus' pedigree, influence and outstanding implementation immediately put Git at the forefront of choices to solve this class of problem. Even better, his credibility with the new generation of social software creators inspired the rapid launch and brilliant evolution of GitHub, a social network for developers that relies on the technology of Git as its underpinnings, but has also embraced the philosophy of Git as its fundamental interaction model.

Often, the very first thing a coder does when she sees an interesting new project on GitHub is to make a fork of it and start tinkering. That's only one of the reasons that GitHub so important, though; The GitHub principle of "see it, make your own version, and then get to work" has started to filter into other disciplines, as exemplified by design sites like Dribbble, and upcoming new sites for creatives such as Forrst.

These new sites are admittedly still in their formative stages — Dribbble just had its breakout moment with the recent popularity of redesigning the iTunes icon — but it's easy to imagine a more mature version where, instead of merely focusing on the pretty pixels on the screen, the designers who frequent the site were encouraged to describe their rationale, and to use the site's replying abilities (called "rebounds"on Dribble) to do something more akin to forking, where raw Photoshop and Illustrator files were shared.

The One True Version

Most importantly, the new culture of ubiquitous forking can have profound impacts on lots of other categories of software. There have been recent rumblings that participation in Wikipedia editing has plateaued, or even begun to decline. Aside from the (frankly, absurd) idea that "everything's already been documented!" one of the best ways for Wikipedia to reinvigorate itself, and to break away from the stultifying and arcane editing discussions that are its worst feature, could be to embrace the idea that there's not One True Version of every Wikipedia article.

A new-generation Wikipedia based on Git-style technologies could allow there to be not just one Ocelot article per language, but an infinite number of them, each of which could be easily mixed and merged into your own preferred version. Wikipedia already technically has similar abilities on the back end, of course, but the software's cultural bias is still towards producing a definitive consensus version instead of seeing multiple variations as beneficial.

There are plenty of other cultural predecessors for the idea of forking, all demonstrating that moving away from the need for a forced consensus can be great for innovation, while also reducing social tensions. Our work on ThinkUp at Expert Labs has seen a tremendous increase in programmers participating, without any of the usual flame wars or antagonism that frequently pop up on open source mailing lists. Some part of that is attributable to the cultural infrastructure GitHub provides for participation.

Moving forward, there are a lot more lessons we can learn if we build our social tools with the assumption that no one version of any document, app, or narrative needs to be the definitive one. We might even make our software, and our communities, more inclusive if we embrace the forking ourselves.
Expert Labs helps with the related process of informing policy discussions), but giving people a blank sheet of paper and asking them to create useful policy or legislation from a cold start is a pretty daunting assignment. If, instead, -->

Posted via email from

Benefits of Code Review, and why i think every software development team should do it. Talk by Guido, creator of Python.

Good morning everyone (testing posterous auto posting on @tweetitow)

Friday, September 10, 2010

"tell us exactly what to do." -- if this is how you look at work, it means, you're exactly as good as the others and are easily replaceable.

Not Labor with a capital L, as in organized labor unions. I mean labor as in skilled workers solving interesting problems. I mean craftspeople who use their hands, their backs and their heads to do important work.

Labor was a key part of the manufacturing revolution. Industrialists needed smart, dedicated, trained laborers to solve interesting problems. Putting things together took more than pressing a few buttons, it took initiative and skill and care. Labor improvised.

It took thirteen years to build the Brooklyn Bridge and more than twenty-five laborers died during its construction. There was not a systematic manual to follow. The people who built it largely figured it out as they went.

The Singer sewing machine, one of the most complex devices of its century, had each piece fitted by hand by skilled laborers.

Sometime after this, once Henry Ford ironed out that whole assembly line thing, things changed. Factories got far more complex and there was less room for improvisation as things scaled.

The boss said, "do what I say. Exactly what I say."

Amazingly, labor said something similar. They said to the boss, "tell us exactly what to do." In many cases, work rules were instituted, flexibility went away and labor insisted on doing exactly what they had agreed to do, no more, no less. At the time, this probably felt like power. Now we know what a mistake it was.

Posted via email from

Thursday, September 9, 2010

We make money the old-fashioned way--we earn it!

Professionally managed firms extinguish the spirit that keeps the entrepreneurial fires burning when they lose sight of the need to be constantly prospecting for emerging opportunities. Although these firms may have been given a facelift and restructured, they still are not positioned to seize the moment. The entrepreneurial edge does not come from sophisticated electronic spreadsheets, a new logo, or an even infusion of new capital--nor does it come from the mergers and acquisitions strategy that has become a way of life for larger firms as their executives desperately try to buy a future.

Entrepreneurship and sustained growth come from perceptiveness, innovation, flexibility, and the willingness to commit resources to emerging opportunities. As President of Compac Computer during its prime, Eckhard Pfeiffer noted, "We directed the whole organization to discover new market opportunities, to develop innovative products, and to build new manufacturing capabilities." (13) True entrepreneurs recognize that sustained growth cannot be accomplished with mirrors. True growth comes with the strategy captured in the Smith Barney ad, "We make money the old-fashioned way--we earn it!"

Posted via email from

Wednesday, September 8, 2010

Programmers with motivation problems: Joel has rarely seen successful "turnarounds".

Joel was kind enough to speak last night to Hunch and a bunch of other startups.  For me it was like being a teenager at a Justin Beiber concert - Joel's blog is perhaps my all time favorite.  Some tidbits I recall:

- Sept is critical month for recruiting interns and college grads.  Big companies all have representatives at top schools but startups almost never do.  this is something where startups could get together and benefit from economies of scale.

- Internship programs are critical for recruiting.  Joel recommend 1:1.5 ratio of summer interns to full time devs.  (My advice: even if you are super tiny company start this now - one VP Eng at the meeting said even when he was between jobs he was recruiting so when he got a job he could bring a network with him).

- Great programmers are 5-10x more productive than ok ones yet only get paid 2x or so more.  (Perhaps this is why many leave to start companies?)

Posted via email from

Tuesday, September 7, 2010

Oracle’s decision to hire Mr. Hurd presents Silicon Valley with a true soap opera, filled with fierce business dealings and saucy relationships.

SAN FRANCISCO — In naming Mark V. Hurd, the former chief executive of Hewlett-Packard, as Oracle’s new co-president, Lawrence J. Ellison, Oracle’s chief executive and largest shareholder, has put his money where his controversial mouth is.

Fred Prouser/Reuters

Mark V. Hurd in Pasadena, Calif., in 2009.

Late on Monday, Oracle announced that Mr. Hurd had joined the company as a president and a director. Mr. Hurd resigned from H.P. one month ago, after an investigation by the board into a personal relationship with a contractor turned up questionable expense reports.

Mr. Ellison, a personal friend of Mr. Hurd’s, criticized H.P.’s board last month in an e-mail message to The New York Times, saying it was “the worst personnel decision since the idiots on the Apple board fired Steve Jobs many years ago.”

Now, Oracle intends to capitalize on H.P.’s mistake, Mr. Ellison said.

“Mark did a brilliant job at H.P., and I expect he’ll do even better at Oracle,” Mr. Ellison said in the statement. “There is no executive in the I.T. world with more relevant experience than Mark.”

Posted via email from

Thursday, September 2, 2010

I know what I’ll use the Galaxy Tab for: to show off Android.

Impressions · All the apps I tried ran just fine, including a couple of immersive games that really benefited from the extra inches. I’ve heard of a few apps that misbehave, but their problems were obvious & easy to fix; watch for details over on the Android Dev Blog, starting later today. ¶

Samsung has sprinkled some sugar on the out-of-the-box Google UI elements, and while the community’s opinions on hardware companies’ efforts to improve Android software have been, um, mixed (my own is extremely mixed), I have to say that the Samsungers have shown restraint, putting the extra real estate to good use in good places, for example the notifications pull-down. There may be some of that integrated-social-everything that frankly gets up my nose, but my nose remained clear around the Tab, so if it’s there it‘s at least easy to ignore.

It’s snappy, especially on games where that matters; maybe there are places where servicing the extra bits in the 1024x600 screen will hurt, but I didn’t run across them.

It’s got a phone but (at least on the pre-release model I used) you can’t hold it up to your head, which is a good thing as that would look supremely dorky.

Did I mention that the screen is beautiful? Also it feels really good in the hand and looks pretty nice, and is obviously in the first microsecond’s glance not an iPad.

Posted via email from

Where can i buy one?