社内にエンジニア勉強会の文化が芽吹くまでの1年間の振り返りとノウハウ公開

こんにちは。開発部門HR(技術人事)を担当しているOKANO@奈良出身です。前回はぐるなびの新卒研修がどのようなものなのかを紹介しました。

今回はこの1年開発部門の中で開催してきた、ベテラン若手問わずに参加ができるエンジニア勉強会の取り組みについてお話したいと思います。

数ある職種の中でも、エンジニアは特に学び続けることが必要な職種のひとつだと僕は思います。毎日のように更新される技術ブログや新規技術の記事に目を通しているだけで時間が瞬く間に経過していきます。

個人が学んだことを組織内で共有し合える環境は、参加者同士で刺激を受けられて一人でもくもくと学ぶよりも自分の中への落とし込みも多いもの。

そんな組織的な学びの環境を作りたいなぁと思っている方の参考になるとうれしいです。

2017年3月〜2018年2月に開催した勉強会

2017年2月に勉強会プロジェクト(以下、勉強会PRJ)が始動してから1年。これまで以下の社内勉強会を開催しました。

  • IntelliJ IDEAハンズオン
    • 外部講師にお越し頂き、IDEのハンズオンを開催しました
  • コードゴルフ大会
    • 動くソースコードをどれだけ短く書けるかを競う
    • お試しプログラミングコンテスト企画。その場でロジックの紹介(感想戦)をするなどしてナレッジを交換しあいました
    • php7.x、golang1.x で実施
  • ランチタイムプチ勉強会(通称勉トーーク!)
    • 10回実施(2018å¹´7月現在)。ランチタイムを中心に隔週開催
    • VUIやブロックチェーン技術などの先端技術ネタから、CIやこだわりエディタなどの業務関連ネタまで、幅広いテーマを取り上げる勉強会
    • 気軽にインプット/アウトプットができる場として、登壇者が話すだけでなく参加者同士がディスカッションしあう
    • テーマは「○○芸人」とし、エディタ芸人、Google Home 芸人などを実施
  • ソフトウェアテストセミナー
    • 外部講師にお越し頂き、ソフトウェアテストに関する講義を開催
  • LT大会
    • 技術共有と交流を主旨に開催しているLT大会。テーマは毎回変更しています
    • 2018å¹´7月現在、8回を迎えました

f:id:gnavi_developers:20180712140932j:plain 勉トーーク!GoogleHome芸人の時

ぐるなびの勉強会文化

これまでも開発部門で全く勉強会が開催されなかったわけではありません。しかし、コンテンツやレイヤー別に有志が自発的に集まる勉強会が主でした。

ぐるなびで、勉強会はなぜ定着しなかったのか

勉強会が定着するために必要だと思う事をざっと挙げます。

  • 定期的に開催している
  • 主催者がいる
  • 誰でも参加できる体系になっている
  • 催し自体に参加する価値がある
  • 開催できる場所がある

この全てを満たし続けることは、はたして簡単なことなのでしょうか。 僕は一筋縄ではいかないものだと思います。

勉強会文化を定着させたい

ぐるなび開発部門では、上記のようにクローズドで開催されているケースはしばしばありましたが、オープンな勉強会は開催できていませんでした。学んだことをアウトプットする価値はとても高いです。世の中には社外の人を招く勉強会を開催している企業も多い中、技術人事としてぐるなびでも社外に向けたアウトプットの促進を進めたいという想いが募っていました。

勉強会プロジェクト発足

そうした背景から、「エンジニア人財育成」の観点と「勉強会の社外へのアウトプット」の観点の2つを実現するため、プロジェクト化を提案しました。 当時は以下のように要件を設定。

プロジェクトの存在意義

  • 勉強会を体系化させ、年間スケジュールや目的をもって活動する
  • 勉強会の開催・運営ナレッジを蓄積し、ブラッシュアップする
  • 勉強会開催と運営の結果、勉強会の文化を醸成してエンジニアにとっての理想の環境を創る

どうやって取り組んでいくか

まずはじめに、プロジェクトのWhyとWhatを言語化することにしました。

言語化することでプロジェクトの意義を部内に広く認知してもらう事ができると考えたからです。目的と施策のつながりを明示するプロセスはとても大切だったと思います。立ち返ることが出来る場所を用意しておくことで円滑に取り組めました。

Why:なぜ実施するか

なぜ勉強会をするのか。僕はこのように定義しました。

  • ナレッジシェアと技術力の底上げ
  • 社外へのアウトプット機会を増やす

What:何をするか

勉強会では何をテーマに据えるかが大切です。

  • 年間で開催するイベントスケジュールを考える
    • エンジニアを集め、エンジニアが楽しめる環境をつくる
  • コスト(費用面・設備面)の有効活用
  • 外部の人を呼びたくなるような企画を生む
  • 業務として取り組む

