From the « closed project » to the « social coding

SocialCoding1For many years, the Open Source principles have had a significant impact on development practices.

At first, this was all about opening the code i.e., offering access to it to anyone and usually delivering it with a specific license guaranteeing all 4 fundamental liberties for free software:  freedom to run it, study it, redistribute it and adapt it.

Source code sharing got gradually formalized with dedicated websites that provide hosting for project codes (SourceForge, Codehaus, etc.)

The original idea was to enable code sharing so that different contributors could work together, regardless of their physical location. After CVS, Subversion became the reference for “Source Code Management” leading to brand new possibilities like the idea of hosting a project on an external shared website (rather than staying inside the company’s network).

After overcoming the « closed code » barrier, the « closed project » fence fell down as well. The Cloud Computing and its connected services largely contributed to this change. If the “Software as a Service” (SaaS) approach can bring value to the entreprise software, why wouldn’t it be the case for project management?

A new generation of project management website appeared to address this new possibility: not only do they offer source code hosting, but they also provide project management tools including collaboration platform (wiki, forum, bug tracking, mailing list, etc.). Thanks to these new services, it only takes a couple of minutes to start a project, without having to worry about infrastructure constraints. It is now easier to work with external tools than with the one that provide the company.

Developers are viscerally attached to information sharing, hence the massive usage of services and information available on internet. Above all this, they are able to develop their own tools depending on their needs. In 2005, Linus Torvalds launched Git in order to facilitate the development of the Linux Kernel. This new kind of versions manager swiftly took over and brought a more decentralized approach to the project management. It was then adopted by the projects hosting websites: Bitbucket, Google Code, Assembla and of course GitHub.

The success of GitHub (more than 2 milions repositories and more than 1 million users) relies on its efficiency but mostly on its innovative collaborative approach, GitHub being designed to enhance sharing and collaboration around the source code. We may go as far as saying that this is the developer’s Facebook. Not only does it provide the project management tooling, it tends to become the big global social network for developers.

Developers have never been so split on the planet and yet, there has never been so many connexions between them.

Laurent GuérinAbout Laurent Guérin

Specialized in Java and Web technologies with over 20 years of experience in the areas of databases, object development, code generation and project management. More on Laurent.

 

Comments

  1. Not a word about Mercurial?
    While still speaking about SVN?!
    Why?

    • Laurent Guérin says:

      Mercurial works very similary to Git.
      The “social coding” is more based on GitHub than on Git itself.
      GitHub is a “social influencer” providing a new collaborative approach for developers

      SVN has provided a first step in code sharing, and is still here (respect, don’t forget it)

Speak Your Mind

*