いかにしてエンジニアは「技術記事を書くことを習慣化できるか」についての考察

## はじめに
[エンジニアは全員技術記事を書くことを習慣化した方がいいぞ](https://qiita.com/HiromuMasuda0228/items/a71dea7ef4d77a30b118#%E6%9C%80%E5%BE%8C%E3%81%AB-%E5%AE%9F%E8%A1%8C%E3%81%AB%E7%A7%BB%E3%81%99%E3%81%9F%E3%82%81%E3%81%AB) という記事がバズりました。
私自身この記事を読んで改めて技術記事を書くべきだと思い直し、まずはその足がけとして技術記事ではありませんがこのような記事を書こうと考えました。
（なお上記記事のコメント欄で「ゴミ記事」についての議論が交わされていますが、そこについては言及せず、いかにして**技術記事を書くことを「習慣化」できるか**ということについて考えていきたいと思います。）

## 「なぜ」を考えることでモチベーションを継続できる

記事を書く上で最初にするべきことは、記事を書くことではなく、その記事を書く理由・目的を考えることです。。
人間のやる気はモチベーションに大きく左右されますから、理由を考えることは記事執筆の大前提と考えていいでしょう。
仮に理由なく記事を書いたところで３日坊主になるのがオチです。
ではどのようなことを考えればいいのでしょうか。
究極的には人それぞれの理由があるということになりますが、まずは元記事にあるような「記事を書いた人が勝つ」「自分が書いた記事によって他人が享受する利益」の章に書かれていることイメージすれば良いでしょう。
記事内でアトラシアンからの面接のオファーがきた、という部分は将来的にアトラシアンからではないにしても、そのほかの素晴らしい企業からオファーがくるかもしれないことを考えるとエンジニアとしては願ってもないことではないでしょうか。
またこれはstackoverflowに投稿されていたことですが、reputationが増えたことでいくつかの企業からオファーをもらい、最終的にGoogleで仕事をすることになった方もいるようです。
これらのような共通的な理由に加え、自分なりの「記事を書く理由」を付け足していくとよりモチベーションが高まります。
また上記のような理由は紙のノートなりPC上のメモ帳なり、どこかしらに書き残しておくことが大事です。

## 記事が書けない原因を潰しながら、中途半端でも記事を投稿する体験を繰り返す
記事を書くための確固たる理由を持てれば、次に記事を書く作業に入って大丈夫でしょう。
ただ実際に記事を書く段階になると問題になって来るのが、「記事が書けない」という問題です。
これには多くの原因があるとおもいますが、

- 他の人が書いているから
- 何を書いていいか分からない
- もっと記事をよくできる（今の記事の状態が不十分に感じる）

と言ったものがあげられるとおもいます。
ここではそれらの原因についての解決策になる考え方を示していきます。

### 他の人は他の人が書いているにも関わらず記事を書いているという事実を認識する
最初の「他の人がもう書いてるから」というものについては元記事の一節を読むだけで十分でしょう。

> 例えば、私はかつてKubernetesについて勉強しようとした。まず公式ドキュメントを開いて1から読み進めていった。数ページ読んだところで自分が全く何も理解していないことに気が付いた。最初は自分の理解力ややり方が悪いと思っていたが、フェローエンジニアに聞いてもKubenertesの公式ドキュメントを読んで理解することが難しいことだと知った。
> その後、Kubernetesに関するある記事を見つけた。10分以内に読む事ができ、完全に理解できたのである。そのKubernetesの記事のレベルは高かったが、簡潔な説明と素晴らしいアナロジーのおかげでなんとか全体感を得ることができた。もしこのような入門としてふさわしい素晴らしい記事があらゆる技術に対してあるならば、誰もが何度も何度も苦労しながら同じドキュメントを読み返すことなく、もっと簡単に早く技術を理解できるだろうと考える。

このようにあらゆる技術の情報源の源泉は間違いなく公式のドキュメントですが、その公式のドキュメントがわかりにくく、第三者が書いた記事の方が分かりやすいと元記事では語られています。
言い換えると読まれる記事（あるいは読まれない記事）を書いた人は、既存の情報があるなかでも積極的に記事を書いたからこそ記事を書けたということになります。
そもそも目的によっては既存の記事の有無を気にする必要がない場合もあります。
特に「技術への理解を深めるための記事執筆」が目的の場合、自身の技術への理解を深めることが目的のため、同じような記事があるかどうかを考慮する必要はないのです。

### 何を書いていいか分からなければ書くものを決める、あるいはまず勉強する 

- 知識的に書けるものが多すぎて何を書いたらいいか決めかねている
- 知識的に書けるものがないため本当に書けない。

というのが記事を書けない理由としてあげられるでしょう。
人間は選択肢が多くなればなるほどストレスを感じ、意思決定を避けようとする傾向にあります。
そのため前者のような場合は自分にもっとも馴染みのある技術や目下勉強中の技術についての記事を書くと自分の中で決めるといいでしょう。
後者の場合は知識不足で書けないという場合は素直に勉強しましょう。
こちらのケースでは知識を少しずつ理解していくため、Twitterなどで短いまとめを書くのも良いアウトプットになると思います。

### "Done is better than perfect."

「もっと記事をよくできる（今の記事の状態が不十分に感じる）」というのは要するに完璧主義になっているということです。
「こんな記事を投稿していいんだろうか」という考えではプロダクトでも文章でもいつまでもリリースはできないでしょう。

> パーキンソンの第１法則: 仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する

という法則が示しているように、どこかで落とし所をつけて記事を書き切り、公開することが必要です。
マークザッカーバーグが言っているように、"Done is better than perfect."なのです。

## あとはひたすら書き続けて習慣にする

記事を一度でも公開できれば自分の中で成功体験として記憶されます、特にその記事が初めての技術記事だった場合は顕著です。
あとは記事を書き続けて習慣化するのみですが、科学的な研究で明らかにされている事実としては、何かを習慣化する際には平均で「66日間」が必要です。
66日間もどうやって続ければいいのか、という疑問が湧いてくるかもしれませんが、そこは最初に述べた「記事を書く理由」が明確にさえなっていれば継続は難しくないはず。
毎日でも記事を書き、もはや何も考えなくても記事を書けるくらいにまで習慣化してしまいましょう！

## まとめ
こんな記事こそ書きましたが私自身が書いた技術記事はまだ片手で数えられる程度ですし、習慣化できるまで記事を書いて、書くことが空気のような存在になるくらいまでやっていきたいとおもいます。

## 参考
- [Professional benefits of building reputation on SO](https://meta.stackoverflow.com/questions/254257/professional-benefits-of-building-reputation-on-so)
- [「21日間続ければ何でも習慣になる！」……わけじゃないらしい ](https://yuchrszk.blogspot.com/2013/09/21.html)
- [パーキンソンの法則](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%BD%E3%83%B3%E3%81%AE%E6%B3%95%E5%89%87)