上記をベースに以下のタスクに取り組みます。

  • 協力者の調整
  • 当日のアジェンダ作成
  • 必要備品の挙げだし
  • 資料・実施内容のレビュー

プロジェクトメンバーのアサイン

アサイン要件は2軸で考えました。

  • 勉強会そのものを現場目線で考えられる&外部勉強会に慣れている人
  • 事務方として上記を支援する人

前者はマネジャー層へ適任者のレコメンドを依頼。各部署にご協力を頂き、スムーズにプロジェクトチームを結成できました。後者は、僕に加えて同じグループのあおきさんに助けを求めました。

現在も週次でMTGを実施し、イベント開催日が近づいたら個別ミーティングを開いています。

f:id:gnavi_developers:20180712141008j:plain 勉強会PRJメンバー写真(後列右から6人目まで+あおきさん)

イベントスケジュールと毎回の目標を立てる

最初の活動はイベントスケジュールの作成です。

プロジェクトメンバーの多くは勉強会やカンファレンス慣れしているものの、自分達で勉強会を主催するには具体的なテーマが必要です。最初は「メンバーのみんなが参加したいと思えるものなら何でも!」というスタンスだったのですが、いざそう言われても困るものです。

まずはブレストから始め、結果をもとに「なぜこれを開催すると嬉しいのか?」というような問いかけを重ねる形で掘り下げていきました。

プロジェクトメンバーから出た「ハンズオンできたら楽しいよね!」「後輩がデザイン学びたいと言っていた!」「新しい言語でAPIとか作ってみるイベントとかいいよね」といったコメントを重視。

そうしてできあがったスケジュールがコレです。

  • 2017å¹´3月
  • 4月 速習会
  • 5月
  • 6月 LT大会(仮)
  • 7月 速習会
  • 8月
  • 9月 速習会
  • 10月 LT大会
  • 11月 速習会
  • 12月
  • 2018å¹´1月
  • 2月  祭(カンファレンス主催)

全体スケジューリングの段階では詳細を詰めず、ざっくり決めています。

イベントの告知

社内へ地道にイベント開催を知らせようにも、勉強会を告知できる特定の場がありませんでした。

そこで

  • 広域のメールでSlackのリンクを掲載
  • 月次全体会議など注目を浴びるところで毎回告知
  • Confluenceでイベント概要ページを作成

イベントの魅力的な部分などを伝えながら、社内のさまざまな場所で広報しました。

まずはメール。

f:id:gnavi_developers:20180712141220p:plain
メールでの告知内容。詳細はあえて載せずに、slackにジョインしてない人達にジョインを促すように振舞っています。

メールを主にチェックしていてSlack ChannelをMuteしている人に向けて、あえて詳細はメール文面へ載せませんでした。Slackに誘導することで、フランクに、かつ双方向的にやり取りができ、参加してくれる方が多くなるのではないかと考えました。

f:id:gnavi_developers:20180712141511p:plain
Slackでの告知内容。詳細はConfluenceに貼っています。

告知は多くても1日1通を意識しています。参加希望者が奮わないと追加で何回も通知したくなりますが、それは運営側の都合でもあるので我慢です(笑)。

リマインドの通知を週明けや前日・当日の朝一番に発信するようにしています。

記載内容は、日付を太字にして少し目立つようしました。場所は社員からすると当たり前な場所であるためサラっと書くようにしています。

詳細リンクは必ず載せます。リンクがあるとその先を見たくなるものですよねw

分報チャンネルにて勉強会の宣伝をして回ったりもしました。広域ではなく個人宛で誘いに行くと興味を持ってくれることが多い印象があります。(ついでにそのチャンネルにいる他の人にもシェアできたりもします。)

f:id:gnavi_developers:20180712141558p:plain
Confluenceの内容一部。この時はGitワークフローを取り上げました。ぐるなびのgitflowの使い方一例はこちら

イベント運営

1年間で手を変え品を変え、10回以上のイベントを開催しました。

エンジニアのコラボを生み出すLT大会

これまでにも何度かブログでレポートしていますが、テーマの検討や登壇者の募集など運営を勉強会PRJで行いました。

LT大会のテーマは「技術」と「交流」。より多くの人に参加してもらえるように詳細を詰めました。

ぐるなび初のプロコン、コードゴルフコンペ

f:id:gnavi_developers:20180712141805j:plain

すでに社内Slackにコードゴルフチャンネルがあったので、「社内で大規模な大会をやろう」と意気込んで開催しました。

いざ準備を進めると問題制作、テストコード、実行環境の用意、当日の実況など初めての事も多く大変な面もありました(特に勉強会PRJのエンジニア各位にはとても助けてもらいました)。

