Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cEP-0020: Newcomer metrics and Gamification system #131

Closed
wants to merge 1 commit into from
Closed

cEP-0020: Newcomer metrics and Gamification system #131

wants to merge 1 commit into from

Conversation

sks444
Copy link
Member

@sks444 sks444 commented May 9, 2018

No description provided.

cEP-0020.md Outdated
- Creating and merging a PR for that issue
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line contains following spacing inconsistencies:

  • Trailing whitespaces.

Origin: SpaceConsistencyBear, Section: spacing.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -55,7 +55,7 @@
     - Creating and merging a PR for that issue
     - Reviewing at least one difficulty/low issue
 
-- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points. 
+- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other newcomers.**After completing the level three successfully the newcomer will be a developer**. And he will be awarded a badge based on their performance in each level and the total number of points.
 

cEP-0020.md Outdated
@@ -0,0 +1,169 @@
Newcomer metrics and Gamification

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -1,17 +1,15 @@
-Newcomer metrics and Gamification
-=================================
+# Newcomer metrics and Gamification
 
-|Metadata|                                               |
-|--------|-----------------------------------------------|
-|cEP     |20                                             |
-|Version |1.0                                            |
-|Title   |Newcomer metrics and Gamification system       |
-|Authors |Shrikrishna Singh <[email protected]>|
-|Status  |Proposed                                       |
-|Type    |Process                                        |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
-Abstract
---------
+## Abstract
 
 This cEP describe how a newcomer at coala will become a developer on the
 basis of their activities in the community.

cEP-0020.md Outdated

## Background

### Newcomer Experience

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -21,7 +21,7 @@
 
 ## Background
 
-###  Newcomer Experience
+### Newcomer Experience
 
 - How to attract more newcomers
    - How to cope with the increasing amounts of newcomers

cEP-0020.md Outdated
### Newcomer Experience

- How to attract more newcomers
- How to cope with the increasing amounts of newcomers

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -24,9 +24,9 @@
 ###  Newcomer Experience
 
 - How to attract more newcomers
-   - How to cope with the increasing amounts of newcomers
+  - How to cope with the increasing amounts of newcomers
 - How to teach and help newcomers scalable so we can keep working on coala.
-   - Talk to Docs team
+  - Talk to Docs team
 - How to improve newcomer -> dev/maintainer ratio
 - How to increase amount of feedback we get
    - How to use feedback to improve coala and processes

cEP-0020.md Outdated
- Talk to Docs team
- How to improve newcomer -> dev/maintainer ratio
- How to increase amount of feedback we get
- How to use feedback to improve coala and processes

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -29,7 +29,7 @@
    - Talk to Docs team
 - How to improve newcomer -> dev/maintainer ratio
 - How to increase amount of feedback we get
-   - How to use feedback to improve coala and processes
+  - How to use feedback to improve coala and processes
 
 ## Why Gamification?
 

cEP-0020.md Outdated

After we have the data, we need to track some important activities of newcomers like:

* Created Issues

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmp2e3alytw/cEP-0020.md
+++ b/tmp/tmp2e3alytw/cEP-0020.md
@@ -79,15 +79,15 @@
 
 After we have the data, we need to track some important activities of newcomers like:
 
-* Created Issues
-* Created Pull Requests
-* Number of Gitmate errors on the PR
-* CI status
-* Review Comments
-* Issue Comments
-* Number of PRs Reviewed
-* Activities on Gitter channles
-* Introduce `.coafile` in other projects
+- Created Issues
+- Created Pull Requests
+- Number of Gitmate errors on the PR
+- CI status
+- Review Comments
+- Issue Comments
+- Number of PRs Reviewed
+- Activities on Gitter channles
+- Introduce `.coafile` in other projects
 
 Which will help us in showing useful metrics for newcomers on a dashboard.
 

cEP-0020.md Outdated
- Creating and merging a PR for that issue
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line contains following spacing inconsistencies:

  • Trailing whitespaces.

Origin: SpaceConsistencyBear, Section: spacing.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -54,7 +54,7 @@
     - Creating and merging a PR for that issue
     - Reviewing at least one difficulty/low issue
 
-- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points. 
+- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other newcomers.**After completing the level three successfully the newcomer will be a developer**. And he will be awarded a badge based on their performance in each level and the total number of points.
 

cEP-0020.md Outdated
@@ -0,0 +1,168 @@
# Newcomer metrics and Gamification


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -1,14 +1,13 @@
 # Newcomer metrics and Gamification
 
-
-| Metadata |                                                |
-| -------- | ---------------------------------------------- |
-| cEP      | 20                                             |
-| Version  | 1.0                                            |
-| Title    | Newcomer metrics and Gamification system       |
-| Authors  | Shrikrishna Singh <[email protected]>|
-| Status   | Proposed                                       |
-| Type     | Process                                        |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
 ## Abstract
 

cEP-0020.md Outdated
@@ -0,0 +1,168 @@
# Newcomer metrics and Gamification


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpcx1vqkf5/cEP-0020.md
+++ b/tmp/tmpcx1vqkf5/cEP-0020.md
@@ -1,14 +1,13 @@
 # Newcomer metrics and Gamification
 
