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

Gamification #829

Open
lpatmo opened this issue Apr 17, 2018 · 25 comments
Open

Gamification #829

lpatmo opened this issue Apr 17, 2018 · 25 comments
Labels
[feature] community issues that relate to community management [state] in-discussion this issue is being considered and we'd welcome your thoughts and ideas [type] feature a new feature or significant change to site functionality

Comments

@lpatmo
Copy link
Member

lpatmo commented Apr 17, 2018

Proposal: Gamify CB! :) Users will be able to win points for scheduling a hangout, starting a group, sharing a learning, starting a discussion, replying to a discussion, or getting upvoted on a learning or upvoted on a discussion.

In the future, perhaps these points could be translated into monetary rewards that users could get reimbursements for on opencollective.com/codebuddies.

Points system

Maybe:
Scheduling a hangout - 5 points
Starting a study group - 5 points
Sharing a learning - 2 points
Starting a discussion - 3 points
Replying to a discussion - 1 point (maybe)
Upvoted on a discussion - 1 point (maybe)
Upvoted on a shared learning - 1 point (maybe)

Places we'd see points

On codebuddies.org/hangouts, we'd have a section on the sidebar where we'd be able to see the top individual point scorers within the last 7 days

We could also have a section showcasing the most active study group(s) within the last 7 days, based on the # of points members in that group has won it.

Ideas we should discuss: houses

QUESTION FOR DISCUSSION: Should users be able to win points for "houses" they're randomly sorted into? What would these houses be called?

QUESTION FOR DISCUSSION: Should users be able to win points for study groups they belong to? Maybe this is a better idea, to reward study groups that have been particularly active. However, we don't necessarily want study groups to become behemoths.

@lpatmo lpatmo added the [state] backlog the issue has been raised but hasn't yet been looked at, we'll get to it label Apr 17, 2018
@abhiramr
Copy link
Member

I have always been a advocate of gamification. I'd like to be part of the discussion :)

@stain88
Copy link
Collaborator

stain88 commented Apr 17, 2018

@stain88
Copy link
Collaborator

stain88 commented Apr 17, 2018

I don't see an issue with winning points for any study group you belong too - what are your concerns about them becoming behemoths?

@distalx
Copy link
Member

distalx commented Apr 17, 2018

we have two other open issues regarding this #378, #61

@lpatmo
Copy link
Member Author

lpatmo commented Apr 17, 2018

@stain88 Re: behemoths -- if group activity (new hangouts, new discussions, learnings, etc.) end up corresponding to "points" for that group, I was worried that users would be incentivized to keep making a single group really active, and not branch off to create new groups for other study topics. I could see a general "Javascript" study group being incentivized to compete with a "Python study" group for the group points leaderboard, when ideally we'd have three different React groups working on different React material/tutorials/projects, and multiple Python groups as well, etc.

Of course, maybe it won't be such a big deal. And the alternative is having fantasy name houses. :)

@abhiramr Awesome. The discussion will be here!

@billglover
Copy link

I'm a sceptic when it comes to gamification. Having lived through it being rolled out at a large organisation I'm concerned around the behaviours they incentivise, particularly if the end result is a monetary award. In general, I'm definitely in favour of using it an incentive to discover new features, but less so to encourage repetitive behaviour that adds little value.

There are a couple of ideas that I'd think would be worth exploring:

  • points that expire - to ensure they remain current and we don't end up with a run-away elite
  • points for the first hangout but nothing for repeat events - this could reset monthly to encourage regular contribution
  • a points budget that can be allocated through conscious action (e.g. ++) for something that has been particularly helpful - no points for just posting content, the content/comment/etc. needs to be valued before points are awarded

Rather than focussing on what we should allocate points for, I'm really keen to understand why that particular action should be rewarded. Food for thought.

@lpatmo
Copy link
Member Author

lpatmo commented Apr 17, 2018

Currently on https://codebuddies.org/study-groups, it's hard to tell which groups are active. I mean, naturally, it's totally fine for a group to die off.

But maybe we can take advantage of gamification here by displaying a "points" value for the total # of points the group has earned through its lifespan, as well as a a "points earned in the last month" number that reflects how "active" the group has been recently. And display it all on the group card.

@billglover
Copy link

Really like the "points earned in a study group" idea of showing active groups. This emphasizes the importance of the group/buddy rather than the importance of self. I'm not sure what I learn by seeing the lifespan total.

@cbelsole
Copy link
Contributor

I worked on a demo with a leaderboard that was trying to promote participation rather than top score. One idea that came out of it was to rank progress (read: points per timeframe). This keeps points from becoming stale and promotes continued investment. The important thing is not to call it a weekly wipe of points because then people think that their progress is lost. Instead, run the leaderboard calculations on a sliding timeframe of data and display as normal.

@cbelsole
Copy link
Contributor

Just floating this idea, what if only study groups could earn points? We are called Codebuddies after all. This would aim to promote people who work together.

@lpatmo
Copy link
Member Author