当日は全部で6チームが出場。commitされたコードをpullしてきて、自動で走るテストコードとその結果(バイト数)を全体に表示することで一喜一憂する参加者たちがいて盛り上がりました。

f:id:gnavi_developers:20180712141827j:plain
カンニング防止と議論用にホワイトボードで仕切りを作りました。

問題数は40分で3問。

問題数を用意しすぎたようで、コードゴルフの真髄である「1バイトのせめぎ合い」みたいな感じではなく、「時間内に全問解いたもん勝ち」みたいな感じになってしまいました。次回開催する場合は絶対改善します。(コードゴルフのお話は機会があれば問題と回答も添えていつかお話してみたいとも思っています。)

f:id:gnavi_developers:20180712141915j:plain
少し分かりづらいですが、3問それぞれで採点が終わるとグラフに反映するようにしました。(グラフの最大値の設定をこの写真の後に修正しました。)

勉トーーク!立ち上げ

勉トーーク!は幅広い技術テーマを扱う、登壇者と聴講者の距離が近いカジュアルな勉強会です。

立ち上げは2017年6月に開催したLT大会の後でした。

次の速習会のネタを考えるために、勉強会PRJ内でディスカッションをしました。すると挙がったのが「ソフトウェアテストについて学びたい人は多いのではないか」という意見。

これまでの経験からLT大会のように登壇者がいると目的が明確になり、テーマ設定しやすいです。

LTにて同テーマで登壇した適任者にお願いしたところ、登壇者から「1時間も話すほどのネタではないかも」と意見が。勉強会PRJで対策を検討し 「集まったメンバーでソフトウェアテストについてのディスカッションをしよう」という結論になりました。

開催時刻はランチタイム。家庭の事情で定時後には参加できない方がいることや、他社さんでランチ勉強会の成功事例を聞いていたことなどを考慮しました。

さらに、継続しやすいよう勉強会の汎用テンプレートで運用しようと考えて、会に冠名をつけました。勉強会とお弁当とディスカッション(トーク)をかけて、「勉トーーク!」です。

勉トーーク!では、現地での参加者に加えてSlack callでリモート参加も受け付けています。

f:id:gnavi_developers:20180712141958p:plain
勉トーーク!CI芸人のときのリモートジョインの様子(Slack Callを使用)

登壇者の話の流れを遮らないよう、質問する人はSlackの専用チャンネルに質問をなげてもらいました。結果、話が終わった後の議論の活性化につながりました。

f:id:gnavi_developers:20180712142035p:plain f:id:gnavi_developers:20180712142045p:plain

今はプロジェクトメンバーが主導していますが、最終的には自発的にメンバーが集まり開催される状態になることを願っています。

なにが変わったか

1年間の勉強会PRJの結果、社内のエンジニアたちはどのように変化したのでしょうか。

社内イベントの参加者が増えた……!

部門全体に働きかけるような勉強会の開催は告知や準備などすごくパワーを使います。それゆえ、ぐるなびでも従来はこじんまりとした勉強会が主でした。

勉強会PRJの取り組みによって、もともと他社の勉強会などに足しげく通っていたエンジニアを軸に、社内で開催するイベントの参加者は徐々に増えています。Slackの告知チャンネルには160人以上がジョイン、勉トーーク!のつぶやきチャンネルも100名以上がジョインしています。

レベル感をうかがいながら外部の勉強会に戦々恐々としていた若手エンジニアも、社内勉強会には積極的に参加してくれるようになりました。

イベントで登壇したがる人が増えた……!

勉強会PRJの企画ではイベント運営側からお願いにあがる事も多いのですが、エンジニアから自発的に「このネタでアウトプットしたいです」といったありがたい声ももらえるようになりました。

問い合わせ先が明確になり、毎月開催している部門全体会議の中で執拗なまでに「企画自体の存在告知」と「アウトプットの募集」をした効果だと思っています。

「勉強会文化」が芽吹きはじめた……!

こういった社内の勉強会企画の取り組みを社外の人に紹介する機会に迷うことなく、開催しているイベントを紹介してもらえるようになりました。おのずと思い浮かぶ状態(トップオブマインド)になっているのです。

例えば、中途採用面接シーンや新卒採用シーンで学生から質問されますよね。

ただし、「芽吹き」と表現したとおり...まだまだ道半ばでもあります。チャンネルのジョイン数だったり、催しへの参加人数・リピート率・満足度だったりに目先の目標を置きつつ、最終的に個人と組織にとって価値のある文化に育って欲しいと願って活動しています。

f:id:gnavi_developers:20180712142126j:plain
勉トーーク!Editor芸人のとき

振り返りとこれから

この1年で参加人数は増え、アンケート結果もそこそこ蓄積できました。

