日常からいかに『刺激』を得るか。コミュニティと共生するエンジニアライフのススメ

ひとりのときにできなかったようなことでも、コミュニティーなら成し遂げられる。(エクストリームプログラミング 第2版 第24章『コミュニティとXP』より)

 

こんにちは、伊藤(@koic)です。株式会社永和システムマネジメントでエンジニアリングマネージャーをしています。

エンジニアのキャリア形成のひとつに技術力というものがあります。例えば、プロジェクトの技術的舵取りはテックリードとチームメンバーの力に寄りますし、ピープルマネジメントをするにしても技術力のベースがないと育成や評価が難しいところです。

そんな日進月歩の変化をしている技術の世界では、「昨日まで持っていなかった知識を今日身につける」「今日までできなかったことが明日できるようになる」というストレッチの繰り返しが、エンジニアとしてのレベルアップに繋がっていくと思います。

そんな技術と隣り合った日常風景に、プロジェクトでの開発や、継続的な学習といったものがありますが、ここではもうひとつ「技術コミュニティ」について考えていきます。

コミュニティでモチベーションアップへの刺激を得る

私が生業としているRuby on Rails(以下Rails)というWebアプリケーションフレームワークを使ったソフトウェア開発には、RubyとRailsを軸に集まった人たちの技術コミュニティがあります。そこには自らの仕事や技術への関心を持ち、学ぶことが心から好きというナイスで多様なエンジニアが集まっています。

「3人寄れば文殊の知恵」と言いますが、そんな人たちの集まった技術コミュニティでは技術動向や、使っているライブラリのパッチの書き方、使い方、開発運用事例など多岐に渡ったトピックが話されたり、OSS開発がされたりしています。

本業へのモチベーションが高まる

関心事やアンテナの張り巡らせ方は人それぞれですので、いろいろなエンジニアからそれぞれの考え方を学べるのは、自分の技術知識の幅や深さを広げたりモチベーション向上のきっかけになります。

『ピープルウェア』でトム・デマルコは、モチベーションは生産性に繋がることを伝えていますが、そういった普段の仕事とは違った多様な人たちとの交流による刺激は、本業の仕事へのモチベーションアップとして還元できることがあります。

コミュニティは仕事と違って入るも自由、出るも自由です。とりあえず行ってみてどんなものか体験してみるだけでも、きっと世界は広がるでしょう。

5分のプレゼンで名前を覚える、覚えてもらう

デール・カーネギーの書籍『人を動かす』に、名前を覚えるという原則があります。コミュニティでも名前を覚える、あるいは覚えてもらうといったことが、参加者同士の最初の繋がりになると思います。

最初の一歩は「日常」の発表から

ただし「名前を覚える」は「どんな人」という実態とリンクできないと、なかなか記憶に残りづらかったりもします。

技術コミュニティへの最初の一歩で名前を覚えてもらうのに手早い方法は「日常の経験を発表する」です。技術コミュニティや勉強会では折に触れて登壇者を募集しています。例えば銀座Railsでは毎月発表者を募集していますので、これから踏み出そうという人におすすめです。

発表することで自分は何に関心を持って、どんな活動している人かをオーディエンスに印象付ける自己紹介ができます。例えば名前が覚えられなくても「○○を話していた人」として認識されるようになるかもしれません。

声掛けが苦手な人こそ発表しよう

そして、新しいコミュニティに参加する時に「発表をする」は、特に自分から声を掛けるのが苦手な人におすすめです(自分がまさにそうでした)。「話しかけるのが苦手で、発表する」とは何か相反しているように見えるのですが、意外とコミュニティの人との交流を促進するのに楽なのが発表をすることです。

話すことがないという人向けのヒントになるかは分かりませんが、エンジニア界隈では持ち時間5分のライトニングトークという文化があります。一日8時間(週40時間)働けば5分話すくらいのネタとなる成長の差分はあるでしょう。

自分が知らないことは他人も知らない可能性があります。聞きにきてくれている人たちは失敗を見に来ているわけではなく、楽しい時間を過ごしに来ています。

発表というのはいつでも緊張するものなので、「発表が緊張するし怖いな。。。」という緊張を越えた先に挑戦してみるのは、新しい世界と人との繋がりを見るキッカケになるでしょう。

自分にとっての問題は誰かにとっての問題かも?

前節で「日常の経験を発表する」と書いているように、開発プロジェクトは課題解決に対する実戦と経験の連続です。

