GameWith Developer Blog

GameWith のエンジニア、デザイナーが技術について日々発信していきます。

PHP カンファレンス福岡 2018 前夜祭リジェクトコンで発表してきました #phpconfuk_rej

こんにちは。

エンジニア兼技術広報の @serima です。

仕事では会社から支給されている Macbook Pro を利用しているのですが、このキーボードでタイプしすぎると腱鞘炎になりがちで長いこと悩んでいました。なので、少し前から尊師スタイルに切り替えてみました。(自分の場合はマウスを使うので、完全にはそれではないのですが…)

いずれにせよ、HHKB を利用することで腱鞘炎は改善しました!

と、前置きはここまでにしておいて…

PHP カンファレンス福岡の登壇枠への応募

PHP カンファレンス福岡 2018 の登壇枠に下記の内容で応募したのですが、残念ながら採択されませんでした。 もし採択されれば、GameWith がどのようなインフラ構成で動いているかという話を中心に、主にアーキテクチャについてお話をしようと思っていました。

今思うと、少し会社のカラーを強く出しすぎてしまったかなと反省しております。

■タイトル
国内最大級ゲーム攻略メディアを支えるアーキテクチャ

■セッション内容
弊社 GameWith では主にスマートフォンゲームの攻略メディアを事業として展開しつつ、その他にもSNSやネイティブアプリなど様々な機能開発を行っています。
バックエンドは PHP、インフラ環境は AWS を利用し、国内最大級のゲーム攻略メディアに成長してきました。
成長の過程で、どのように負荷を捌く工夫をこらしてきたかという話を中心に、メディアにも波及するゲームイベント開始時のスパイクなど事業特性上の課題を、どのようなアーキテクチャで乗り切ってきたか解説します。

ちなみに、実行委員長の赤瀬さんもこのようにツイートをしている通り、今年の PHP カンファレンス福岡への登壇枠の応募が例年よりかなり多かったようです。

これはあくまで推測ですが、PHPerKaigi 2018 の開催タイミングがちょうど PHP カンファレンス福岡の登壇枠の応募期間中ということも関係していたかもしれません。

PHPerKaigi の閉会式でも、ぜひ応募してみましょうという流れがあったように記憶しています。

ちなみに、弊社は PHPerKaigi 2018 への協賛を行いました。(宣伝!)

tech.gamewith.co.jp

リジェクトコンの開催

上記のような背景もあり、メルカリさんと LINE Fukuoka さんの共同開催でリジェクトコンを行うという話をお聞きしていました。

リジェクトコンとは「本編でリジェクト(不採択)された人やテーマが集うカンファレンス」のことで、YAPC::Asia や iOSDC でも過去に開催されたことがあります。

さて、私は当初考えていた内容について話すか、それとも別のテーマに切り替えるか悩んでいました。

というのも、もともとは 30 分か 45 分の枠で話すつもりだったのですが、リジェクトコンは 20 分の固定枠となっていました。

削って話すこともできたといえばできたのですが、それよりも最近自分の中でホットな「エンジニア採用」と「技術広報」というトピックについて話しておきたいという気持ちが強くなり、最終的にはテーマを変えて資料を作り始めました。

ちなみに、登壇するということで今回の渡航費用+宿泊費用はすべて会社で負担してくれています。

f:id:serimaryo:20180615184509j:plainf:id:serimaryo:20180615185648j:plain
LINE Fukuoka さんのオフィス風景

f:id:serimaryo:20180616153720j:plain

エンジニア採用と PHP

会場は LINE Fukuoka さんにより自社のカフェスペースを提供していただいたのですが、まさかの 3 トラック同一空間同時進行という未曾有の事態が発生しました!

仕切りもなく、各々が地声で発表するというスタイルでした😁 おかげで、コール・アンド・レスポンスが発生したり、緩やかに楽しい雰囲気で進行していきました。

私は、「エンジニア採用と PHP」というタイトルで発表しました。

スライドだけだとうまく伝わる自信がないので、下記の補足も是非お読みいただけると幸いです。

GameWith のエンジニア組織の状況について

弊社 GameWith は 2013 年 6 月に創業し、2017 年 6 月に東証マザーズに上場しました。

