この話については、僕が専門としているWebサービス関連の業界におけるお話だと思って下さい。ただ個人的には、もう少し広範囲でも適用できる話なのではないかなとも思っています。
ということで、早速アウトプットすることのメリットから簡単に今の現状をまとめて今後エンジニアはどういう心構えで取り組んでいけば良いか、その中で、社外発表することのメリット、その社外発表の頻度を高める事の副次的効果についてまとめていきます。
アウトプットすることのメリット
アウトプットする事やOSS化する事のメリットは、自分も含めて最近随分と語られるようになってきております。ここではそれについてあまり詳細に語る事は省略して、メリットを箇条書きでまとめると、
- 自分の技術が整理され、振り返りも容易になる
- フィードバックが得られる
- 自分の技術とその他社外のエンジニアと技術を足しあわせての技術検討(開発)が可能になる
- 自社だけでなく自分自身のアピールになる
あたりでしょうか。今回はメリットということで、楽しいとか、知ってもらえて嬉しい、あたりはあえて外しました。もちろんこれらも魅力としてあります。さらにそれらによって中長期的に得られるメリットを考えると、
- 自分自身の技術力向上、あるいは、転職活動が有利に行える
- 会社のプレゼンス向上や採用に繋がりエンジニアが集まる
- 自社の開発物への貢献が社外からも得られる事によりサービスが向上する
- 社外も含めたコミュニティの技術力全体の底上げ
などが考えられるでしょう。
ただし、この結果、社外で公開されているソフトウェアが高度化し、ソフトウェアの組み合わせによって、今まで以上に簡単に高度なシステムが組めるようになります。これは技術社会全体としては素晴らしい事なのですが、技術進化のはやいWebサービス事業者においては結果的に非常に強く競争原理が働くため、このような組み合わせばかりでサービスを作っていては、自社のサービスのメリットをなかなか打ち出せない状況に陥る事にもなりかねないでしょう。
そのためにも、社内と社外の技術力の重ね合わせによって生まれたソフトウェアを使う側ばかりにいては、他社と差別化するためのサービスを「作り上げる技術」を身に付けにくくなるため、その世界で生き抜くためにも、自らアウトプットし作り上げた物を公開していく、「作る側」に身をおかないといけない状況になるだろうと思っています。そのための手段として、技術をアウトプットすることは、個人の技術的成長のためにも、会社の事業を差別化するための技術にも役に立つ事だろうと思っています。そういう意味では、エンジニアが成長できるような体制をとる、あるいは、エンジニアの教育にとにかくコストをかけることはこれから非常に重要になっていくはずです。
この辺りがアウトプットをすることのメリットや戦略になってくるかと思います。
社外発表することのメリット
ではこの中で、社外発表というさらに対象を狭くしてもう少し具体的なメリットを考えてみましょう。社外発表の場合は、大抵の場合自分が取り組んでいる事の中で、
- ある程度新しい事を話す
- 聞いている人が面白いと思える事
- 自分が取り組んでいる事のなかでもある程度まとまっていてブログよりもボリュームの大きめな内容にする
- 内容をある程度テーマに沿ってストーリーを立てる思考錯誤をする
- 検証結果とか具体的な事例もできるだけ入れる
- 資料を作ったうえでそれを口頭で喋ったりリアルタイムな質疑応答に適切に対応するにはあやふやな理解を正しい理解への変化させる必要がある
- 質疑応答での想定される質問を検討しそれが結果的に内容のストーリーをブラッシュアップすることにもつながる
- 緊張感があるので、準備をいつも以上に真剣に取り組む傾向がある
などがあるかと思います。
こういう内容をブログで定期的にかけている人もいると思いますが、やっぱりそれを口頭でプレゼン形式で喋る事を意識するのとそうでないのとでは、本番で質問受けた時に即座に答えられるように、細かい所の用語だったりその仕組みに対する理解をできるだけ正確にしておこうという意識が働きますし、内容についても、自分がとりくんでいる事の一番の面白さはどこか、どこが比較的オリジナリティがあって新しいか、といったような、所謂学術研究思考による準備の仕方を自然に取り組んでいる事が多でしょう。
そう考えると緊張も含め、ブログを書く事よりも、比較的負荷の高いアウトプットの手段になります。その分、質疑で直接的にフィードバックや議論を行えたり、内容をその場で沢山の人に拡散して頂けたり、名前がまだそこまで売れていない状況においては、twitterなどでつぶやくよりも大きなアウトプットの効果を短期的に得られるはずです。
言い換えれば、社外で有名なエンジニアがブログや技術をSNSで拡散してくれるのと同じように、ある種その社外発表の場を踏み台としてより効率よくアウトプットする事ができるのではないでしょうか。
僕も自分のやっていることをMatzさんやその他著名な方々に拡散して頂いたおかげで今があると思っていますし、自分が良い技術をひたすら勉強しているだけでは、情報があふれるこの時代にはどうしても伝わりにくい所があり、いかにそれをアウトプットして多くの人に知ってもらえるか、ということが重要になってくるだろうと思います。
頻度を増やすことのメリット
さてさて、今日のこのブログを書くに至った本題はここにあるのですが、最近、月に3回以上とか社外発表をしている中で、その社外発表の頻度をとにかく増やす事による副次的なメリットがあるように感じてきました。
というのは、単に上記で述べたような社外発表のメリットを単純に数をこなすだけ倍々にメリットが単調増加していくという効果と、副次的に、というか、全体的には指数関数的にメリットが増加しているように感じてきています。というのも、
- 情報の拡散には流行りがあり、頻度が短ければ短い程アウトプット拡散の効果が高くなる
- 自分の技術を細かく切り出す力や新たな実績を明確に認識して説明する力がつく
- 沢山発表する中でおぼろげにあった自分の技術の大きなテーマが明確化する
- ネタが不足してきても、新たに再考したりする中で新しいアイデアが生まれる
- フィードバックで得た内容やそこから更に考えた内容を直ぐに反映させて発表するサイクルが回しやすい
という効果、言ってしまえば、「自ら生み出そうとする思考」の癖ができてくるわけです。これは、発表の間の時間があまり長くてはなかなか得られにくいメリットになります。
最近発表機会が非常に多いことから、自分はエンジニアなのにこんな発表ばっかりしていて良いのか、と最初は不安になっていたものの、機会をこなすにあたって少しずつ考えてが変わってきて、こういうメリットを得られている実感もしています。上記でも、社外発表はまだあまり知名度が低い状況でも、「短期的」にアウトプットの効果を得る方法には優れていますが、やはりこれを、ある程度の頻度でやっていかないと、他のアウトプットに淘汰されて、その技術も人も会社の印象も失われていくでしょう。そういう意味でも、聴講する側のはやりや印象は頻度を増やさないと、ある種指数関数的に減少していってしまいます。
学術研究では当たり前に定期的に論文を書いて発表することがされていますが、そこで得られる効果もわりと、技術発表の頻度を増やす事のメリットと似ている気がしています。学術研究で、月複数回の頻度で論文を書いて発表するというのはあまりにも負荷が高いですが、エンジニアの技術発表であれれば、月に複数回発表する事が、学術研究における数ヶ月単位で論文を書いて発表することを継続的にやっていくことの効果に近いのではないでしょうか。これによって、指数関数的にアウトプットのメリットを享受できるようになると、現時点では実感しておるところです。
ひとまずこの効果については、いきなり取り組むのは難しいと思うので、まず最初は社外と言わず、社内でちゃんと毎回スライドを作るようなこういう研究発表会というのを定期的にやって、それで訓練していくというのが良いと思います。それができるようになれば、社外でやったほうが上述したようなアウトプットすることのメリットを更に沢山得られるはずなので、是非ともお試し頂くと良いかなと思います。
まとめ
ということで、以上で社外にアウトプットすることのメリットまとめから、社外発表の立ち位置とその頻度を増やす事の副次的なメリットを考察してみました。
というのも、先日のコンテナ勉強会で id:y_uuki さんとこの辺の話をしていて、より理解が深まってきたという面もあるので、やっぱり社外発表からの懇親会含めた技術的議論というのは、普通に過ごしていてはなかなか得られらないなと再確認したのでした。
冒頭でも述べた通り、今後社内と社外の技術力の重ね合わせによって、公開されているソフトウェアのクオリティはどんどん向上し、その組み合わせだけで比較的高度なサービスは組めるようになる時代がもうすぐそこまで見ている状況ですが、そのような強い競争原理が働く中で事業を差別化するための技術を身につけるためには、アウトプットによって自分たちが知見を公開する側であり、ソフトウェアを作る側でいる事が必要不可欠となってくるでしょう。
もちろん言うまでもなく、アウトプットを楽しめる事、技術に情熱を持てることがそれらを継続的に行う強い味方になるはずです。詳しくは合わせて以下をご覧下さい。