本記事はトレタアドベントカレンダーの23日目の記事です。
始めに
皆さま、こんにちは!
念願のスプラトゥーンのサーモンランカンストを達成したハイカラスクエアのタコガール兼佐久間まゆちゃん・北条加蓮ちゃんのプロデューサーの@hiroki_tanakaです。
本記事では私が今年1年間実践してきたアウトプット駆動開発に関して振り返ります。
丁度1年前の自分がこんな記事を書いていたので、アンサーソング的な意味合いも込めて笑
tech.toreta.in
アウトプット駆動開発とは
私は2020年の目標に「インプットとアウトプットのスループットを良くする」を設定しました。
この目標を立てた理由はここ1~2年程全く外部へのアウトプットを怠っていた結果、エンジニアとしての成長曲線が止まってしまった感覚があり、その成長曲線を再度動かしたかったためです。
そこでアウトプットを自発的に増やすためにアウトプット駆動開発を導入してみました。
アウトプット駆動開発を一言で言うと、アウトプットする前提でインプットするというマインドセットです。
一般的なメリットとして、以下のようなことが挙げられます。
- アウトプットを意識することで、注意深くインプットするようになり体系的な理解に繋がる。
- アウトプットに対するフィードバックやコメントをもらうことで、より深く学ぶ事ができる。
- 数年後の自分が簡単に振り返ることができる。
そのため、私は具体的には業務・業務外問わず学んだことはすぐに何らかの形でアウトプットして発信していくこととしました。
アウトプットの形は様々でトレタテックブログやQiitaでの技術記事投稿から、社内勉強会での発表・社外勉強会のGotanda.rbでの発表という社内外での発表もありました。
他にもトリッキーなものだと読んだ本の書評をAmazonレビューを書いたり、資格取得をしたり、社外の友人と技術書典に合同誌を出品したりしました。
ただ、私はSNSを殆どやっていないのでそこからの発信は全くしていなかったです。
そのため、アウトプットの拡散力という意味では正直イマイチでしたが、バズることや有名になることが目的ではないのでそこはあまり気になりませんでした。
(今思い返すとSNSを効率的に活用した方がよりフィードバックは得られたかもです。)
実践したこと
そんな今年一年のアウトプット駆動開発の成果ですが、下記の通りです。
- トレタテックブログの記事投稿:4記事
- Qiitaの記事投稿:8記事
- Amazonへの書評レビュー:9レビュー
- 技術書典への出品:1冊
- 社内勉強会での発表:5回
- 社外勉強会での発表:3回
- 資格取得:1資格
改めて数字として数えてみると「よくやったなぁ…」というのが率直な感想です笑
これらのアウトプットは勿論、どこかの月にまとめて行ったという訳ではなく、1年間を通じて満遍なく行ってきました。
強いてあげれば、上半期はQiita・トレタテックブログ・Amazonへの書評レビューといった記事投稿がメインでしたが、下半期は社外勉強会での発表がメインでした。
おそらく、これは最初は記事投稿といったある種、一方通行なアウトプットで満足していたのですが、
徐々にアウトプットした際に見てくださった方からのフィードバックというインタラクティブなコミュニケーションが恋しくなったためです。
発表に関してはネタがなくてもまず「発表します」と手を挙げることを常に意識していました。
挙手してからネタを考える方式だったので、発表1~2週間前は毎回「ネタどうしよう…」と悩んでいました。
今振り返るとこの挙手してからネタ考えるというのは、アウトプット駆動開発に非常にマッチしていました。
実践して感じたこと
1. 学んだ技術の深い理解
記事や発表共に何かしらのネタが見つかると色々試行錯誤しながら、記事や資料を作っていきます。
外部へのアウトプットを意識すると「外部に発信するのだから、下手なこと言えない…」という気持ちにもなり、丁寧に調べるようになりました。
そうすると自然と今まで自分が知らなかったことや曖昧なままの何となくの理解だった部分もしっかり理解出来るようになりました。
例えば、私は下記の発表をするまでRailsの権限管理に関して断片的な知識しかなかったのですが、まとめていく中で体系だった知識が身につきました。
また、よく言われることですが、勉強会は発表者が一番勉強になるということを身に沁みて実感しました。
下手でも聞く側にいるよりも発信する側にいる方が断然良いです。
2. わかりやすく説明できる力の向上
記事でも発表でも自分の学んだこと・経験したことを読み手や聞き手にわかりやすく伝わるように論理立ててまとめる必要があります。
勿論、普段の業務の中でも例えば、Pull Requestの概要や仕様のまとめドキュメントなどわかりやすく伝えるといったことを心がけることはありますが、
あくまでも社内の人は前提や背景を知った上で読み取ってくれる部分も正直、小さくはないです。
しかし、外部の人は前提や背景を一切知りません。
その人たちにわかりやすく伝わるように私は以下のことに気をつけました。
- 「自分が知ってるのだから、相手は絶対知っている。」という思い込みを捨てる。
- 言葉だけで説明せずに、サンプルコードを適度に使用する。
- 記事で伝えたいことや発表で話したいことを最初に書くようにする。また、伝えたいことも最大3つまでに絞る。
このような工夫を行った下記の発表は「わかりやすかった」というフィードバックを頂けて、かなり嬉しかったです!
3. 高いモチベーションの維持
1人で粛々と勉強していてもモチベーションを維持するのはとても難しいです。
(勉強の最大の敵はモチベーションの維持だと思っています。)
しかし、外部にアウトプットすると記事の場合はLGTMやスターが・発表の場合は聴衆からのフィードバックが貰えるようになります。
これがモチベーション維持に役立ち、「自分の記事が誰かの役に立っているんだ!」や「発表後に活発な議論が起こったということは皆気になってたんだ!」と感じることが出来、かなり励みになりました!
また、アウトプットすると自分の理解が深まると同時に、自分の知らなかったことも見えてくるので次はこういうことを勉強しよう・やってみようと思い、それがまたモチベーションUPに一役買いました。
まとめと今後
総括するとアウトプット駆動開発を通じて、成長速度は2段階くらいギアが上がったように感じたので、やってみて本当に良かったです!
そのため、来年もアウトプット駆動開発は続けていきます!
今年は上期は記事投稿中心・下期は発表中心のアウトプット媒体のバランスが悪かったので、来年は記事投稿と発表をバランス良く両立させていきたいです。
そして、外部での発表は社外勉強会だけではなくより大きなカンファレンスなどでも登壇したいです。
勿論、勉強会での発表も続けていきたいです!
また、自分が発表するだけでなく、他のエンジニアが発表出来る場も提供出来るようになりたいです!
(このアドベントカレンダーもその1つです!)
終わりに
正直に言うとアウトプット駆動開発はやっぱり、かなりしんどくて「休日なんだから、ダラダラしたい…」といった誘惑や「こんな記事書いても誰も見てくれないでしょ…」といったネガティブ感情に囚われたことは数え切れません。
ただ、業務と同じで発表(・ものによっては記事投稿も)は発表日という明確な締切があり、かなり強制力が働くのでかえって良かったのかなと思います。
おかげで継続する事ができ、1年間のアウトプット駆動開発を通じて圧倒的成長することが出来たと胸を張って言えます!
これからもこの2つの言葉を胸に来年も邁進していきます。
インプットは必要、でも差別化要因にならない。
しかし、アウトプットすることで差別化になる。
~@yukihiro_matz~
自分と同じくらいの能力がある人間はいくらでもいる。
学び続ける姿勢を止めればかつての恐竜と同じ末路をたどることになる。
~『プログラマが知るべき97のこと』~
終わりの終わりに
トレタに少しでも興味を持っていただいた方がいれば、ぜひ遊びに来てくださいヾ(o・ω・)ノ
仲間も募集しています!