Brayansong's Blog

He who controls the past controls the future. He who controls the present controls the past.

Online Community Encouraging Contributions

 

From my last blog post, we discuss about what is online community, characteristics of it, human psychology which also can be understand as social psychology or psychology of community in this case. I also mentioned about keys to create a success online community, today we are going deeper into this. We are going deeper into my favourite online community GitHub.

So What Is GitHub

You might be heard of GitHub, if you are a code savy like me I bet you definitely heard about this lovely name. (I just can’t express my love to this community, I’ll explain this later). So for those who don’t know what GitHub is, GitHub is an online community built for developers which claim to be the world’s leading software development platform. GitHub is founded by Tom Preston-Werner. Feel free to find more about GitHub from here. What I found lovely in GitHub is the culture and the features in provide. In short GitHub is an online community where developers share thoughts, contributes, and collaborate. GitHub also plays abig role in Version Control.

GitHub’s Different Pricing Packages

Don’t worry, GitHub is free for use but with limited feature, unless you need particular features or functions otherwise you don’t need to pay. From my perspective the free version is already heaven. However for those who have professional needs check out this page. For students there’s good news for you, you can request for a Student Developer Pack, check Figure 1. GitHub’s also provides a market place where you can buy software or tools for different purpose. I provide a screenshot of the market place in Figure 2.

Figure 1. GitHub’s Pricing Packages (Private)

Figure 2. GitHub’s Market Place(Private)

Culture

If you remember what I mentioned in my last blog post you might have remember culture is a key to build a success community. If you ever head of Open Source Projects then bingo you are in the right place, GitHub is the largest open source community in the world. You can review, contribute and do surveys here in GitHub. GitHub build the culture to encourage developers or coders to contribute on these open source projects. If you check out this page you will find an ‘event’ started by GitHub called ‘Open Source Friday’ In Open Source Projects no one is getting salary from either a company or the project starter, (although some do donation) however people do help Open Source Project because of motivations. Motivations pathways can be separated as ‘Expectancy’, ‘Intrinsic’, and ‘Heuristic’. Expectancy motivation pathway meaning that ‘Classic expectancy-value model in organizational behavior hold that people will work hard if they think that doing so will lead to outcomes that they value e.g. working hard to get a promotion or playing a computer game to get a high score’– Dr Jason Watson. Intrinsic meaning that ‘The actions (effort) itself can be satisfying and valuede.g. playing a computer game because you like slaying dragonsand watching their wings fall off. Or playing pacman because it is exciting to avoid the ghosts.’ – Dr Jason Watson ‘Heuristic’ meaning that ‘the desire to improve is also directly motivating e.g.Playing a game because you enjoy the fact you are getting better at it.’ – Dr Jason Watson. There are still more Motivations but for today I will focus on this three and explain from my perspective how these motivations can be applied in GitHub this online community.

The Motivation Effects

Starting from ‘Expectancy’, GitHub provide a personal portfolio on its member page showing how much contribution he / she made, these contribution can be earned by reviewing code and contributing on projects. For myself I really find it useful I would like to ask for a person who has more contribution to review my code than those who doesn’t have that much of contributions. It’s like a pride and maybe can build as a portfolio when I try to seek a developer job. That’s how ‘Expectancy’ work, developer working hard to get more contributions shows on their profile.

Second is ‘Intrinsic’, somebody do enjoy helping others and coding, even they don’t get any in payback they just enjoy doing this. Open Source Projects don’t pay back however there are still a lot of developer continuing contributing to it, is it because of this motivation? Maybe is.

The last one for today, ‘Heuristic’. I personally feel deep in this, like everyone I start from a newbie I have no idea what GitHub is and even what is ‘pull’ or ‘merge’ in GitHub, but I was able to I learn from the community – GitHub’s Forum. There is a thread called ‘Learning Hub’, where encourage newcomers learn and ‘teach’ other moderators are also actively in this thread to guide. Another thing, I learned a lot fomr this community that makes me feel I am getting better in coding. This is the motivation of ‘Heuristic’.

Purpose and Features

