この記事は pepabo Advent Calendar 2016 の19日目の記事です。
こんにちは。ロリポップ! のインフラエンジニア @takumakume です。
現在、ペパボのホスティング事業部では主に3つのサービスを運営をしています。
事業部内のエンジニアは、全体のインフラ開発を行うチーム、各サービスのWEBアプリケーションを担当するチームで構成されています。 今回、ホスティング事業部のインフラエンジニアとWEBアプリケーションエンジニアが集まる Tech MTG を開催しましたのでご紹介したいと思います。
本エントリでは以下の話をします。
- Tech MTG とは?
- なぜ開催したのか?
- 発表内容の紹介
- Tech MTG を通じて得られたもの
本題に入る前に、ペパボのエンジニアに求められる3つのことについてご紹介します。 弊社のCTOである @kentaro は以下のように述べています。
作り上げる力
これは、一般に技術力といった場合に想像しやすい能力でしょう。「他の人にはない、技術的に優れた何か」を用いて、技術的に困難な問題を、素早く、確実に解決することができる、ということです。
先を見通す力
我々が作るものは、単に一度作れば済むものではなく、継続的に価値を届け続けるべきものです。ある特定の時点における線の価値のみが高いだけでは不十分です。それに加えて、時間の経過に対して積分的な面の価値を増大させる必要があります。そのためには、設計力、テストを書く能力が必要です。
影響を広げる力
自分や身の回りだけではなく、エンジニアリングにおけるリーダーとして影響力を広い範囲に及ぼせることも、シニア、プリンシパル、シニア・プリンシパルには求められます。技術的には技術レイヤーの上下方向へ、プロセス的には広い範囲の人々を巻き込んでいく左右方向へ、それぞれ影響を広げていける能力です。
詳しくは以下のスライドを参照していただければと思います。
Tech MTG とは?
Tech MTG とは、ホスティング事業部のエンジニアが集まり、先進的技術の共有・業務において得た知見・サービスの新しい仕様などのテーマで発表を行うものです。 隔月で開催し、インフラエンジニアと各サービスのWEBアプリケーションエンジニアから1名ずつ発表します。 発表内容は外部に公開可能な形式にすることが決まりです。 理由は、外部へのアピールができることに加えて、多くの人に伝えるという意識が生まれるので業務で得た知見を抽象化したり、前提知識が備わってない人にも伝わりやすいプレゼン資料を作ったりできるためです。
エンジニアリングとアウトプットのサイクルを回すことで、エンジニアが先程ご紹介した「ペパボのエンジニアに求められる3つのこと」を達成することを目的としています。
なぜ開催したのか?
ホスティング事業部では、以下の課題がありました。
- プレゼンテーション経験が少ないエンジニアが多い
- 事業部内での技術共有の場がない
それを解決するために以下の3つの利点があると考え、Tech MTG を開催しました。
1. アウトプットをすることでエンジニアの成長につながる
エンジニアが有機的成長を遂げるために、個々人のアウトプットが非常に有効に作用すると考えています。 また、ペパボが大切にしてほしい3つのことにも「アウトプットすること」というのもあります。
- 研鑽により得た知見を人に伝えるために知識を整理・抽象化する。
- それを人に伝えてフィードバックを得ることでより高いレベルの研鑽を積むことに繋がる。
このサイクルを回すことでエンジニアはアウトプットし有機的成長を遂げると考えています。 フィードバックを得るために必ず Tech MTG の振り返りをするようにしています。
また、アウトプットすることで、自己完結してしまっていた内容が、人の目にさらされ、新たな気付きを得ることができます。
2. ホスティング事業部の各サービスの親和性を更に高める
ホスティング事業部で運営している「ロリポップ!」や「ヘテムル」はそれぞれ異なるサービスですが、同じホスティングサービスであり、またWEBアプリケーションのほとんどでPHPやRubyを採用しているという共通点があるため、技術や課題を共有することでサービス品質を向上させることができます。
3. プレゼンスキルの向上
社内で発表する場を提供することは、アウトプットに対する心理的抵抗を下げることにもつながります。 Tech MTG は座席の配置や音響など、外部の発表会さながらのレイアウトで開催しており、ここでの発表経験を社外の発表でも生かせるよう工夫しています。 また定期的に人前で発表する機会を設けることでプレゼンスキルが向上し、社外へのアウトプットの質が上がることで、全社的なプレゼンス向上にも寄与できます。
発表内容の紹介
Tech MTG の発表内容についてご紹介します。
進化するロリポップ!構成
- 発表者: インフラエンジニア @foxtrot0304
昨今当たり前になりつつある常時SSL化やHTTP2化の対応に伴い、ngx_mrubyを用いた動的なSSL証明書の読み込みを始めとして、SNI対応やHTTP2対応についての紹介がありました。
Composerによるオートロード導入時の課題解決の話
- 発表者: ロリポップ! WEBアプリケーションエンジニア @genkiroid
サービス開始から10年を超える「ロリポップ!」の複雑化したコードにComposerを導入する話でした。 作業の中でファイル数が4000を超えるPHPコード内のrequire系ステートメントを削除する際に正常性を担保することが課題となりました。 その課題に対して、コードを書いて解決させてturpanというOSSの公開をしたという素晴らしい話でした。
長期プロジェクトを初めて経験した
- 発表者: ヘテムル WEBアプリケーションエンジニア @ryoma_123
新卒入社後に「ヘテムル」の大規模プロジェクトに参画し、そこで苦労した点や、今後改善させたい点についての体験談でした。
sendmailのラッパーをGo言語で作ってみた話
- 発表者: ムームードメイン WEBアプリケーションエンジニア @kimromi
Go言語でsendmailをラップしロギングを行うsendmail-loggerというプロダクトを作った話でした。 業務で発生した課題を解決するために汎用的なプロダクトを作成して、業務改善とOSSの公開をしたという素晴らしい話でした。 「知見の共有によってホスティングサービス全体の品質向上に寄与する」という Tech MTG の目的を、見事に達成した発表でした。
Tech MTG を通じて得られたもの
ホスティング事業部として Tech MTG を開催して良かった点、改善点を挙げます。
良かった点
- 業務で生まれたツールを共有することで他のサービスでの導入の可能性が生まれ、事業部の親和性が高まった。
- 発表内容は先進技術の導入、大規模WEBサービスの改修、業務で活かせるOSSの作成などなどペパボのいいところがよく出ている内容だった。
- 初めて発表経験をしたエンジニアもおり、質疑応答や振り返りでフィードバックをもらうことで発表の仕方や資料の作り方などの気付きを得た。
改善点
- インフラエンジニアとWEBアプリケーションエンジニアが集まる中で、前提知識の説明不足で理解しにくい表現があったので専門外でも分かりやすい表現を意識する。
このように、当初 Tech MTG を開催するに至った動機を達成しているので今後も続けていきたいと思いました!
以上、ホスティング事業部で開催した Tech MTG のご紹介でした。