こんにちは、 kotamat です。 「PHPを選ぶ理由」というタイトルでスポンサーセッションさせていただきました。

本記事は発表内容を簡単に解説します。

軽くまとめると

  • 入社したタイミングで、言語含めた技術の再検討を行った。
  • 採用難易度、市場性、習熟度などを総合的に判断してLaravel Vue.jsを採択した。
  • 情報発信を通じてポジション形成を行った。
  • PHPが苦手なものは技術で解決していく。
  • どうしても無理なところは他言語を使う前提でアプリケーションを構築していく。

採用難易度という概念について

人によるとは思いますが、ある程度習熟度のあるエンジニアは、新しい技術を触れ続けるという観点で、一見合理的に見える技術選定を行った後、採用に苦労するというパターンがいくつか見受けられてきました。 toCサービスやDev向けツールのサービスを行っている会社であれば、認知形成にそれほど苦労はしないですが、弊社のようなtoBに近く、あまり採用者が触れるサービスではないものになってくると、認知形成が難しく、認知形成できている採用競合に負けてしまうという事象が発生してしまいます。

もちろんサービスの方向性として、業界を変革するような新しいアプローチで課題を解決しているという自負はあるので、詳しくサービス説明をした方からは「面白いサービスやっているんですね。」という反応はあるのですが、その手前に「話を聞いてもらう機会を作る」という前提が必要であり、大変な売り手市場のエンジニア採用においては、そこがネックとなるパターンが多いです。

しばらく売り手市場は継続するはずであり、ここでの意思決定は今後の事業成長に大きく関わってくるということが自明であったため、採用難易度を将来見据えて検討いたしました。

認知形成の手法に関して

昨今のサービス構築には、OSレベルからフロントエンドまで、全てにおいてOSSが関わっています。

そういった環境下において、オープンに情報を共有するというのが結果エコシステムを形成し、自分たちにもメリットが有る形になるという文化が形成されております。ブログでの技術発信や勉強会などがその発信の場の一つとなっており、弊社はそういったものを主催したり、別の勉強会で発表するなど行ってきました。

情報発信するにあたって、マーケティング的な視点が必要と考え、どういったポジションを構築するのかということを考えたときに、LaravelやVue.jsでの独立したコミュニティはすでに存在していたのですが、それぞれをマージしたLaravueというものはポジションを形成している人や団体は存在していなかったため、そこに注力して情報発信を行ってきました。

その結果累計1000名規模の、それなりの認知の形成までは来ることができ、「Laravel + Vue.jsの会社ですよね!」というお声をいただくことが増えてきました。

PHPの得意なところ、苦手なところ

PHPは得意なところとして、エンジニア市場における言語習熟割合が高い言語であり、Webアプリケーションを構築する上では、及第点を出せる言語だと思っております。

逆に、高トラフィックを捌くことや、マルチスレッドでの高速化、FaaS系のサポート、機械学習など依存パッケージに伴う解決できる手法の限定などにおいては苦手だと思っており、その領域は1. PHP外のミドルウェアとの連携で頑張る 2. 他言語との連携を行う というエンジニアリングで解決できるのではと考えております。

今回は静的チェックに関して解決方法を紹介させてもらいました。クラウドのCI環境を整備することで擬似的に静的チェックでそこそこの品質担保ができるようになります。

他言語にまたがる前提で、gRPCやGraphQLなどのIDLをもちいたり、APIスペックの自動生成などでインターフェースレイヤーの品質担保をする必要があり、弊社では、LaravelのPHPUnitを拡張したテスト機能をもちい、APIスペックの自動生成を行っております。

まとめ

サーバーサイドの言語には、昨今様々な技術が取り入れられており、PHP以外にも選択肢が増えてきている状況かなと思います。 一つの言語にこだわらず、バランス感覚をもって技術選定をしていくのが今後求められるのかなと思っております。