GitHub has a lot of purpose, it can be used to interact with other developers, collaborate, or help in project management. GitHub provides a tons of API that allow its member to unleash the power of GitHub in a more efficient and east way. User can do almost everything the web version can do by firing API in command prompt or terminal. Features that GitHub provide includes creating brunches, cloning, direct editing code, ask for code reviews, and do automatic comparison on text or code (Figure 5 give an example on this), and may more other features. If use paid for particular professional packages, user can get more additional features. GitHub automatically sends email to user if the code request has been accepted. GitHub also works well with other project management tool or IDE such as Slack, CodeClimate and Atom etc. Figure 3 shows an E-Mail sent by GitHub to notify me about a branch was merged. Figure 4 shows a screenshot of GitHub’s Homepage about other applications that are integrated with GitHub.

Figure 3. Merge E-Mail by GitHub (Private)

Figure 4. Integrated Application (Private) 

Figure 5. Auto Comparison on Text or Code

Encourage

Okay let’s get back to the point, how GitHub encourage its user to contribute? The more contribution made the more popular GitHub is going to be and more user are going to join! From text mentioned above you can know that GitHub is a very good culture builder, GitHub create events and encourage newbies to learn from each other and even request moderators to help up to create a great learning culture to newcomers. The portfolio and insights shows on each opened projects also encourage its user to contribute either to build personal portfolio or to make contribution on the projects requested by the project owner or ‘scrumb master’ in a project management’s term. Its human nature if you receive somebody help, would you help them back in the future? For me yes.

Design Challenges

Including the ‘Expectancy’, ‘Intrinsic’, and ‘Heuristic’ mentioned above. If you try to break down GitHub with Social Design Challenges you can find out that actually GitHub also applies Request Visibility and Social Influence. Request Visibility can be defined as ‘Making the list of needed contributions easily visible increases the likelihood that the community will provide them’. If you navigate to ‘Discover Respositories ’ you can find a list of needed contributions either from open-source projects to undergoing development projects. This encourage community (developer community) to improve and contribute to them. This big community includes Developers around the world and each individual can always find a gap to fit in with their profession. Figure 6. Shows a screenshot of this page. Tags included also show the list of needed profession or in order words programming language needed user can short these out and find the one which they interested in.

Figure 6. Discover Respositories (Private)

The other definition is ‘Providing easy-to-use tools for finding and tracking work that needs to be done increases the amount that gets done’. GitHub provide variety of easy-to-use tools for its members, for example: beyond the web app you can track the commitment, traffic and code frequency of each repository a.k.a Repo. GitHub shows the insight of commitment using visualized graphs and numbers, encouraging individual to commit. GitHub also provides tons of API as a tool to improve development process and also can be used to do project management. Figure 7. Is an edited screenshot of Insight Graphs provided by GitHub as a tool to provide tracking on progress. Check out this link to see API developed by GitHub too.

Figure 7. Insight Graphs (Private)

 

Follow by Social Influence, on GitHub’s home page you can find a list of large firms which cooperate or uses GitHub, isn’t this influential? This explains ‘high-status people in the community lead to more contribution than anonymous requests or requests from low-status members.’ – Dr Jason Watson. For this scenario, high-status people can be referred as worldwide large company. During the lecture, Dr Jason Watson also mentioned that ‘People will be more likely to comply with requests if they come from others who are familiar to them, similar to them, are attractive, are of high status, or have other noticeable socially desirable characteristics.’ Most of these large company such as Airbnb, IBM, Facebook and others (check Figure 8) are well known by people, this cause more attractive, being part of the project development started by these company is super cool right. Even if you don’t be part of them, when you see all these big companies are using this service or are in this community will you be convinced to use and be part of it too? Now you understand how GitHub attracts more developers and encourage contribution. People are more likely to comply with a request when they see that other people have also complied. Report shows that GitHub has 27 Million Developers Worldwide (Retrieved on 6-May-2018). There are so many people are contributing to this community so why not be part of it? As discussed influence can be a very important key point that makes such a great and big community. Are you also a part of this big community? Tell me in the comment below!

Figure 8. Cooperated Companies (Companies uses GitHub)