Railsを採用している企業は数多あり、Railsを基盤としたエンジニアは企業は違えど、近い経験や知識を獲得しています。そんなRailsという『巨人の肩の上』で解決した問題は、自分以外の誰かにとっての問題解決になるかもしれません。

プロジェクトでの問題を、OSSや、インターネット記事として問題解決を共有するには、他のアプリケーションでも適用可能な抽象化というひと手間が必要な時もありますが、何かをアウトプットするにあたる抽象化技術はスキルなので、身に付けることのできる能力です。

継続的なアウトプットの効果

そして、継続的にアウトプットしている人たちは、コミュニティで期待されている役割が明確になってきているように見えます。

例えば「Rubyの開発動向に詳しい」「Active Recordのアダプターに詳しい」「静的解析ツールに詳しい」「Rubyのカンファレンスに詳しい」「〇〇というライブラリのバグの相談をできそうな人」など、継続的にアウトプットしている人は「情報の確かさと鮮度の高い人」として評価されていそうです。こういったオープンなコミュニティで見える活動は、巡り巡って所属内外にエンジニアからも評価されるきっかけになります。

何よりもできる能力が増えれば技術的な選択幅が広がって楽しいですし、コミュニティでの友人知己、信頼が増えれば人生を豊かに感じる機会も増えるでしょう。

RailsフレームワークとRailsアプリケーションは地繋がりです。仕事での課題解決で得た知見を、コミュニティに還元していくことで、コミュニティとの繋がりが強化されていきます。

外部発信は「誰と働く」に繋がっていく

日本のXPコミュニティでは『degree n』という考え方があります。degree nは信頼している人からの距離を表すもので、信頼している人と直接繋がっていれば degree 1 で、間にひとり入ってれば degree 2 といった信頼区間を表現します。

このdegree 1を増やす場所はまず仕事でのプロジェクトが第一にありますが、コミュニティは仕事の枠を越えて信頼パスを増やすことができます。技術的なアウトプットというのは、『誰と働く』へのdegree 1に向けた一歩としてもおすすめです。

社内へのアピールにもつながる

そして、最近、再認識してきたこととしては、技術発信というのは社外だけではなく社内への自分の活動のアピールになります。プロジェクトをまたがると、誰がどういったことをしているかの解像度が低くなります。日報などを文化として備えていないとなおのことでしょう。

「誰と働くか」「どんな技術で何を作るか」「報酬」はキャリアパスへの大きな考慮材料になると思います。その中でも社内外問わず「誰と働くか」は、自分よりも優れた人と働いたり、仕事を面白くしてくれそうだったりするエンジニアとのパスを繋ぐ重要なファクターです。

チームで刺激を与え合う

仕事でのプロダクト開発の楽しさは、エンジニアとしてのレベルアップに繋がります。コミュニティで得た「面白そうなこと」を仕事に持ってくると、一緒に行っているプロジェクトメンバーへの刺激になりますし、それぞれが持ち寄った「面白そうなこと」で化学反応を起こすこともあるでしょう。

反対にアウトプットなしで、自分がどういった開発者かステータスを知ってもらうのはなかなか難しそうです。

情報発信にはそのまま自身のエンジニアリングスキルが反映されていきます。技術的なアウトプットを習慣化しておくことは、コミュニティや自社で働くことになるかもしれないメンバーへのレジュメとして、優れたエンジニアや良い仕事と繋がる機会になるかもしれません。

おわりに

仕事でコードを書いていて、どんなときに感動を覚えるでしょう?例えば、ソースコードをレビューしてもらった際に、自分では思いつかなかった書き方を指摘してもらえると「こんなクールな書き方があるのか!」という刺激を得るといったことがあります。

プロプライエタリな世界では、プロジェクトやリポジトリに参加できる一番すごい人がレビューの上限ですが、外部に開かれたOSSコミュニティでは、企業の枠を越えたすごい開発者からのレビューを受けることができる可能性があります。

そんなOSSに触れ合っている開発者との交流に踏み出してみるのは、エンジニアとしての視点を広げるためにも個人的におすすめです。例えば私が勤務先で月例開催している「Rails/OSSパッチ会」などに参加されるとOSS開発の雰囲気を知ることができると思います。Discord でオープンに開催していますので、よければご参加ください。

コミュニティへの一歩によって、キャリアへの新たな視野が広がるかもしれません。コミュニティでお会いしましょう!

この記事をシェア

関連記事


副業・フリーランス

プログラミング

デザイン

インタビュー

お金

採用・組織

転職

イベントレポート