Brayansong's Blog

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

Online Community Encouraging Commitment

 

If you follow my blog you might have gone through the post about encouraging contribution. I have always been discussing on GitHub an online platform for developers. Are you ready to know about how GitHub encourage commitment? Read through this post and you might understand.

Contribution vs Commitment

So you might have questioning about the difference between contribution and commitment? I will explain this using a formal and official definition from Cambridge Dictionary. Cambridge Dictionary define Contribution as ‘something that you contribute or do to help produce or achieve something together with other people, or to help make something successful’, while define Commitment as ‘something that you must do or deal with that takes your time’ or ‘a willingness to give your time and energy to something that you believe in, or a promise or firm decision to do something’. Fair enough, from my perspective in this scenario I will define Contribution as resources (projects / answer / codes) that shared by fellow developers all around the world, and I will define commitment as developers or users doing research on GitHub and trust GitHub’s resources.

GitHub’s Trustworthy

You might be thinking, since contribution is done by developers all around the world, can resources there be trusted? Like any other online platform you will need to choose who you trust and the resources you trust, however GitHub allows user to check the contribution is done by who and from which ‘branch’ (version). GitHub is well known for its Source Code Resources, the number of developers actively contributing to it and also famous of its Version Control features. GitHub keep tracks of every contribution made and also profile them into the contributor’s profile. So if you are using GitHub make sure you ‘clone’ from a verified version or from a trusted contributor.

Affective commitment

As mentioned above, GitHub is an online community that created for developers meaning that majority of members in GitHub and user in GitHub have the same focus or are similar at some point. Either they are expert in developing or newbie, GitHub welcomes all of them and provide different space for them. This refer back to Affective Identity Based Commitment, Design Challenge 3 – ‘Recruiting or clustering those who are similar to each other into homogeneous groups fosters identity-based commitment to a community.’ The other Affective Commitment is Bonds based, for example, GitHub place a big slogan in its homepage saying that ‘Welcome home developers’. Affective Bonds based Commitment is created by feelings of closeness and attachment to group or members of the group. GitHub creates an online community for developers, named it as a home, and make it like a home!

Referring back to design challenge again, Design Challenge 15. GitHub Displaying photos and information about individual members and their recent activities promotes bonds-based commitment.

GitHub also applies Affective (Repelling forces) in their platform design. Regarding to Design Challenge 26 under category Affective (Repelling forces) – ‘Personalized filters, which differentially expose members to communications that match their personal interests, reduce the negative effects that off-topic communication has on identity-based commitment.’ GitHub categorize projects that are under development in different category, for example: open source, public and private. Members can filter out to match their personal interests. This reduce the time and effort wasting on wondering around with projects that doesn’t match the interest. GitHub forums provide spaces for different members with different interest. Feel free to join, there’s always space for you, neither nor you are a professional expert or a newcomer ya all welcome!

Figure 1. GitHub Forums – Learning Hub. (Private)

Normative

Think about it again, why people maintain their membership on GitHub? Share with me why you maintain your membership on GitHub. To me GitHub is a well-known online platform. Contribution I made to this community really reflects to me well. For example, I can show my experience on GitHub while I am seeking for job. Other than that, I am able to learn and grow by using the resources in GitHub and also help other developer, so why not. From my personal experience, GitHub has a very healthy culture that if you help people, people will help you back. I can refer this type of design challenge as Normative. As mentioned by Dr Jason Watson, one of the design challenge under Normative is to ‘Highlighting opportunities to return favours to specific others increases normative commitment to the community.’  GitHub is doing very well in this part as they provide members to return favours to specific others, a very good example of this will be the ‘code review’. GitHub allows its member to request code review from other members while notify member too if other member need help. Check out this video to understand more about what is ‘code review’.

Figure 2. Code Review. Source

Other than that, GitHub mentioned that there are more than 1.8 million of business and organization that uses GitHub. This dedicates to Normative Design Challenge 27 – ‘Highlighting a community’s purpose and successes at achieving that purpose can translate members’ commitment to the purpose into normative commitment to the community.’

Figure 3. Source

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)