🌱

1年間草を生やした上での振り返りと今後の課題

4 min read

GitHubでコントリビューションをすると、
以下のように緑が広がります。これは「草を生やす」とも表現されます。

草.png

毎日コントリビューションすることを意味する固有名詞が見つからなかったので「毎日草を生やす」と呼んでいるのですが、これを1年間(365日)続けることができた、すなわち1年間を草を生やすことに成功したので、この習慣を続けてみたことについて振り返ってみます。

前提

昼間は仕事をしているので上記のコントリビューションは仕事前の朝や仕事終わりの夜にやっています。アカウントも個人用のものです。

よかったこと

自分の興味のある技術をすぐに試せる

仕事ではPJに最適な技術を使うことになるので、必ずしも自分が一番好きな言語を使えるわけではありません。一方プライベートでは自分の好きな言語・フレームワークを好きなだけ使うことができます。書きたい欲が満たされます。

また、新しい・話題な技術についても自分で少し試してみたい、と思ったらすぐに試すことができます。新しいものを学ぶのが好きな人なら共感いただけると思うのですが、未知のものを少しずつ理解していき、自分の技術として身についていく過程が非常に楽しいです。

情報収集の速度が上がった

毎日取り組むにも時間が限られているので、情報のキャッチアップにはスピードが求められます。ネットで公式サイトや関連ブログを通して必要な情報を探すことを毎日繰り返すと、自然と「どういう探し方をすれば求めている情報にたどり着くか」がわかってきて、見つけるまでの時間が短縮されていきました。

いろんなものを試しているうちに著名OSSへのコミットもできた

上記の通り興味を持った話題な技術についても触れることができ、その過程で公式のチュートリアルに取り組むことがあります。多くのチュートリアルや公式ドキュメントはその内容がOSSとして公開されており、Typoがあった時とかはIssueを投げたり修正をPRで投げたりすることもできます。

自分はFlutterのドキュメントにすごく小さなPRを投げたのですが、お会いしたことがない海外の方からLGTMを貰うのは初めての体験ですごく感動しました。

大変だったこと

書きたいものが思いつかない時がある

コードを書くのは好きだが、書きたいもののアイデアが思い浮かばないという状況に覚えのある方はいらっしゃいますか?

自分の場合は上記の典型で、仕事でもプライベートでもコードを書いてアイデアを形にしていく過程はとても楽しいと感じるタイプだが、そもそもの書きたいもののアイデアがありませんでした。

「コードを書きたいし毎日続けたいから、とりあえず」ということで、UIデザインのアイデアをコードとして形にしたり、ということはしてみたのですが
割とすぐに書き終えてしまって、書きたいものが思いつかずになんとなくチュートリアルをやったりして実績を稼ぐことに逃げていました。

どうしてもコードが書けない時がある

PCを持たずに別の場所にいる時とかはコードが書けないこともありました。
そういう時はスマホのGitHubアプリでIssueを作成したり、PRをマージしたり、といったことしかできませんでした。

例えば年末年始で2日間くらいPCから離れて生活をしていたので、大晦日と正月はコードを1行も書けずIssueを作ったのみでした。さすがにそれは渋いと思いその後3日間はコードを書きまくって70コミットくらいしました。

良くなかったこと

とにかく続けるために変なコミットが多くなってしまった

1日1コミットでもいいから、とにかく毎日続けようと思っていても上記のようにコードが書けなかったりすると、単にやることリストの内容みたいな思いつきのIssueを書いたり、空のファイルを作成してコミットしたり、変なコミットが多くなりました。

毎日せっかく時間をかけているのに自分の技術力の向上につなげられていないのがすごく良くないと思いました。毎日時間をかけてやるとしたらどうするべきなんだろうと反省した結果以下のような課題意識が芽生えました。

今後の課題

毎日やることの意義を考え直す

とにかく続けるために変なコミットが増えてしまうと、
せっかく毎日時間をとっているにもかかわらず有意義な時間として使うことができず、成長につながりません。
もっと、日々コードを書く時間を自分の成長に繋げるためにはどうすればいいだろうか?ということを考えていました。

あるべき姿としては、「毎日コードを書くことで難しい課題に挑戦しており、その過程で知見を得て成長している」という状態なのではないかと思いました。
技術的に難しい課題に、情報収集をしつつコードを書いてみて解決を目指し、
解決できなかったとしても解決に近づいたことで翌日はさらに新しい方法で解決を目指せる、
という状態をイメージしています。

この状態において、自分は毎日コードを書くということで試行錯誤のサイクルを短い期間で繰り返すことになります。そうすることで、仕事でも行なっている課題解決の方法を常に実践しつつ、日々成長できるのではないかと考えています。

最近の工夫

日常で感じた課題や興味関心をアイデアに繋げる

目標管理のアプリを開発中です。詳細はこの記事の内容とほとんど関係がないので省きますが、この1年間で目標管理の大切さや、組織・人材開発への興味が湧いたことが開発のきっかけです。自分の思い描いたアイデアが日々形になっていく様子を実感できて、楽しいです。毎日続ける大変さというものは一切なく、次はどうやって取り組もうか、ということを常に考えて行動できています。

「成果」を意識して試行錯誤

コードを書くにしても、書かないにしても、何か成果を得ることを目指してやっています。

目標は自分の開発力の向上なので、毎日コードを書くことを目指しています。
ただし、どうしても難しい課題に直面して1行も書けない場合は
Issueに「何をやろうとして、どこまでできて、何ができなかったか」を記述して起票しています。
翌日はそのIssueの解消に向けて取り組むことで、
うまくいけばコードが書けるし
コードが書けないとしても得た知見や新たに明らかになった課題がIssueになります。

上記の姿勢で取り組むと、1日という短いスパンの中で
「課題を理解する」「その解決のために情報収集をする」「得た情報をもとに行動する」
というサイクルを繰り返すことができます。
その結果、アイデアが形になったコードか
その実現の過程で得た知見を明記したIssueか
いずれかの形で日々成果を生み出すことができます。

おわりに

毎日コントリビューションをした上での振り返りをしました。
毎日続けることができても、成果を生み出し続けることの難しさを感じました。
自分としてはこの習慣を続けつつ、成果を生み出すためのサイクルを改善し続けていきたいと思っています。

自分と同じように毎日コントリビューションをしているかどうかに関係なく
毎日続けることで本当に意味を成すためには何が必要なのだろうか
と悩んでいる方にこの記事が役立てば幸いです。

参考記事

参考記事として同じ話題の記事をまとめてくださっていたので全て拝見しました。

https://queryok.ikuwow.com/entry/everyday-commit/

毎日続ける中で何度か起きた「とりあえず継続するために何かコミットしておこう」みたいな現象について、自分にとってもそれが一番問題だったなあと再度実感させられました。

https://syfm.hatenablog.com/entry/2017/11/30/055733

自分よりはるかに上のレベルを行っていて参考にするというか次の目標として考えさせられた記事。
技術的な課題を解決するようなOSSの開発には取り組めていないのですが、
こうして人に役立てられるものを日々形にしているというのは自分も目指すべき姿だと思いました。

https://ksoichiro.blogspot.com/2015/07/blog-post.html

Discussion

ログインするとコメントできます