

GitHub streak: End-game and post-mortem - Manishearth
http://manishearth.github.io/blog/2015/05/28/github-streak-end-game-and-post-mortem/

======
dustincoates
I've written in the past about how I love streaks as a motivating tool.[0] It
gives a motivation to get up and do _something_ , when you'd rather do
nothing.

One thing I try to do on goals that require an action, is not to add
stipulations to it like the OP eventually did in the beginning. If you make
the hurdle too large you're more likely to break the streak and more likely to
fall into inaction, so allowing a small contribution to continue the streak is
a net positive. For me, I want to study French every day and I accept that
somedays I'm going to be so busy with work that I can only afford five
minutes. That's fine--it keeps me motivated the next day and that day likely
won't be just five minutes.

I've found it doesn't work for everyone. I personally see it as a
game/challenge whereas when I speak to other people they find it overwhelming.
As always, there's no one-size-fits-all when it comes to motivation. It looks
like it worked for OP to get to where they wanted to go, though.

[0] [http://blog.hellopico.com/the-seinfeld-method-dont-break-
the...](http://blog.hellopico.com/the-seinfeld-method-dont-break-the-streak/)

~~~
thoman23
I myself find _steaks_ to be a motivating tool. Or at least I'm motivated to
eat them.

~~~
MaulingMonkey
Steaks for streaks?

------
frewsxcv
I can attest to this methodology for increasing self-motivation for OSS
contributions. Great post!

~~~
Manishearth
:D

So _that 's_ why you went on a fuzz-all-the-things spree on Servo!

(Btw, thank you for that fuzzing spree -- you got some interesting use cases
for afl-rs and found bugs and now I want to do the same!)

~~~
non-sense
Great to see you and other work on rust-lang. It looks like a great open
community!

------
VieElm
Using a lack of GitHub contributions as a way to disqualify candidates sounds
like a really bad idea. Does anyone do that? Seems like a strawman argument.

~~~
lewisl9029
While I do understand that there's possible misrepresentation resulting from
judging candidates based SOLELY on GitHub profiles, for those with presentable
contributions/projects readily available on GitHub, I feel it makes for a much
fairer representation of the candidate than many of the alternatives
(whiteboarding, solving algorithm puzzles under pressure, cultural fit tests,
etc).

~~~
geofft
Yes, absolutely (and many of those alternatives suck).

On the other hand, there's something of an inherent metrics bias when you
evaluate some candidates on one metric and others on a different one. It's
very hard to calibrate those two scales, and there's a risk that you'll be
tempted to do things like compare one candidate's GitHub PRs to another
candidate's whiteboard code. Even if you don't make that comparison directly,
you'll never dislike a GitHub-evaluated candidate for not remembering standard
APIs, making off-by-one errors (if they have the luxury of a test suite),
taking half an hour to understand a problem, etc. You'll never dislike a
whiteboard candidate for breaking with existing style, not commenting or
writing good commit messages, being a jerk to people who send in support
requests as issues, not being able to respond to code review feedback, etc.

If you have unlimited headcount, you might be able to set independent
baselines for both styles of evaluating candidates (although tuning them will,
again, be hard), but if you're at all comparing candidates to each other, it
seems likely to cause one set of candidates to have a much easier time than
the other, based on which things your engineers value. And, necessarily, that
means you'll be willing to hire worse candidates from one set than from the
other.

Using a GitHub profile to bypass a coding challenge, FizzBuzz, or similar is
fine. Using it to break ties or to allow a candidate to express "I'm actually
good at my job, even though I'm bad at interviews" is probably fine,
especially if there are other ways to do those. But having two different
evaluation strategies is likely to be unfair both to yourselves and to the
candidates.

------
monksy
Its great to have a goal to increase participation. However, this seems to be
a point of vanity than something beneficial at that point.

~~~
Manishearth
Well, initially I started off by having a friendly competition with a senior
of mine (both of us FOSS enthusiasts) after noticing my own inadvertant-
streak. At that point it was less about vanity and more about competition and
fun. Of course, when I reached 50 I was more than happy to boast about it :P

At this point -- keeping it up would be mainly a vanity thing (but I'm not
consciously doing so). For the past few weeks I haven't even thought about it
unless I open my profile and notice ("has it been _that_ long? Wow."). It's
just continued with no conscious support -- I used to sometimes think "hey,
did I forget to commit today" (the answer would usually be no, but the point
is that I was still asking myself this). Now I don't. Not because I know I've
committed, but because the streak doesn't matter.

------
zatkin
FYI, the GitHub streak can be manipulated.[0] My apologies for the lack of
documentation. Basically, since you can modify the author and commit date in
Git, you can trick GitHub into thinking you've committed something several
years in the past[1] or the future[2]. Some people have written things that
allow you even write messages into the commit graph[3].

[0] [https://github.com/zg/streaker](https://github.com/zg/streaker)

[1]
[https://github.com/zg/streaker/commits/master?page=710](https://github.com/zg/streaker/commits/master?page=710)

[2]
[https://github.com/zg/streaker/commits/master](https://github.com/zg/streaker/commits/master)

[3]
[https://github.com/jbranchaud/commitart](https://github.com/jbranchaud/commitart)

~~~
Manishearth
Yeah, I know.

In fact I have a bunch of commits on my github account that predate the
account itself because of commits imported from a project that used to be on
svn.

As I mentioned in the post; the streak is useful as a personal metric; so if
you're cheating, you know, and it's pointless :)

------
daurnimator
I wonder how you can go on that long.

You can easily see in mine
([https://github.com/daurnimator](https://github.com/daurnimator)) when I went
on vacation for 3 weeks in November/December last year.

~~~
ggreer
I'm not sure if you know, but GitHub's stats depend on the viewing user. Most
who look at my GitHub profile will see a streak of only 13 days[1], but my
coworkers see 171, and I see 871[2]. If the viewer can't see a repo, it won't
show up in the stats.

1\. [https://github.com/ggreer](https://github.com/ggreer)

2\.
[http://geoff.greer.fm/photos/screenshots/Screen%20Shot%20201...](http://geoff.greer.fm/photos/screenshots/Screen%20Shot%202015-05-27%20at%2022.20.00.png)

~~~
reidrac
Also if you contribute to a clone, it won't show in the stats.

It is a metric for self-motivation, but I guess it can be wrongly used for
other things. Is like the "GH is your CV" thing, ignoring that there are other
code hosting environments and non public code.