アンケートから見えた参加者の意見と運営側の目標とのギャップを可視化し、仮説を立て熱いディスカッションを繰り返した結果、改めて大事にしたいことが明確になりました。

それは、「すでに参加してくれている人にとって学びが多い内容を発信し続けることが本質的だし大事だよね」ということ。

これまでは「イベントの参加者数を増やしたい」という思いが強く、入門編など参加ハードルが低い内容をテーマにした会が多くありました。しかしこれまで勉強会に参加した経験が少ない人が社内勉強会に足を運ぶようになるのは、そう簡単ではありません。

かわりに、すでにモチベーションが高い人たち(登壇者や、参加したいけど都合が合わないという方々)の成長を支援するイベントを増やし成果を上げてもらうことで、これまで勉強会に参加していなかった人も興味を持ち、参加したくなる状態を作り出すのが良いのでは、という結論に至りました。

これからも試行錯誤は積み重ねるつもりですが、2年目は催しの質にもっとこだわれるよう登壇者の支援を考えています。

どうやったら定着するか

もっとも大切なことは2つ。1つ目は施策を主導側(今回のお話でいうと僕)が組織のポテンシャルを信じること。2つ目が主催者が自分のやっていることを信じること。

これは「ほしい作物が実る植物に水や肥料をあげる」のと似ているのではないかと思います。それができれば、「おこなったことを振り返っては修正する」という作業を繰り返すことで文化の定着に結びつくと考えているからです。

幸い、ぐるなびにはこういった活動をマネジャー層や優秀なエンジニアが好意的に受け止めて支援してくれます。(本当に助かりました!)

勉強会文化醸成の意義(私見):まとめ

何度でも言いますが、エンジニアは他職種と比較しても相対的に生涯学習が必要な職種です。僕自身、エンジニアから技術人事になった今の方が技術情報へのアンテナ張りに躍起になっています(でないと、現場の皆さんとお話をするうえで申し訳ない気持ちにもなるんです)。

自分の理解の確認には、集めた情報を咀嚼して誰かに伝えることが有効です。そのために、「気軽に参加・開催ができる勉強会」というアウトプットの場が、個人の成長に繋がると信じています(主催者側の僕は、自分の話したことを学びとして受け取ってくれる人がいるととても嬉しい気持ちにもなります)。

こうして勉強会文化が醸成されれば、参加者同士での学びあいが生まれ、組織全体の知識向上・生産性向上に繋がると思っています。

文化が芽生えるまで主催者側にパワーが必要ですが、本記事が皆さんの一助になればさいわいです。

将来的には勉トーーク!やLT大会へ、社外の方も招けるようにしたいと思っています!その際は是非ご検討ください!


お知らせ
ぐるなびでは一緒に働く仲間を募集しています。



OKANO
関西で大学を卒業し、'09に新卒でぐるなびに入社、上京。入社後の6年半はエンジニア(主にインフラ)としてぐるなび各種サービス、Let's ENJOY TOKYOの運用に携わる。
現在は開発部門に特化したHRとして、エンジニアにまつわる人事課題へチャレンジしている。座右の銘は「まじめは武器」。
'; relatedArticle += ''; createLinkList.push(art.link); if (createLinkList.length == 5) { return false; } }); return [relatedArticle, createLinkList] } var showRecommend = function(items1, items2) { var createLinkList = []; var relatedArticle = '
おすすめ記事
'; } else { relatedArticle += articleList1[0] + '
'; } $('footer.entry-footer').before(relatedArticle); } var feedUrl = "/feed"; var myCategory = $("div.entry-categories a:first-child").text(); if (myCategory != "") { feedUrl = feedUrl + "/category/" + myCategory; } getFeed(feedUrl) .then(function(data) { first_items = parseFeed(data); return first_items; }) .then(function(first_items){ var second_items = []; if (first_items.length < 5 && feedUrl != "/feed") { getFeed("/feed").then(function(data) { second_items = parseFeed(data); return [first_items, second_items]; }) .done(function(items) { showRecommend(items[0], items[1]); }) } else { showRecommend(first_items, second_items); } })
'; //挿入するタイトルのHTML for (var i = 0; i < num; i++ ){ var entry = result.feed.entries[i]; var entryImg = ""; var imgCheck = entry.content.match(/(src="http:)[\S]+((\.jpg)|(\.JPG)|(\.jpeg)|(\.JPEG)|(\.gif)|(\.GIF)|(\.png)|(\.PNG))/); //画像のチェック entryImg += ''; if(entry.link != presentUrl){ container.innerHTML += '
' + entryImg + '
' + entry.title + '
' + '
' //挿入する関連記事のHTML }else{ num ++ //今のリンクのときは、表示せずもう1つ記事を取り出す } } } } } google.setOnLoadCallback(initialize);