lpatmo commented Apr 18, 2018

Thanks @cbelsole and @billglover!

Your comments make me think that we should only show the individual total on the individual's profile page, and highlight a "in the last 30 days" or "in the last 7 days" leaderboard on the main site.

a points budget that can be allocated through conscious action (e.g. ++) for something that has been particularly helpful - no points for just posting content, the content/comment/etc. needs to be valued before points are awarded

We do this with our ++ bot already to give points to users on Slack, so I'm wondering if there's any way we can integrate this or have a similar feature on the site. Not sure!

Rather than focusing on what we should allocate points for, I'm really keen to understand why that particular action should be rewarded.

The priority action is hangouts. The connections made on them can be pretty magical, but not enough are being scheduled. People have different learning styles, certainly, and not everyone enjoys discussing code as a way to master the material, but it'd be nice if more people were to create these spaces for learning.

@billglover
Copy link

Completely agree with the focus on hangouts.

it'd be nice if more people were to create these spaces for learning

I really like this and it leads me to the following two proposals:

  • Points for the first time you schedule a hangout - encourage people to try it
  • Points for the first time 3 people join a hangout you've scheduled - encourage people to promote their hangouts

This could be adjusted to be 'first each week' or 'first each month' if necessary.

The most obvious idea, points every time you schedule a hangout, is the one I'm most nervous about. It doesn't focus on getting more people to try scheduling them, it focuses on rewarding those who regularly host. This may be something we want eventually, but I really like the idea of encouraging new people to participate. The last thing I want when joining a new community is to see that there are a bunch of people with a lifetime points total that I'll never be able to achieve simple through virtue of the fact that I joined later. I can't be the only one who is put off by this artificial hurdle. In this regard, Foursquare (or Swarm) handles this really well with a weekly points reset.

@billglover
Copy link

Out of interest, do we have data available (anonymised of course) that would allow us to moddle some of these scenarios and see what the points totals would look like for the current user base?

@lpatmo lpatmo added [state] in-discussion this issue is being considered and we'd welcome your thoughts and ideas and removed [state] backlog the issue has been raised but hasn't yet been looked at, we'll get to it labels Apr 18, 2018
@cbelsole
Copy link
Contributor

Assuming a monthly sliding scale you can also award people points for 4 hangouts in a month (once a week) that 3 or more people join, and if they get 4,8,12 consecutive weeks they could get a badge on their group like ON FIRE!!! or something. This would promote long-running groups.

@lpatmo
Copy link
Member Author

lpatmo commented Apr 21, 2018

@cbelsole Haha. @yipnm123 and @julianjohannesen have definitely gotten that ON FIRE!!! badge; they've scheduled hangouts every week since January 31st of this year while participating in the Grow with Google Scholarship program, in the https://codebuddies.org/study-group/udacity's-grow-with-google-scholarship-program/vKbeuXSbQfuYMFnBe group.

@lpatmo
Copy link
Member Author

lpatmo commented Apr 23, 2018

Thanks so much to everyone for your feedback and thoughts! Here's my latest proposal + some rough browser screenshot mockups:

MVP Specs (we can add more on later, and add badges later):

First time I schedule a hangout - 10 points
Scheduling a hangout - 5 points
Starting a group - 5 points
RSVPing to a hangout - 2 points

1) codebuddies.org/hangouts sidebar

  • Explanation of points system if I hover over a (?) next to the leaderboard title

screen shot 2018-04-23 at 2 27 04 am

Last 7 days / Last 30 days (two different views)

  • Top 5 study groups
  • Top 5 users

screen shot 2018-04-23 at 2 25 17 am

2) Profile page

Shows total # of points user has earned
screen shot 2018-04-23 at 2 30 57 am

3) Navbar

Shows total # of points user has earned next to their username
screen shot 2018-04-21 at 10 44 11 am

4) codebuddies.org/study-groups

On each card, show:

  • total number of points earned by the group
  • number of points earned by the group in the last 7 days
  • number of points earned by the group in the last 30 days
    Calculation of points: 5 (starting a group) + (number of hangouts * 5) + (number of RSVPs * 2). Explain this in a (?) that's hoverable.

screen shot 2018-04-23 at 2 39 35 am

@lpatmo
Copy link
Member Author

lpatmo commented Apr 23, 2018

Also, wanted to share @adachiu's thoughts:
Gamification will work with regulating the hangout RSVPs. Docking off points if they don’t show up to an RSVP’d hangout sounds appropriate. (I think we had a GitHub Issue discussing this before). Also, maybe the hangout creator could get double the points for being the initiator while participants just get regular 1 point per completed hangout.

@billglover
Copy link

billglover commented Apr 23, 2018

Really like this @lpatmo. Particularly the fact that all points are time bound (at least on display).

@lpatmo
Copy link
Member Author

lpatmo commented Apr 26, 2018

Thanks @billglover! The designs could use improvement, but at least this is a functional sketch. I was planning to think about badges in Version 2.

