GitHub の Activity を意識し始めて 1 年が経ちました

2017 年の振り返りとして、GitHub の Activity を意識し始めて変化した事を記述してみます。

GitHub の Activity (2017/02 ~ 2018/02)

GitHub 自体は利用し始めて 10 年くらい経ちますが、長い間「Git のリモートリポジトリ」以上の役割を考えた事はありませんでした。しかし、去年の 2 月頃に何となく「Activity など GitHub 上の見栄えにも少し気を配ってみよう」と思い立ち、それ以降、できるだけ Activity を途切れさせずにコミットし続ける事を 1 年間続けてみました。

その結果、法事や旅行などパソコンに触る事の難しい時以外は毎日何らかのコミットを行う事ができた点は、それなりに満足のいくものとなりました。また、去年の主な成果の一つとなった CubeICE のゼロからの改修 でも、小さな事を毎日継続すると言う習慣化が最終的に「今後も保守可能なレベルまでリポジトリを整理する事ができた」と言う達成感の遠因になったのではないかと感じています。

毎日の起動スイッチとしての役割

この 1 年で気付いた事として、GitHub の Activity が毎日、作業を始めるための起動スイッチの役割を果たしている と言うものがあります。

私の一日の多くはこんな感じだ: (1) 仕事にとりかかる。(2) emailをチェックしたり、Webを見たり、そのほかのことをする。(3) 仕事に取りかかる前にランチを取ったほうがいいと判断する。(4) ランチから戻る。(5) emailをチェックしたり、Webを見たり、そのほかのことをする。(6) いい加減はじめたほうがいいと心を決める。(7) emailをチェックしたり、Webを見たり、そのほかのことをする。(8) 本当に始めなきゃいけないと、再び決心する。(9) くそエディタを立ち上げる。(10) ノンストップでコードを書いていると、いつのまにか午後7:30になっている。

ステップ8とステップ9の間のどこかにバグがあるようだ、私は必ずしもこの溝を飛び越えられないからだ。私にとっては、ただ始めることが唯一困難なことなのだ。(中略)たぶんこれが生産性の鍵なのだ: ただ始めることペアプログラミングが機能するときにそれがうまくいく理由は、たぶんペアプログラミング セッションを相棒とスケジュールするときには取りかかるために2人が力を合わせるからだ。

射撃しつつ前進 - Joel on Software

非常に有名なコラムの一節です。私自身も、プログラムを書くと言う行為は好きなはずなのに、開発環境またはエディタを起動するのが億劫になる日がしばしばやってきます。経験的に一度やり始めさえすればストレスなく開発に没頭できる事を頭の中では理解しているのですが、そう言った理解とは別の何かが、始めることを拒絶します。

しかし、ここ 1 年は「取りあえず何でも良いから 1 コミットしなければ」と言う小さな義務感が、この状態を飛び越えるのに役に立っていると実感します。何でも良いから 1 コミットするために開発環境を起動し、プログラム全体を取りあえず眺めている内に気付けば……と言うサイクルが自分の性格や生活リズムにうまく嵌っているようです。当初「GitHub の Activity を途切れさせない」と言う事が変な義務感になるのではないかと言う懸念を持っていたのですが、この類の義務感が必ずしも悪い結果をもたらす訳ではないと言うのは少し意外な発見でした。

2017 年は、GitHub の Activity や Codecov を用いたカバレッジの可視化など、日々の作業結果をグラフなどで一目で分かるようにする事が大きなテーマの一つとなりました。このような可視化の懸念点として「可視化される結果を良くするためだけに、意義の低いコミットやテストコードを書いてしまう」と言うものがあり、実際、そう言う行動に走る時もあるのですが、総合的に見ると現状では「悪くない」と言う感触を得られた 1 年でした。