-
-| Metadata |                                                |
-| -------- | ---------------------------------------------- |
-| cEP      | 20                                             |
-| Version  | 1.0                                            |
-| Title    | Newcomer metrics and Gamification system       |
-| Authors  | Shrikrishna Singh <[email protected]>|
-| Status   | Proposed                                       |
-| Type     | Process                                        |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
 ## Abstract
 

cEP-0020.md Outdated
- Creating and merging a PR for that issue
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line contains following spacing inconsistencies:

  • Trailing whitespaces.

Origin: SpaceConsistencyBear, Section: spacing.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -54,7 +54,7 @@
     - Creating and merging a PR for that issue
     - Reviewing at least one difficulty/low issue
 
-- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points. 
+- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other newcomers.**After completing the level three successfully the newcomer will be a developer**. And he will be awarded a badge based on their performance in each level and the total number of points.
 

cEP-0020.md Outdated
@@ -0,0 +1,168 @@
# Newcomer metrics and Gamification


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -1,14 +1,13 @@
 # Newcomer metrics and Gamification
 
-
-| Metadata |                                                |
-| -------- | ---------------------------------------------- |
-| cEP      | 20                                             |
-| Version  | 1.0                                            |
-| Title    | Newcomer metrics and Gamification system       |
-| Authors  | Shrikrishna Singh <[email protected]>|
-| Status   | Proposed                                       |
-| Type     | Process                                        |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
 ## Abstract
 

cEP-0020.md Outdated
@@ -0,0 +1,167 @@
# Newcomer metrics and Gamification

| Metadata | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpet_nzsjr/cEP-0020.md
+++ b/tmp/tmpet_nzsjr/cEP-0020.md
@@ -1,13 +1,13 @@
 # Newcomer metrics and Gamification
 
-| Metadata |                                                 |
-| -------- | ----------------------------------------------- |
-| cEP      | 20                                              |
-| Version  | 1.0                                             |
-| Title    | Newcomer metrics and Gamification system        |
-| Authors  | Shrikrishna Singh <[email protected]> |
-| Status   | Proposed                                        |
-| Type     | Process                                         |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
 ## Abstract
 

cEP-0020.md Outdated
- Creating and merging a PR for that issue
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line contains following spacing inconsistencies:

  • Trailing whitespaces.

Origin: SpaceConsistencyBear, Section: spacing.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -54,7 +54,7 @@
     - Creating and merging a PR for that issue
     - Reviewing at least one difficulty/low issue
 
-- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points. 
+- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other newcomers.**After completing the level three successfully the newcomer will be a developer**. And he will be awarded a badge based on their performance in each level and the total number of points.
 

cEP-0020.md Outdated
@@ -0,0 +1,168 @@
# Newcomer metrics and Gamification


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpqhe2wf1y/cEP-0020.md
+++ b/tmp/tmpqhe2wf1y/cEP-0020.md
@@ -1,14 +1,13 @@
 # Newcomer metrics and Gamification
 
-
-| Metadata |                                                |
-| -------- | ---------------------------------------------- |
-| cEP      | 20                                             |
-| Version  | 1.0                                            |
-| Title    | Newcomer metrics and Gamification system       |
-| Authors  | Shrikrishna Singh <[email protected]>|
-| Status   | Proposed                                       |
-| Type     | Process                                        |
+| Metadata |                                                        |
+| -------- | ------------------------------------------------------ |
+| cEP      | 20                                                     |
+| Version  | 1.0                                                    |
+| Title    | Newcomer metrics and Gamification system               |
+| Authors  | Shrikrishna Singh <mailto:[email protected]> |
+| Status   | Proposed                                               |
+| Type     | Process                                                |
 
 ## Abstract
 

cEP-0020.md Outdated

- How to attract more newcomers
- How to cope with the increasing amounts of newcomers
- How to teach and help newcomers scalable so we can keep working on coala.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

help newcomers scalable

sentence doesn't make sense to me

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe help newcomers to learn and grow faster which can help the community in getting more new contributors?

Actually, I copied the background section from here

cEP-0020.md Outdated

## Why Gamification?

As coala tries to be welcoming organization for newcomers, giving them clear pathways and as much direct assistance as possible. However, it is already known that newcomers face many barriers while attempting to contribute to the open source community for the first time. Some barriers they face include orientation issues that can potentially demotivate newcomers from placing their first contribution. On the other hand, gamification is widely used to engage and motivate people to accomplish task and improve their performance.Therefore, the goal of this project is to use gamification to orient and motivate newcomers to overcome onboarding barriers to contribute and engage with coala and its community.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't understand what is meant by orientation issues

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Problems someone face while trying to learn something for the first time?

cEP-0020.md Outdated

## Why Gamification?

As coala tries to be welcoming organization for newcomers, giving them clear pathways and as much direct assistance as possible. However, it is already known that newcomers face many barriers while attempting to contribute to the open source community for the first time. Some barriers they face include orientation issues that can potentially demotivate newcomers from placing their first contribution. On the other hand, gamification is widely used to engage and motivate people to accomplish task and improve their performance.Therefore, the goal of this project is to use gamification to orient and motivate newcomers to overcome onboarding barriers to contribute and engage with coala and its community.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

improve their performance.Therefore,

