Coevolving Innovations

… in Business Organizations and Information Technologies


Technology-supported collaboration, Git and GitHub

Posted on September 15, 2013 by daviding

Through dubious television coverage on GitHub, some publicity on technology-supported collaboration have surfaced.  Business Insider reported:

Fox Business tried to use a bunch of coder lingo in a report on social coding startup GitHub — and failed.  [….]

The coders and developers over on Hacker News have been dissecting the video all day.

While there is technology involved, the challenge is better described as a change in style on collaboration around artifacts.  In an interview at Disrupt SF 2013, Tom Preston-Werner, co-founder of Github, said:

It’s looking more about what’s possible in the world of collaboration. It’s more about people’s behaviour. It’s more about what they’re doing.

If people are using e-mail a lot, to share documents back and forth, this is a huge problem. The work that people do needs to be next to the communication they do. This is our vision for the future. And this is why Github puts communication mechanisms, pull requests, like having discussions around work changes, and being able to document them, put them next to the files that people are working on. Most often it’s code, but put those things together.

The challenge, the real competitor is behavioral. It’s the technologies in general that we’re using, and e-mail primarily. It’s getting people away from the mentaliity that everything can be accomplished via e-mail, and that’s the best solution. That is not the best solution, for most problems. It closes things down.

  • Tom Preston-Werner | On Breaking Down Walls | Sept. 11, 2013 | Disrupt SF 2013

This web video led to presentation of an opportunity, and criticism, by Lauren Orsini.  GitHub is focused primarily on software development, although it the technology could be advantageous in broader contexts.

Here’s a secret: GitHub isn’t just for writing code. Too bad GitHub doesn’t seem to care.

If you’re not a developer and you’ve heard of GitHub at all, you probably only know it as an online space where developers work together on coding projects—one that’s only useful to the geekiest sector of the population.

But GitHub is actually an incredibly useful tool that could be used to organize any group project online. And the day that “regular” people begin adopting it is closer than you think.

On Wednesday, GitHub CEO Tom Preston-Werner said normals are welcome to join the party. “We want to make [non-development] use cases possible,” he said at the TechCrunch Disrupt 2013 conference. “Now, we still optimize GitHub for software developers. This is something that’s very important to us. Software is the future of the world.”

With a lackluster welcome like that, you could be forgiven for not rushing to sign up for an account right this instant. From a technical standpoint, though, GitHub isn’t at all specific to code projects. It’s open to anyone. If only GitHub made more of an effort to make those others feel more welcome.

I had previously looked at GitHub when I noticed that Ward Cunningham (the original inventor of the wiki) has been hosting the Federated Wiki project on Github. I played around with it enough to get a basic appreciation of the technology. Other non-technical people might appreciate a bit of a primer.

  • 1. What is Git, and GitHub?
  • 2. What is the promise of Github, in changing the way workers collaborate?
  • 3. Are there alternative to the Github technology?

While Github is the most advanced way for developers to track changes in code, features of real-time collaboration for non-technical professionals first emerging in Google Wave (now Apache Wave) have shown up in Google Docs and IBM Docs.

1. What is Git, and GitHub?

Git was developed by Linus Torvalds around 2007, as an open source alternative for source code management associated with Linux.

Git is architected as decentralized, with an origin from where individuals may push to and pull from (as well as amongst each other).

… (since Git is a DVCS [Distributed Version Control Systems], there is no such thing as a central repo at a technical level). We will refer to this repo as origin, since this name is familiar to all Git users.

Decentralized but centralized | nvie.com
Each developer pulls and pushes to origin. But besides the centralized push-pull relationships, each developer may also pull changes from other peers to form sub teams. For example, this might be useful to work together with two or more developers on a big new feature, before pushing the work in progress to origin prematurely. In the figure above, there are subteams of Alice and Bob, Alice and David, and Clair and David.

This organization of work enables individuals to first work independently, and then subsequently discuss merging their changes together.

Incorporating a finished feature on develop | nvie.com

 

GitHub is a repository hosting system, extended with some additional features.

At the heart of GitHub is Git, an open source project started by Linux creator Linus Torvalds. Matthew McCullough, a trainer at GitHub, explains that Git, like other version control systems, manages and stores revisions of projects. Although it’s mostly used for code, McCullough says Git could be used to manage any other type of file, such as Word documents or Final Cut projects. Think of it as a filing system for every draft of a document.

Some of Git’s predecessors, such as CVS and Subversion, have a central “repository” of all the files associated with a project. McCullough explains that when a developer makes changes, those changes are made directly to the central repository. With distributed version control systems like Git, if you want to make a change to a project you copy the whole repository to your own system. You make your changes on your local copy, then you “check in” the changes to the central server. McCullough says this encourages the sharing of more granular changes since you don’t have to connect to the server every time you make a change.

GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.

The flagship functionality of GitHub is “forking” – copying a repository from one user’s account to another. This enables you to take a project that you don’t have write access to and modify it under your own account. If you make changes you’d like to share, you can send a notification called a “pull request” to the original owner. That user can then, with a click of a button, merge the changes found in your repo with the original repo.

These three features – fork, pull request and merge – are what make GitHub so powerful.

2. What is the promise of Github, in changing the way workers collaborate?

In an interview with Tom Preston-Werner, GitHub and its applications were discussed. GitHub is fundamentally a collaboration tool.

Tom Preston-Werner: Github really is the best place for people to work on software projects together. Really, this is about bringing large collections of people together to work on hard problems. Especially, in software, the problems that we face today today require large teams of people working together, on these complex problems, to really be successful.

The interactions that you have, when working you’re working on software, are complex. There’s two parts to writing code. There’s the writing of the code itself, in creating images and workflows. There’s also talking about that with everybody else on the team, and making sure that everybody knows what is going on, and being able to decide what the next decisions are, the next improvement to the product.

And so while most people end up writing code on their own, being able to talk about that is something that you need help with. That’s what we aim to do, making that part of writing software easier, by giving developers the best tools to help that.

Interviewer: When you founded Github, what was the status quo, for coding and developing, at that time? What are the alternatives? What did you replace?

Tom Preston-Werner: [….] Internally, people were using a lot of centralized version control systems. [….] It was all about locking what work could be done, saying I have control over this file, I have control over this chunk of the code, and you can’t have it. This was the mainstay. This was control by preventing people from doing work. What we want to do is to allow people to be able to do the work without having to ask permission, and then propose a change and have a discussion around it.

You need to have what is called branching. You need to be able to say: here is the main version of what we’re working on, the current version. I would like to make my own version with some improvements. To do that on your own terms, and then bring it back to the other people working on the projects and have a discussion about it. This wasn’t happening a lot. This kind of collaboration, this easy experimentation wasn’t the standard ten years ago.

The challenge in large enterprises is that collaborating is not only about technology, but also on culture, i.e. permission.

[at 7:06] Interviewer: …. What should I ever put anything in any open collaborative environment at all? My algorithms are the more treasured thing about what makes my company successful. What would you tell him? Would it be possible at all to convince him?

Tom Preston-Werner: Yeah. Actually I’ve talked to CIOs and CTOs of a lot of large firms, including banks …. They’re not too difficult to sell on the concept. What happens in large enterprise is that you have various divisions of the company grow up as silos, because you need to be able to have those people concentrate on what they’re doing. Each division is concentrated so that they can have the right number of people to talk to. You can’t talk to everyone in the company. You have to focus on what you are doing.

The problem, though, is that you end up with these different silos. Each department has its own silo. They have all their own needs. And then they have problems because they’re not talking to each other. In order to go after these very large opportunities that people are seeking, you need to break down these walls.

So when we talk to them about Github as being a place that can tear down the walls between the silos of companies, to make it so people can watch and follow and pay attention to just the software development, or just the projects that they’re interested in, then that’s very interactive to them.

I’ve definitely sold companies on the idea of a form collaborative type of working, but they need permission. This is where the challenge comes in. Giving them the kind, and finely enough-grained permissions, to control access to, who has access to, what sensitive components.

GitHub has been used by non-technical professionals.

[at 10:25] Interviewer: You have a big distributed workforce, though. That’s been something you’ve been famous for, since day one. You have employees all over the world.

Tom Preston-Werner: Yeah. We have about two-thirds of our workforce distributed. We’re in about 35 states and 10 countries around the world.

Interviewer: How do you keep that all connected? I’ve heard that internally at Github, people use Gmail, but even people who aren’t developers at Github, they use Github. You all use Github to talk to each other. How does that work? How does that non-technical person, what do they do with Github?

Tom Preston-Werner: Even our lawyers, our press people, finance, everyone at Github uses Github. It’s about the ability to create a project for anything. While we started with super-optimizing for just code, Github can work for anything, really.

When we think about what we do today, at work today, it’s about having files that we that we work on, and then working on them with other people, and then communicating about the future of the company. In that way, people can use Github to talk about the changes that they’re going to make. In the same way that we propose changes to code files, and are able to look very specifically at which line changed and what that means, and have a discussion about that.

When you’re designing a legal document, for instance, you need to collaborate in the same way, with people who care about that document. Whether it be a terms of service, or a non-disclosure agreement that you want potential candidates to sign when they come in, whatever it happens to be, anyone in Github is able to look at those things and contribute to that conversation.