創業から約 4 年間で上場できたのは、ユーザさんに毎日使ってもらえているからということは他ならないのですが、エンジニア組織については事業規模の割には小さく保ってきていました。

私が入社した 2017 年 3 月時点でエンジニアは 12 名でしたが、上場後半年ほどが経過した 2017 年の後半以降、初期のタイミングで入社していたエンジニアが立て続けに退職していくという時期がありました。

会社として良くも悪くもフェーズが変わるタイミングだと個人的には感じていました。

スライドにもありますが、ちょうどその頃から私が技術広報として活動を始めたり、エンジニア採用について力を入れ始めたところでした。

この間ももちろん事業成長のためにサービス改善を行っていく必要があったのですが、今後の事業展開を見据えるとどうしてもエンジニアが不足しており、エンジニア組織の拡大に会社としてフォーカスしていました。

PHP Way について

スライドの中で「PHP Way」について触れています。

弊社がちょうど上記のような組織課題を抱えているときに「PHP Way」に参加しました。

devblog.thebase.in

登壇された企業さんと同じく弊社も PHP を使ったプロダクトを有していて、各企業さんがどのようにそれらと向き合っているのかを知れたことはとても参考になりましたし、勇気づけられる場面も多々ありました。

それが、以下の技術選択の話に繋がります。

技術選択の言語化

技術広報がきっかけで、様々な技術カンファレンスへのスポンサードを行ってきました。

どのカンファレンスにスポンサードを行うかを考えるときに、当然自社の技術について考えなければなりません。

技術広報としては、マーケティング的な観点から「技術的にどの部分に光を当てると興味を持っていただけるか」ということも考える必要がありますが、手段と目的を履き違えてはいけません。

(もちろん、エンジニア採用を目的とした技術選択がされる場合もあるとは思いますが、当時の弊社にはそういう考え方は不要と考えていました。)

そこで、それまで特に言語化されていなかった技術選択について、当時のメンバーと議論をするためのベースの資料を作成しました。

それが、スライドに出てくる「技術選択について(草案)」というドキュメントです。

この草案をベースに議論している中で

「いろいろ大変だから変えられないよね」で止まるより「じゃあどうしたらもっとよくできるか」が腕の見せ所

という言葉を発したエンジニアがおり、たいへん共感しましたし、同僚として勇気をもらいました。

どのように候補者に選ばれるか

スライドの中で「興味を持ってもらうきっかけ」について下記を挙げています。

  • 事業(サービス)内容
  • 技術スタック
  • 同僚・経営陣
  • 労働環境、福利厚生
  • 評価制度・報酬

興味を持ってもらう最初のきっかけは極端な話、なんでも良いと思います。

ただし、入社されてからのことを考えると、それぞれの満足度(インタレスト)がバランス良い状態だとより健全な状態かなと考えています。

例えばの話ですが「労働環境、福利厚生」だけに惹かれて入社して場合、中長期的には幸福度という観点では低くなってしまうのではないかという懸念があります。

今回のセッションでは、「技術スタック」のみにフォーカスしてお話しましたが、本来はもっと総合的に考える必要があると考えています。

まとめ

ご存知の通り、エンジニアは超が付くほどの売り手市場が続いており、厳しい市場環境の中でどう採用で勝っていくかは各社さん悩んでいることかと思います。

細かな施策はいろいろとあるとは思うのですが、会社としてエンジニアの成長をサポートする文化や仕組みを持っていないと今後緩やかに厳しい状態になっていってしまうよね、という話をこのセッションを通してお伝えできればと思いました。

PHP を使っているから云々という話ではないのですが、割と汎用的なサーバサイド言語としての位置付けである PHP を使っている企業だからこそ、使用している技術スタックに対してより意識的になる必要がある、というのが私の考えです。

技術広報というトピックに飛んだりしましたが、最終的にたどり着きたかった結論はここです🙏

そして、GameWith としてもそこにコミットしていく決意表明のつもりでもありました。

最後に

GameWith では UI/UX デザイナー、エンジニア(サーバサイド、フロントエンド、iOS、Android、DevOps、QA)を募集しています。ゲームが好きな方歓迎です!

ご興味のある方は、Twitter の DM でも、Wantedly でもよいので是非お気軽にお声がけください。エンジニアリング、チーム開発について語りましょう🐶

www.wantedly.com

recruit.gamewith.co.jp