styling issue: space after full stop

cEP-0020.md Outdated

## Process involved in the Gamification system

As the goal of this project is to make use of metrics and gamification to motivate and support newcomers to overcome the orientation barriers to contribute to the community.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sentence should end with a comma, the way it is framed

cEP-0020.md Outdated
As the goal of this project is to make use of metrics and gamification to motivate and support newcomers to overcome the orientation barriers to contribute to the community.
To achieve this goal we have selected three game design elements to help newcomers: Levels, Points, and Badges. For each of these elements, we will have a set of rules to describe the operation of the gamified environment. i.e.:

- **Levels** group different tasks, enabling users to unlock specific and contextualize set of actions. Levels will be applied to make newcomers focus on a given step before moving ahead on the contribution process. E.g.: We will divide our newcomer process into three levels and each level will contain three tasks:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

contextualize contextual set of actions ??

cEP-0020.md Outdated
- Creating and merging a PR for that issue
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements. Acquiring points means that the actions performed by the users are in accordance with what was expected. Points can be earned by means of performing actions to the different tasks under levels. E.g.: If a user wants to go to next level he will have to collect a certain number of points from doing the tasks under levels. But in case of Level-II and Level-III if a user is not able to acquire the required number of points after performing all the tasks, he will have to review more PRs to collect the required points.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the threshold for leveling up will be more that what you can earn by the minimum right? so that more reviews are encouraged

cEP-0020.md Outdated

These all are just basic ideas, the process and tasks in the levels can be changed according to the use case and implementaion process.

A similar process can also be extended and applied to developers to achieve more number of badges or something more.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

