Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

ChatworkはPHPエンジニアの採用をより強化していきます、というお話。

プロダクト本部で副本部長をしています、田中(@tan_yuki)です。最近はたべっ子水族館をずっと食べています。

私の主な仕事はプロダクト開発組織に関する採用・ピープルマネジメントに関するところがメインなのですが、最近、中途採用の方針を少し変更しました。その変更内容について、社外にも発信していこうと思い、ブログを書きました。

以下の文章は社内で共有した文章に少し加筆修正を加えたものになります。

~ * ~ * ~ * ~ * ~ * ~ * ~

Chatworkで使われているプログラミング言語といえば、どういったものを想像するでしょうか?

私達はいままで、Scalaという言語を強くアピールしてきました。その功績もあり、多くのScalaエンジニアの方々を採用することに成功しています。もちろん、今後もScalaとは長く付き合っていくつもりです。

しかし、最近エンジニア採用の優先度の調整をし、PHPエンジニアの採用をより強化していこうという決断をしました。 ここでは、そうなった経緯や背景について詳しく述べていきます。

PHPの採用優先度を上げた理由について

まず結論からですが、理由は以下です。

  1. リライト予定のPHPコードの範囲を縮小させたため
  2. 機能開発の選択肢としてPHPを採用していく(こともある)ため

それぞれについて詳細に解説していきます。

1. リライト予定のPHPコードの範囲を縮小させたため

Chatworkでは最初のサーバーサイドのコードをPHPで実装して以来、ローンチ後10年間PHPと付き合い続けてきました。しかし、サービス拡大やエンジニア増員が進むにつれ、技術的負債が無視できないものになってきました。 そこで、現在Chatworkではシステムのリライト案件が進行中です。

詳細は以下の記事を参照してください:

creators-note.chatwork.com

creators-note.chatwork.com

上記記事の主要なところをざっくりまとめると、

  • リライト案件は現在進行系で進んでいるが、超長期なプロジェクトになりそうな見込みである
  • 一気にビックバンリリースするのではなく、リライトするべき箇所をより厳選し、徐々に移行してけるような移行戦略である

という内容になります。

つまり、リライトする価値がありそうなところ(例えば、技術的な負債が大きい箇所や、スループットが多い箇所、など)を厳選し、そこをリライトして価値提供までのサイクルを短くしていく。逆に言うと、当初予定よりも多くのPHPコードが残る可能性が高くなりました。この残るPHPコードについてはリライトではなく、積極的なリファクタリングや仕様変更による無理のある実装の解消など、技術的負債へ多角的なアプローチで解消していきます。

…ということで、いままではシステムの大部分をリライトする考え方ありきでしたが、それを改めました。今動いているシステムも残っていく部分については継続的に健全な状態に改善し、維持していきたい。そのための投資を積極的にしていく、そのための組織をより強くしていく、という決定をしました。

2. 機能開発の選択肢としてPHPを採用していく(こともある)ため

上記1. の理由により、既存のPHP資産は維持しつつ、リライトするところはリライトしていきましょう、という方針になりました。

ということで、新規機能開発をするときの言語選定も、より幅を持って選択するべきでしょうという方針になりました。

いままでは、新規機能開発をする際はScalaで実装できるのであれば(多少工数がおおくなっても)Scalaを選択することが多かったです。が、今後はPHPも選択できるよう、幅を持って考えていきます。 使用するプログラミング言語をどう決定していくか?はその時その時で考えていくことになりそうですが、既存システムに依存するものが多いのであればPHPで、既存システムとは切り離して考えられるものはScalaで、という選択をしていくことになりそうです。

PHPの採用優先度変更の意味すること・意味しないこと

この文章を読んで特に誤解してほしくない点としては、今後もChatworkとしてはこのリライトプロジェクトは続けますし、リライトを諦めたわけではありません。このプロジェクトは今後のChatworkにとって超がつくほどの重要プロジェクトであり、今後のChatworkの運命を左右するものであると認識しています。

今回のPHP採用優先度の話は、ただ単に経営資源の割合を少しPHPに傾けましょう、という決断をしただけにすぎません。つまり、以下のような意味はありません

  • ❌ リライトを諦める
    • → リライトは引き続き挑戦していきます
  • ❌ Scalaではなく、PHP一本で行く
    • → PHPかScalaか、あるいは他の言語を選択するのか、はその時その時で決定していきます
    • → いまも、これからも、ScalaはChatworkにとって重要な言語です(もちろんPHPも)

逆に、この採用優先度変更は以下のような意味を持ちます。

  • ✅ 戦略上のPHP開発の重要性を再認識し、そこに一定のリソースを投資していく
  • ✅ 「どうせリライトするから」という思考を捨て、今ある技術負債と改めて向き合い、解決していく

まとめ

…ということで、PHPとは会社として10年以上のお付き合いをしていますが、今後もお付き合いをしていくことになります。継続してPHPコミュニティの応援に関わっていきたいと考えております。今後PHPの技術広報にもより力を入れていきたいと考えています。

以下、宣伝です。

現在ChatworkではPHPの採用を強化していきます!

PHPメンバーを募集中!

hrmos.co

また、PHP以外でも様々なポジションを全方面で募集中です!