The way that we integrate with e-mail is really great. You can @-mention someone on Github, you can just someone’s name, their Github username, in an issue, or a pull request, and they will be notified of that change. It’s a way to bring people in, very easily, that care about something, so easily that you’ll actually do it. You probably won’t take the time to go back out to e-mail, craft a message to someone saying “Hey, you should go look at this thing”, and then paste in the URL for what they will want to look at. It’s too much effort. Reducing the barrier to get these things done, is how we make work better.

The primary challenge is that this form of collaboration changes the workflows within an organization.

[at 12:35] Interviewer: It sounds like that’s how you all you use it at Github. How many other people outside of Github use Github that way? Going forward, how much easier do you want to make it so that people who are non-technical so that Github can be used for other things, e.g. for legal documents. Is that something that you’re purposeful about?

Tom Preston-Werner: There’s a large amount of education that we need to do. We’re working on videos, a lot of video material, to be able to demonstrate these workflows. Workflows are hard to communicate in just static web pages. So, what we want to do is show the world how we use Github, and how other companies are using Github in unique ways, for different types of situations, whether it be for law or finance, or in their design groups, or to interface with their customers in a very open way, showing them their own development. So, video is how we’re trying to tackle this education problem, as well as improving just our marketing overall ….

As a company, GitHub is still mostly targeted at software development.

[at 13:30] Interviewer: In the future, is your goal to have a law firm use Github, or a journalistic newspaper using Github internally, a place where the focus is not developing software, but something totally different?

Tom Preston-Werner: We want to make those use cases possible, yeah. Now, we still optimize Github for software developers. This is something that is very important for us. Software is the future of the world. We want to make it possible for everyone who works around software to be involved in those discussions, while at the same time making the software flexible enough that lawyers, or people within the government, or anyone, can use it to work on the projects that they care about. We can do both. We’re looking and talking to a lot of people right now about how they use Github, and how to extend the use cases for Github.

The cultural aspects of collaboration can be more challenging than the technology.

[at 14:30] Interviewer: I want to talk a bit about the ethos of Github, the idea of collaborating. What is that like?

Tom Preston-Werner: It’s pretty awesome. You should at least try it.

Interviewer: The thing that people say always about Github is that it’s collaborative, saying, hey, I’ll fix that for you.

Tom Preston-Werner: It’s about not having to ask permission. It’s about preferring foregiveness, rather than asking for permission, by saying, hey, your thing is broken, I fixed it, you should check that out. This is the kind of main cycle that you see in open source all of the time. We come from an open source background.

So seeing this workflow of, I propose a change, let’s discuss it and push it back in, this is really empowering. So, now do you no longer need to be blessed to work on a repository of projects, before you start the work. Instead, you can play with it in your own private work space, do whatever you want to it, make mistakes, try things out, try ten things out all at once, different things, choose the best one and show it back to the maintainers, and say, hey, this is what I see as the future of this project.

So, it’s more an empowering thing, by smoothing out those communication channels and bringing people together. It’s networking people more closely. It gives people more power.

The reliance on e-mail is dysfunctional within an enterprise.

[18:45] Interviewer: When you’re talking about people working together, who’s your biggest competitor? When you talk about collaboration, there’s a lot of big companies ….

Tom Preston-Werner: From a competition perspective, we don’t really look at the landscape and say these companies are doing these things, and we need to answer to that. It’s looking more about what’s possible in the world of collaboration. It’s more about people’s behaviour. It’s more about what they’re doing.

If people are using e-mail a lot, to share documents back and forth, this is a huge problem. The work that people do needs to be next to the communication they do. This is our vision for the future. And this is why Github puts communication mechanisms, pull requests, like having discussions around work changes, and being able to document them, put them next to the files that people are working on. Most often it’s code, but put those things together.

The challenge, the real competitor is behavioral. It’s the technologies in general that we’re using, and e-mail primarily. It’s getting people away from the mentaliity that everything can be accomplished via e-mail, and that’s the best solution. That is not the best solution, for most problems. It closes things down. It doesn’t give things a URL.

A huge part of what we do is to give things a URL, so that when someone joins the company, you can say, we already had all of these discussions about how this project you’re going to work on, go look at them right here. You can’t do that with e-mail.

  • Tom Preston-Werner | On Breaking Down Walls | Sept. 11, 2013 | Disrupt SF 2013

3. Are there alternative to the Github technology?

Github is famous as a place to share content on the open web.  For other situations, alternatives include GitHub Enterprise, GitLab, Gitorious and Atlassian Stash, says JonathanMH.

Leave a Reply

 



↑ Top