badges and points among developers sound cool. After a threshold developers can get the ability to atleast unack PRs, apart from the issue I already opened about it. (I think it's gonna take time for the gitmate plugins to get out, but the recent comments on that which I have failed to read may be of importance over here). unack does much much less harm than an ack. A Gitlab like feature would also be beneficial over here, requiring acks by 3 or more developers can automatically assign the PRs a tag, like approved by developers or something so that maintainers can clear them out as early as possible. ability to ack can be given at a higher threshold.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stretch goal stuff, don't let this get in the way of you completing the project

cEP-0020.md Outdated
- Review Comments
- Issue Comments
- Number of PRs Reviewed
- Activities on Gitter channles
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

channles --> channels

cEP-0020.md Outdated
name='pullrequest')
```

And then we will define defferent metics to track in each of the domain:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

metics --> metrics

cEP-0020.md Outdated

### Gamification

As we have already discuss the game elements involed in the gamification system, we will assign some points to each of the activities we will be tracking for a newcomer and then accordingly we will unlock the levels and provide them badges. now assuming the implementation of this process with [django-gamification](https://github.com/mattjegan/django-gamification) package, we need to link our `user` model to the gamification interface:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

involed --> involved

@sks444
Copy link
Member Author

sks444 commented May 10, 2018

Thanks, @andrewda, for the suggestions! :)

cEP-0020.md Outdated

## Abstract

This cEP describe how a newcomer at coala will become a developer on the

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

describes

cEP-0020.md Outdated
This cEP describe how a newcomer at coala will become a developer on the
basis of their activities in the community.

For the implementation of this process, we will build a gamification system

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build incorporate a gamification system in which we will allow us to track ...
^I find this better, optional, anyway ;)

cEP-0020.md Outdated
## Abstract

This cEP describe how a newcomer at coala will become a developer on the
basis of their activities in the community.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for nitpicking: coala communnity

cEP-0020.md Outdated
basis of their activities in the community.

For the implementation of this process, we will build a gamification system
in which we will track newcomer progress and assign some points to each of the

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

newcomer progress makes no sense to me
maybe replace it with a newcomer's progress or progress of new contributors

cEP-0020.md Outdated
- Talk to Docs team
- How to improve newcomer -> dev/maintainer ratio
- How to increase amount of feedback we get
- How to use feedback to improve coala and processes

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this whole Newcomer Experience section about?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

John said to add the newcomer bullet points from here as a background part.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could copy edit them to make readable prose

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And decide if any are beyond the scope of your project, maybe with a section or paragraph explicitly indicating what is out of scope.

cEP-0020.md Outdated

Assuming that we are using
[django-trackstats](https://github.com/pennersr/django-trackstats) for tracking
the statics of newcomers, then we will make different domains of similar set of

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

statistics

cEP-0020.md Outdated
level and the total number of points.

These all are just basic ideas, the process and tasks in the levels can be
changed according to the use case and implementaion process.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/coala/cEPs/blob/master/cEP-0000.md mentions:

After specifying features with a cEP they should be implemented as specified. Unspecified features should not be implemented.

Although, I don't know how strict this practice is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are cEPs for GSoC projects so imo some changes during the course of the projects are inevitable

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, all the ideas I have mentioned here is most probably confirm.
I was just saying we might change a few if we face some implementations difficulty, or if we don't have the good experience with a feature in the real world.

for the sake of earning points, to avoid this type of spam we will use some
of the ideas from **Meta-review system**, i.e.: We will also check the reactions
on the comments and if it is Thumbs Down we will not give any points to the
newcomers.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still, the whole thread will be spammed and will become cumbersome to follow upon.
Maybe assigning negative points can be given a thought, which again can lead to certain kind of badges, followed by demotion or removal from the community. 😆

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have discussions about negative points and we will implement it if it will not be so hard to implement.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will use some of the ideas from Meta-review system

err, you dont need to do that. that is a separate GSoC project this year, and it will be providing data to the community data model, which your gamification system will hopefully use and/or provide the data model for. You probably want to go look at that cEP.

cEP-0020.md Outdated
* Bad behavior message model

So, before importing Gitter messages to our models we can check in which
category this message fall? We can do that by applying

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this the

certain number of questions in a day. Then we will track both the message model
of the newcomer and assign some points to both separately and see which model
metric has grown fast or slow while the whole newcomer process and not promote
them until they have learned to learn things by themselves.
Copy link

@manankalra manankalra May 10, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole sentiment analysis approach needs to be revised IMO and should be clearly stated. Whatever you have mentioned is a little vague, no?
How about Can you review this? ? Begging for a review + Includes a question mark.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that was just an idea from my side. Would be great if you could suggest me some patterns in both the category. :)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will follow along during the implementation phase of this part. ;)

cEP-0020.md Outdated
operation of the gamified environment. I.e.:

- **Levels** group different tasks, enabling users to unlock specific and
contextualized sets of actions. Levels will be applied to make newcomers

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -58,10 +58,10 @@
 operation of the gamified environment. I.e.:
 
 - **Levels** group different tasks, enabling users to unlock specific and
-contextualized sets of actions. Levels will be applied to make newcomers
-focus on a given step before moving ahead on the contribution process.
-We will divide our newcomer process into three levels and each level
-will contain three tasks:
+  contextualized sets of actions. Levels will be applied to make newcomers
+  focus on a given step before moving ahead on the contribution process.
+  We will divide our newcomer process into three levels and each level
+  will contain three tasks:
 
   - Level-I:
     - Joining our gitter channel and the community

cEP-0020.md Outdated
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements.
Acquiring points means that the actions performed by the users are in accordance

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -77,13 +77,13 @@
     - Reviewing at least one difficulty/low issue
 
 - **Points** will be the most applied element out of three game design elements.
-Acquiring points means that the actions performed by the users are in accordance
-with what was expected. Points can be earned by means of performing actions to
-the different tasks under levels. If a user wants to go to next level he
-will have to collect a certain number of points from doing the tasks from the
-previous level. But in case of Level-II and Level-III if a user is not able to
-acquire the required number of points after performing all the tasks, he will have
-to review more PRs to collect the required points.
+  Acquiring points means that the actions performed by the users are in accordance
+  with what was expected. Points can be earned by means of performing actions to
+  the different tasks under levels. If a user wants to go to next level he
+  will have to collect a certain number of points from doing the tasks from the
+  previous level. But in case of Level-II and Level-III if a user is not able to
+  acquire the required number of points after performing all the tasks, he will have
+  to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other
 newcomers. **After completing the level three successfully the newcomer will be

cEP-0020.md Outdated
to review more PRs to collect the required points.

- **Badges** enable newcomers to follow their performance and compare to other
newcomers. **After completing the level three successfully the newcomer will be

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -86,9 +86,9 @@
 to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other
-newcomers. **After completing the level three successfully the newcomer will be
-a developer**. And he will be awarded a badge based on their performance in each
-level and the total number of points.
+  newcomers. **After completing the level three successfully the newcomer will be
+  a developer**. And he will be awarded a badge based on their performance in each
+  level and the total number of points.
 
 These all are just basic ideas; the process and tasks in the levels can be
 changed according to the use case and implementaion process.

cEP-0020.md Outdated
can apply some extra rules on Gitter messages, we will divide our message model
into two parts:

* Good behavior message model

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -214,8 +214,8 @@
 can apply some extra rules on Gitter messages, we will divide our message model
 into two parts:
 
-* Good behavior message model
-* Bad behavior message model
+- Good behavior message model
+- Bad behavior message model
 
 So, before importing Gitter messages to our models we can check in which
 category the message fall? We can do that by applying

cEP-0020.md Outdated

Basically, we will define two dictionaries of good and bad messages.
In the bad one, we will keep patterns like “please review [issue link]”,
“updated [issue link]”, “have a look [issue link]”, “[mention] [issue link]”

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -224,7 +224,7 @@
 
 Basically, we will define two dictionaries of good and bad messages.
 In the bad one, we will keep patterns like “please review [issue link]”,
-“updated [issue link]”, “have a look [issue link]”, “[mention] [issue link]”
+“updated [issue link]”, “have a look [issue link]”, “[mention][issue link]”
 etc. So, that a newcomer doesn’t beg for review all the time.
 In the good one, we will have the pattern of questions so we will generally
 match “?” in the end. But what happens if a newcomer started asking irrelevant

cEP-0020.md Outdated
operation of the gamified environment. I.e.:

- **Levels** group different tasks, enabling users to unlock specific and
contextualized sets of actions. Levels will be applied to make newcomers

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -58,10 +58,10 @@
 operation of the gamified environment. I.e.:
 
 - **Levels** group different tasks, enabling users to unlock specific and
-contextualized sets of actions. Levels will be applied to make newcomers
-focus on a given step before moving ahead on the contribution process.
-We will divide our newcomer process into three levels and each level
-will contain three tasks:
+  contextualized sets of actions. Levels will be applied to make newcomers
+  focus on a given step before moving ahead on the contribution process.
+  We will divide our newcomer process into three levels and each level
+  will contain three tasks:
 
   - Level-I:
     - Joining our gitter channel and the community

cEP-0020.md Outdated
- Reviewing at least one difficulty/low issue

- **Points** will be the most applied element out of three game design elements.
Acquiring points means that the actions performed by the users are in accordance

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -77,13 +77,13 @@
     - Reviewing at least one difficulty/low issue
 
 - **Points** will be the most applied element out of three game design elements.
-Acquiring points means that the actions performed by the users are in accordance
-with what was expected. Points can be earned by means of performing actions to
-the different tasks under levels. If a user wants to go to next level he
-will have to collect a certain number of points from doing the tasks from the
-previous level. But in case of Level-II and Level-III if a user is not able to
-acquire the required number of points after performing all the tasks, he will have
-to review more PRs to collect the required points.
+  Acquiring points means that the actions performed by the users are in accordance
+  with what was expected. Points can be earned by means of performing actions to
+  the different tasks under levels. If a user wants to go to next level he
+  will have to collect a certain number of points from doing the tasks from the
+  previous level. But in case of Level-II and Level-III if a user is not able to
+  acquire the required number of points after performing all the tasks, he will have
+  to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other
 newcomers. **After completing the level three successfully the newcomer will be

cEP-0020.md Outdated
to review more PRs to collect the required points.

- **Badges** enable newcomers to follow their performance and compare to other
newcomers. **After completing the level three successfully the newcomer will be

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -86,9 +86,9 @@
 to review more PRs to collect the required points.
 
 - **Badges** enable newcomers to follow their performance and compare to other
-newcomers. **After completing the level three successfully the newcomer will be
-a developer**. And he will be awarded a badge based on their performance in each
-level and the total number of points.
+  newcomers. **After completing the level three successfully the newcomer will be
+  a developer**. And he will be awarded a badge based on their performance in each
+  level and the total number of points.
 
 These all are just basic ideas; the process and tasks in the levels can be
 changed according to the use case and implementaion process.

cEP-0020.md Outdated
can apply some extra rules on Gitter messages, we will divide our message model
into two parts:

* Good behavior message model

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -214,8 +214,8 @@
 can apply some extra rules on Gitter messages, we will divide our message model
 into two parts:
 
-* Good behavior message model
-* Bad behavior message model
+- Good behavior message model
+- Bad behavior message model
 
 So, before importing Gitter messages to our models we can check in which
 category the message fall? We can do that by applying

cEP-0020.md Outdated

Basically, we will define two dictionaries of good and bad messages.
In the bad one, we will keep patterns like “please review [issue link]”,
“updated [issue link]”, “have a look [issue link]”, “[mention] [issue link]”

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpbdj_g1ue/cEP-0020.md
+++ b/tmp/tmpbdj_g1ue/cEP-0020.md
@@ -224,7 +224,7 @@
 
 Basically, we will define two dictionaries of good and bad messages.
 In the bad one, we will keep patterns like “please review [issue link]”,
-“updated [issue link]”, “have a look [issue link]”, “[mention] [issue link]”
+“updated [issue link]”, “have a look [issue link]”, “[mention][issue link]”
 etc. So, that a newcomer doesn’t beg for review all the time.
 In the good one, we will have the pattern of questions so we will generally
 match “?” in the end. But what happens if a newcomer started asking irrelevant

cEP-0020.md Outdated
We will divide our newcomer process into three levels and each level
will contain three tasks:

- Level-I:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpsaib1jfs/cEP-0020.md
+++ b/tmp/tmpsaib1jfs/cEP-0020.md
@@ -63,18 +63,18 @@
   We will divide our newcomer process into three levels and each level
   will contain three tasks:
 
-    - Level-I:
-      - Joining our gitter channel and the community
-      - Running CI tools on your fork
-      - Running coala-ci on a popular github repo
-    - Level-II:
-      - Getting assigned to a difficulty/newcomer issue
-      - Creating and merging PR for that issue
-      - Reviewing at least one difficulty/newcomer issue
-    - Level-III:
-      - Getting assigned to a difficulty/low issue
-      - Creating and merging a PR for that issue
-      - Reviewing at least one difficulty/low issue
+  - Level-I:
+    - Joining our gitter channel and the community
+    - Running CI tools on your fork
+    - Running coala-ci on a popular github repo
+  - Level-II:
+    - Getting assigned to a difficulty/newcomer issue
+    - Creating and merging PR for that issue
+    - Reviewing at least one difficulty/newcomer issue
+  - Level-III:
+    - Getting assigned to a difficulty/low issue
+    - Creating and merging a PR for that issue
+    - Reviewing at least one difficulty/low issue
 
 - **Points** will be the most applied element out of three game design elements.
   Acquiring points means that the actions performed by the users are in accordance

cEP-0020.md Outdated
We will divide our newcomer process into three levels and each level
will contain three tasks:

- Level-I:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpsaib1jfs/cEP-0020.md
+++ b/tmp/tmpsaib1jfs/cEP-0020.md
@@ -63,18 +63,18 @@
   We will divide our newcomer process into three levels and each level
   will contain three tasks:
 
-    - Level-I:
-      - Joining our gitter channel and the community
-      - Running CI tools on your fork
-      - Running coala-ci on a popular github repo
-    - Level-II:
-      - Getting assigned to a difficulty/newcomer issue
-      - Creating and merging PR for that issue
-      - Reviewing at least one difficulty/newcomer issue
-    - Level-III:
-      - Getting assigned to a difficulty/low issue
-      - Creating and merging a PR for that issue
-      - Reviewing at least one difficulty/low issue
+  - Level-I:
+    - Joining our gitter channel and the community
+    - Running CI tools on your fork
+    - Running coala-ci on a popular github repo
+  - Level-II:
+    - Getting assigned to a difficulty/newcomer issue
+    - Creating and merging PR for that issue
+    - Reviewing at least one difficulty/newcomer issue
+  - Level-III:
+    - Getting assigned to a difficulty/low issue
+    - Creating and merging a PR for that issue
+    - Reviewing at least one difficulty/low issue
 
 - **Points** will be the most applied element out of three game design elements.
   Acquiring points means that the actions performed by the users are in accordance

cEP-0020.md Outdated

So, before importing Gitter messages to our models we can check in which
category the message fall? We can do that by applying
[basic sentiment analysis](

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpysgsag5f/cEP-0020.md
+++ b/tmp/tmpysgsag5f/cEP-0020.md
@@ -219,8 +219,7 @@
 
 So, before importing Gitter messages to our models we can check in which
 category the message fall? We can do that by applying
-[basic sentiment analysis](
-http://fjavieralba.com/basic-sentiment-analysis-with-python.html)
+[basic sentiment analysis](http://fjavieralba.com/basic-sentiment-analysis-with-python.html)
 on the messages.
 
 Basically, we will define two dictionaries of good and bad messages.

cEP-0020.md Outdated
contribute to the community, to achieve this goal we have selected three
game design elements to help newcomers: Levels, Points, and Badges. For
each of these elements, we will have a set of rules to describe the
operation of the gamified environment. I.e.:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I.e.

i.e.

For getting the stats of newcomer's messages, we will use
[Gitter API](https://developer.gitter.im/docs/messages-resource) and import
all the messages to newcomers or by newcomers in our webservices with some
textual analysis for avoiding spam. And then we will import the final analysis
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the benefit of avoiding spam. we dont get much of it, and it will be associated with users who dont contribute code (are not ever going to be developers), so it will just be a tiny bit of unfindable data in the DB that is never surfaced on the website.

IMO not worth the effort of removing it.

It is easier for us to remove real spam from gitter by deleting the messages.

[Gitter API](https://developer.gitter.im/docs/messages-resource) and import
all the messages to newcomers or by newcomers in our webservices with some
textual analysis for avoiding spam. And then we will import the final analysis
of the messages to our community repo for tracking and gamification process.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the analysis, and algorithms, belong in the community repo, as that is where you have the django gamification tools.

cEP-0020.md Outdated
textual analysis for avoiding spam. And then we will import the final analysis
of the messages to our community repo for tracking and gamification process.

We will have different django models for each category like for GitHub/GitLab
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this paragraph doesnt belong in the 'Gitter' section.

for the sake of earning points, to avoid this type of spam we will use some
of the ideas from **Meta-review system**, i.e.: We will also check the reactions
on the comments and if it is Thumbs Down we will not give any points to the
newcomers.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will use some of the ideas from Meta-review system

err, you dont need to do that. that is a separate GSoC project this year, and it will be providing data to the community data model, which your gamification system will hopefully use and/or provide the data model for. You probably want to go look at that cEP.

cEP-0020.md Outdated
As the goal of this project is to make use of metrics and gamification to
motivate and support newcomers to overcome the orientation barriers and
contribute to the community, to achieve this goal we have selected three
game design elements to help newcomers: Levels, Points, and Badges. For
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to "Activities" here too. As I understand it, they are the raw actions.

And I am not understanding the way they are all related.

A worked example would be helpful.

What is the relationship between Activities and Points. Is each activity given a configurable number of points?

cEP-0020.md Outdated
able to acquire the required number of points after performing all the tasks,
he will have to review more PRs to collect the required points.

- **Badges** enable newcomers to follow their performance and compare to other
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be modeling badges based on https://openbadges.org/ , where they are a visual representation of learning outcomes achieved, and those are not necessarily coala specific.

As a result, each badge would be a predefined grouping of activities, possibly requiring the activities have been done several times.

'coala Developer' would be one coala specific badge, and we would need to version that badge, as the definition of that badge would change over time.

But most newcomers would work towards more basic badges like 'git beginner' , 'git rebaser', 'markdown editor', 'markdown reviewer', 'python coder basic', 'python reviewer', 'JS coder basic', 'JS reviewer'. Those are badges they can 'take' with them even if they have no intention of becoming a 'coala developer'.

cEP-0020.md Outdated

- **Badges** enable newcomers to follow their performance and compare to other
newcomers. **After completing the level three successfully the newcomer will
be a developer**. And he will be awarded a badge based on their performance
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really dont get this sentence (or the previous one in bold).

based on on their performance ..

Is that automated, or are badges manually awarded?

If automated, how is performance measured?

Is performance different from points?

cEP-0020.md Outdated
be a developer**. And he will be awarded a badge based on their performance
in each level and the total number of points.

These all are just basic ideas; the process and tasks in the levels can be
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this cEP needs to describe precisely what the community will be able to do with the result of this project.

Specifically, we need an example definition of a 'coala developer' and how the newcomer gets there.

And, what alternative definitions of a 'coala developer' will be possible without new coding. i.e. how configurable will this be.

And, what are the intermediary items a newcomer can 'earn' in this system on their pathway to 'coala developer'. If the system is very configurable, the cEP may not describe every pathway as each person will travel their own different path.

cEP-0020.md Outdated
These all are just basic ideas; the process and tasks in the levels can be
changed according to the use case and implementaion process.

A similar process can also be extended and applied to developers to achieve more
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence needs to be adjusted to indicate that post-developer is out of scope for this project, but it is right to say that this project could be used in the future to build something similar for developers.

@sks444
Copy link
Member Author

sks444 commented May 11, 2018

@jayvdb, I have revised the whole idea part from the beginning, please have a look.

Copy link
Member

@prnvdixit prnvdixit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sks444 This is great! Just some points from my side.

Also, these review comments don't expect any change in cEP - Just some implementation details/challenges. 😄

newcomers to take. i.e.:

- Created Issues by a Newcomer
- Created Pull Requests by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misusing by making excessive PRs (knowingly or unknowingly)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ya we need to track closed-not-merged PRs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

" by a Newcomer" - eh ... this cEP is all about newcomers, so why mention it here and in other activities?

non-Newcomer stuff is out of scope for your project.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@prnvdixit @sks444 , yes we need to think about abuse. I've mentioned it frequently, but it isnt dealt with in detail in the cEP yet, probably as the bottom half hasnt been overhauled yet.

The problem is where do we record abusing behaviour so that this system can use it. Obtaining a feed of feedback from corobo is possible approach, but corobo is currently not storing state, and I doubt we would do that.

Meta-review provides a lot of opportunity for storing state, but it doesnt cover everything. It especially does not cover gitter/IM behaviour.
We may want to look at replies to a newcomer IM messages as a way to create a feedback loop there.

One concern with the schema design below is that the points dont seem to link to specific actions, so it wont be possible to use the data to see which actions counted and which ones didnt, which makes it harder to diagnose why a score isnt as high as it should be, which becomes especially relevant if there are rules aimed at preventing scores for potentially abuse behaviour.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One concern with the schema design below is that the points dont seem to link to specific actions, so it wont be possible to use the data to see which actions counted and which ones didnt, which makes it harder to diagnose why a score isnt as high as it should be,

This gets me to thinking - Shouldn't there be any logs being maintained for all increments/decrements of points (I'm thinking of a possibility if something goes wrong, we can just use (maybe manually) some deferred or immediate modification recovery)?

- Created Pull Requests by a Newcomer
- Number of Gitmate errors on the PR
- CI status of the PR
- Number of reviews done by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spammy reviews - Things which does count as a review but isn't actually a review to be specific. Eg. Just adding a review Check coala.io/commit. would be suitable for most of newcomer PRs. Valid but insufficient review.
Adding this is not necessarily part of the goal ^^ 😅

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, Spammy reviews will be covered in the meta review projcet #131 (comment)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll look at that cEP as well then in a day or two, travelling rn 😅

- Number of Gitmate errors on the PR
- CI status of the PR
- Number of reviews done by a Newcomer
- Number of comments in one review by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some people can just review for the sake of points - As @prnvdixit said in his review......... Maybe add a system to allow PR owner to give points to the reviewer?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I also had an idea for that is to also check the reactions on the review comments, E.g.: if its thumbs up, we will assign him the points and vice versa, But this thing is taking into consideration in the very vague way in the meta-review project and as John said here

it will be providing data to the community data model

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense then 😄

- Review at least a difficulty/low or higher Pull Request

So, for becoming a developer at coala, a newcomer must complete all the
activities mentioned in the `coala Developer` badge. But in case
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you accidentally omit something here? The sentence is incomplete. 😄

In the good one, we will have the pattern of questions so we will generally
match “?” in the end. But what happens if a newcomer started asking irrelevant
questions? So for that, we can also define a rule like a newcomer can only ask a
certain number of questions in a day. Then we will track both the message model
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Umm... "certain" seems a bit "harsh" - No? I mean everyone does ask a lot of questions during onboarding phase. 😅

@prnvdixit
Copy link
Member

Are we thinking of an easy (maybe private to repo owners) way of decrementing someone's points in case some abuse is detected? Easy, so that it's not much of a hassle for the maintainer to do so - Maybe a corobo command for maintainers/owners only.
@jayvdb - Thoughts?
(Also helpful if someone (maybe owner himself) is getting troubled (maybe on personal gitter chat) and is brought to notice of maintainers)

For the implementation of this process, we will incorporate a gamification
system which will allow us to track newcomer's progress and assign some
points to each of the activity they do. We will also have different levels
and give them badges on the basis of points earned and performed activities
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

badges on the basis of points earned and performed activities

Im not sure about this.

badges are about skills, and points are not.

It should at least be

badges on the basis of performed activities and points given for those activities.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or

badges on the basis of how many times they have performed an activity.

As coala tries to be a welcoming organization for newcomers, it gives them
clear pathways and as much direct assistance as possible. However, it is
already known that newcomers face many barriers while attempting to contribute
to the open source community for the first time. Some barriers they face include
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to the open source community for the first time.

to open source for the first time, and additional barriers while attempting to contribute to projects run by the coala organisation.

The next sentence (Some barriers) is better as a new paragraph as it moves from broad&vague to specific information

build a gamified design. The first step is to define the activities that we want
newcomers to take. i.e.:

- Created Issues by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the paragraph above you talk about rules, and points, but dont define any rules, or how points are calculated.

The first real specific information here is ... these activities.

We will be recording how many issues the person creates?
If so, that is the most basic element in the design.

Create a separate section for Activities, put it before all of this points, levels, badges stuff.

newcomers to take. i.e.:

- Created Issues by a Newcomer
- Created Pull Requests by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

" by a Newcomer" - eh ... this cEP is all about newcomers, so why mention it here and in other activities?

non-Newcomer stuff is out of scope for your project.

- Activities on Gitter channels
- Introduce `.coafile` in other projects

Then we will assign some points to each of the activity a newcomer perform.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

who is "we". Remove that word everywhere. Be specific about who will do this, even if it is only 'the organisation' vs 'this project'.

i.e. does this project define these values, or will the organisation be able to configure it? Will the organisation be able to change these values any time they like?

- Reviewing at least one difficulty/low issue

But that would be hard to implement and out of the scope of this project
as we can't automatically prevent newcomers from performing the activities
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as we can't automatically prevent newcomers ...

This is not relevant to gamification. It is not expected that participants do not do all activities in order; it is expected that the gamification changes their level when they have met the pre-reqs, irrespective of what additional activities they have done which are not related to the next level they are seeking.

- Badge-III:
- Name: The coder
- Details: The one who code
- Activity: Merged at least 3 or more PRs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Activity / Activities item is the important one.

To begin with, if it can include multiple, then it should always be Activities: and have sub-items underneath it.

It should use the same activity name as mentioned in the activities listed earlier, with a note that it needs to have been done three times.

- Badge-II:
- Name: The reviewer
- Details: The one who review others pull requests
- Activities: Reviewed at least 4 or more PRs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bad example at the moment, as reviews will rely on meta-review.

IMO replace this badge with something else, or just remove it.

- Name: High
- Points_required = 300

More complex designs, such as awarding levels based on consecutive activities
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If levels can be achieved by doing a set of activities, how does that differ from a badge? When should we use a level vs a badge?

If level is only points based, people will expect to be able to compare the levels sanely. Two different newcomers doing different types of activities might have similar points - ensuring they are on a similar level depends on getting the points allocation correct. ouch.

If level is only points based, the proposed model is quite similar to stackoverflow with

  • points - reputation,
  • badges (customised sets of pre-reqs),
  • and privileges (point count thresholds)

I think most people earn badges and privileges on stackoverflow at roughly the same rate, but I guess some people might get lots of points without getting new badges.

If we are doing points only levels, we probably want to do the same as stackoverflow, allocating privileges to point thresholds, otherwise these levels are not very valuable.
This means people dont try to compare the effort by two people with similar levels -- when a person gets new privileges they usually start using them, and become more active. As the levels in stackoverflow have exponentially increasing thresholds, two people on the same level are busy trying to use those privileges to get to the next level.

If we dont allocate some value to these points thresholds, people will only aim for the badges.

Copy link
Member Author

@sks444 sks444 May 13, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What privileges could we give to them in each of the levels?

  • The one I could think of is to give them permission to use corobo after the completion of level one?

Also, it would be good to have some privileges after a newcomer has earned the coala Developer badge.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another one suggested by @ishanSrt:

  • Give permission to ping maintainers on gitter after some points threshold.

newcomers to take. i.e.:

- Created Issues by a Newcomer
- Created Pull Requests by a Newcomer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@prnvdixit @sks444 , yes we need to think about abuse. I've mentioned it frequently, but it isnt dealt with in detail in the cEP yet, probably as the bottom half hasnt been overhauled yet.

The problem is where do we record abusing behaviour so that this system can use it. Obtaining a feed of feedback from corobo is possible approach, but corobo is currently not storing state, and I doubt we would do that.

Meta-review provides a lot of opportunity for storing state, but it doesnt cover everything. It especially does not cover gitter/IM behaviour.
We may want to look at replies to a newcomer IM messages as a way to create a feedback loop there.

One concern with the schema design below is that the points dont seem to link to specific actions, so it wont be possible to use the data to see which actions counted and which ones didnt, which makes it harder to diagnose why a score isnt as high as it should be, which becomes especially relevant if there are rules aimed at preventing scores for potentially abuse behaviour.

@sks444
Copy link
Member Author

sks444 commented May 13, 2018

Migrate to #150

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

8 participants