What Facebook can Learn from Git


Facebook (and other social media services) can adopt a couple of very useful ideas from the far more advanced social collaboration platform, Git. While these are probably better thought of as power user features, they can actually provide a very beneficial function for the social network as a whole.

  • Post Forking (vs simple Sharing): I would like to fork an existing discussion going on someone else’s wall and have my friends participate in it on my wall. At present, the best I can do is share the original post, but not the discussion that followed. Many discussions actually are a lot more interesting than the original post itself, so it would be great if we can include those too. I assume this would apply to public posts only.
  • Making Pull Requests: At some point, the person who forked original discussion may want to merge it back into the original discussion as a way to contribute back or to enrich the original discussion. Here a “pull request” type mechanism could be employed. The person who started the original discussion will of course have the choice to accept the pull request and even edit it if they feel the need.
  • Resyncing the Fork: Of course, once your pull request has been merged in (or even otherwise) you may want resync your fork with the original discussion to get he benefit of any discussion that happened or any other pull requests that got merged in after you forked.
  • Creating Releases: Some discussions may be extremely large and usually only a fraction of the comments may be worth highlighting. Or there may be multiple angles being discussed, each one deserving special treatment. Here, a mechanism like creating a “release” would be useful. The original poster can create such releases when they feel they have something worthwhile to release. This would essentially be a curation type feature that could then be aggregated by Facebook and in turn released as a “Facebook Newspaper” release.

These are just some initial thoughts and there are probably further enhancements or simplifications that may be possible beyond this. Ultimately, the idea here is to not just to enrich the discussions for everyone, but also to reverse some of the fragmentation / bubble formation that has occurred. Each merge or resync will be an opportunity to bring in thoughts from people outside your bubble.

Basically, you can see all the reasons that make Git such a powerful tool for software development being useful here too. Note that the feature may be a little hard for most people to understand, so Facebook might decide to make the feature an “opt-in” type feature so mostly the power users will opt in for it. This should be fine because most of these discussions that really matter would be on the walls of people who are likely to be power users. Also the discussions that really matter are few and far between, so even the power user may not enable the forking mechanism for all of them.

Of course, you may ask, if we need to put all these constraints, and if only, say, 1% of discussions take advantage of them, why do it at all? The point here is that the whole idea of social networks, in my opinion, besides giving people a way to express even their most mundane thoughts thus bringing them closer together, is to allow these really important discussions to occur and spread. And such discussions are usually extremely few and far between. My guess is that even if 0.0001% of discussions on Facebook follow this mechanism, it will still be totally worth it.