Collaboration can be an amazing tool that produces results unattainable by just one person. It can also be complicated, time-consuming and frustrating to organize effective collaboration. While it is a challenge to organize efficient workflow in our own offices with coworkers we see on a regular basis imagine the task of orchestrating the collaborative efforts for limitless authors who have never met or spoken to each other but all want to contribute to the creation of a project. Believe it or not, a solution to that scenario for programmers has not only existed for over a decade but it is free to anyone who wants to use it. Enter Git, the open source version control collaboration tool.
While you have probably heard about Git or GitHub, one of the most popular software development platforms that was recently acquired by Microsoft, you may not be familiar with what exactly Git is and why it is so important. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Here is how it works; say you write some code to do something useful like calculate the payments on a mortgage given the principal, rate and term. You could then make that code available for others to download it as a clone from GitHub or another Git hosting site. The user could then add their own elements to the code like accounting for a balloon-payment or early pay off options or penalties. The code now has more features and is more useful, and can be uploaded to the original tree where it is available for review by the publisher. This makes a new 'branch' of the file that includes the original and the enhanced code as one. All changes to the code can be seen and attributed to the author that made them. If the master owner wants to include the changes in the master file they can do so through their own git merge and establish a new version of the master to pull from.
You can see that through this process that any number of users can access, change and see other changes from users simultaneously without compromising the original content and have the ability to view the most recent changes to files. By allowing more programmers to seamlessly access and merge their work together, the power of collaboration real gains speed. When Microsoft announced their purchase of GitHub they said this about programming collaboration, "In short, developers will be at the center of solving the world’s most pressing challenges. However, the real power comes when every developer can create together, collaborate, share code and build on each other’s work."
Still, the question must be asked, what is Microsoft's angle? They are a large corporation, not a generous or philanthropic program that wants to gift open source software to the world. Why would they buy GitHub and what are their plans with it? While it would certainly be impossible to know what the exact reasons for Microsoft's actions there are some important things to note that may help piece the picture together. One is that GitHubs current set up while utilizing the open source Git is not an exclusively free service with paid plans for organizations using the service heavily. Microsoft has also shown that they like to have their own open source/paid services as demonstrated in their Visual Studio products and somewhat in their Office Online products. It seems that Microsoft sees value in open source that is both intrinsic and monetary.