That Harry Potter mobile game (Pokemon Go sequel) launched today, and I was so tempted to think about magical badges. Like, you graduate to be a "grand coding wizard" after earning 1000 points or something. (Let's assume that by that time you truly would have improved your coding skillz after being in so many hangouts...)

Tempted to tack on a +1 point for sharing something you learned, too, in the progress tracker underneath each hangout and in each group.

@railsstudent
Copy link
Collaborator

railsstudent commented Apr 26, 2018

@lpatmo Great mockup and point system. Point deduction also stresses commitment to attending hangouts and achieving the hangout goal that is to help each other learn.

@adachiu
Copy link
Member

adachiu commented May 5, 2018

QUESTION FOR DISCUSSION: Should users be able to win points for "houses" they're randomly sorted into? What would these houses be called?

As a user, I'm not so sure about being randomly sorted into a house. Perhaps the user gets to pick from a couple appropriate houses based on their learning preferences (preferences could be filled up at onboarding for the bio/profile page).

The houses could be named by the group creators, but the badges to be earned will be regulated by CB.

QUESTION FOR DISCUSSION: Should users be able to win points for study groups they belong to? Maybe this is a better idea, to reward study groups that have been particularly active. However, we don't necessarily want study groups to become behemoths.

I like the point expiry idea for regulating the "houses," but a points wipe would definitely affect motivation to continue earning points. I did a quick brainstorm on a disappearing points timeline that could be placed within the "house/group card." Disregard the "week 1, 2, 3," and pretend those are actual weeks with dates (ie. August 1 - 7). The top bar (blue) is the current active week score. The weeks' points within the current month will be visible, but the weeks prior to the current month could be shown as faded. The faded points could gradually be moved off the chart. This way, new comers who want to join the group, or current members, could see the team's performance at a glance. We could explore other ways of displaying the points chart.

screen shot 2018-05-05 at 10 54 24 pm

IDEA: In Snapchat, there is a trophy screen where different trophies get unlocked based on what you do. This is a fun and mysterious way to keep the gamification exciting. Other than the public points system for each group/house, we could have a private trophies page for each group. @lpatmo

@lpatmo
Copy link
Member Author

lpatmo commented May 8, 2018

Perhaps the user gets to pick from a couple appropriate houses based on their learning preferences (preferences could be filled up at onboarding for the bio/profile page).

OMG, learning preferences! That's an intriguing idea. I'm imagining the "don't bother me I just want a silent hangout" house competing with the "I learn by practicing teaching" house vs. the "Let's just discuss the topics" house... just kidding. Maybe half kidding.

Re: the graph
image

Love this idea, @adachiu! The graph makes a lot of sense because it's also a quick visual way to scan activity in the group.

Other than the public points system for each group/house, we could have a private trophies page for each group.

Makes sense. "Private" as in only the group members get to see that trophy, then?

@billglover
Copy link

"I like the point expiry idea for regulating the "houses," but a points wipe would definitely affect motivation to continue earning points."

This is one I'd love to hear more about. Do we have examples of leaderboard schemes that people have enjoyed participating in? I've found the quickest way to get me to give up on a goal is to present something that is achievable. Trying to climb a leaderboard when the top spots are dominated by those with a time-based head start will destroy my motivation to participate. Knowing that I can have a bad week or bad month and yet still remain in the running is really important. I believe it is also more inclusive but lack any data to support that statement.

Looking for parallels, I liken this to the difference between chasing a world record and chasing the title in a current tournament. They drive a different sense of engagement and participation.

"I did a quick brainstorm on a disappearing points timeline that could be placed within the 'house/group card.'"

Absolutely love the fading leaderboard by @adachiu. It doesn't immediately erase a good score, but does indicate that it's relevance has started to fade (literally). With this display, there would be not need to calculate a lifetime points total for individuals.

@adachiu
Copy link
Member

adachiu commented May 10, 2018

@lpatmo I like the preferences like “don’t bother me I just want a silent hangout” rather than just a preference name like “silent hangout.” It gives CB’s brand more personality (casual and friendly).

Competitions between groups with different learning styles would be great to analyze what’s more effective for learning. Just a stats experiment that may have interesting results.

🏆 trophies are private to the account holder in Snapchat and I think there’s benefits of having it private because if CB’s group A unlocks a bunch of new trophies and it is public, then it ruins the surprise for other groups that haven’t reached that level yet. Private trophies may make it more mysterious and encourage users to unlock trophies for the group.

@WizardOfAus
Copy link

This is an interesting discussion.

In the current vein of gamifying, it seems to be incentive/point driven. What about actual developer games/mini challenges/create a game?

@billglover billglover added [type] feature a new feature or significant change to site functionality [feature] community issues that relate to community management labels Mar 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[feature] community issues that relate to community management [state] in-discussion this issue is being considered and we'd welcome your thoughts and ideas [type] feature a new feature or significant change to site functionality
Projects
None yet
Development

No branches or pull requests

9 participants