多くの人は、お客様からお金を頂く以上、価値のある仕事を提供したい、と思っているはずです。私もそうです。

お客様にとってのソフトウェアを更新することの価値には色々ありますが

  • 機能が増える
  • 使い勝手が良くなる
  • レスポンスが良くなる
  • 安定性が増す

といったものかと思います。

フレームワークをバージョンアップすることによるメリット

一方、タイトルにあるフレームワーク(Ruby on Rails など)のバージョンアップは、それらに殆ど該当しません。

  • ×: 機能は増えない
    • フレームワークの機能は増えますが、それを使うかどうかは別の話です
  • ×: 使い勝手は変わらない
  • △: レスポンスが良くなる、場合もある
    • メジャーバージョンアップに伴いアーキテクチャが刷新され、処理が速くなる場合もあります
  • ×: 安定性は変わらないかむしろ減る事が多い
    • メジャーバージョンアップ直後は不安定なことも多いです

唯一にして最大のメリットとしては、

  • ○: セキュリティアップデートを受けられる期間が延びる

です。

そして、デメリットとしてはもちろん

  • 費用が発生する

です。

Web フレームワークはサポート期間が短いものが多い

ウェブ系のフレームワークのサポート期間を調べてみました。フレームワーク名のところについているリンク先が公式情報です。調べた結果、以下のように短いものが多かったです。

  • Ruby on Rails: セキュリティ修正は2年間、バグ修正は1年間
  • Laravel: セキュリティ修正は2年間、バグ修正は18ヶ月間
  • Spring Boot: 約1年間、エンタープライズサポートで+1年間(合計で約2年間)
  • Angular: セキュリティ修正は18ヶ月間、バグ修正は半年間
  • Next.js: 2年間

システム開発には短くても3ヶ月程度はかかりますので、これらのフレームワークを使っている場合、実際にお客様がシステムを受け取ってから安心して使える期間はこれよりさらに短くなります。

比較的良心的なフレームワークは以下のものです。

今回調べた中では、React が一番良心的でした。

  • React: 明確なサポート期間はないが、脆弱性が見つかった場合は影響を受ける全てのメジャーバージョンに修正を提供する

(本項の記載で誤りがあれば教えてください。)

大抵のお客様にとって、最新のフレームワークの機能は不要

新しいフレームワークになって出来る機能が大幅に増えて、それによって開発が大幅にやりやすくなるとかであればまた話は変わってくるのですが、多くの場合、フレームワークのバージョンアップをしたからといって(サポート期限が延びる以外の)大したメリットはありません。

各フレームワークを見てみる

印象論で語るのもどうかと思うので、実際にバージョンアップによって何が追加されたかを見てみます。まずは Laravel です。

Release Notes | Laravel 13.x – The clean stack for Artisans and agents

Laravel AI SDK, Semantic / Vector Search は、ざっくり言うと AI 関連の機能です。PHP, Laravel であえてやるかという点では疑問が残りますが、フレームワークとして AI というビッグウェーブに何も対応しないわけにはいかないので、追加は理解出来ます。

Request Forgery Protection は、セキュリティ機能の強化で、CSRF という脆弱性への対策が強化されました。これは嬉しい点ですね。

Expanded PHP Attributes, Cache TTL Extension, Queue Routing は開発が少しやりやすくなる系の話で、もちろん無いよりはあった方が良いのですが、無くてもほぼ困らないです。

JSON:API Resources は Laravel で JSON:API 準拠の API を作っている場合には嬉しい話ですが、大多数の人には関係無いと思います。

以上です。多くの人にとって嬉しいのはセキュリティ強化の1点だけです。

次は Rails です。全部で7項目あります。

Ruby on Rails 8.1 Release Notes — Ruby on Rails Guides

Markdown Rendering は AI で Markdown が良く使われることに対応した機能で、重要かと思います。現時点で使う人が多いかというと多くはないと思いますが、必要な機能追加だと思います。

Local CI は、今までは GitHub 等のウェブサービス上で実行される事が多かった CI という処理をローカルで実行させるための仕組みです。野心的な試みだと思いますし、入れることは理解出来ます。ただ、広まらないような気はしています。

後は、開発が便利になる系が3つと Kamal というプラットフォーム用の変更が2つです。

現時点で多くの人にとって嬉しい機能はないかなと思います。

結構時間がかかるので、この辺で止めておきます。

弊社のお客様の実例1: 新機能はいらないので中身だけ新しくして欲しい

現場の実際の声としても、最新の機能がいらないケースが大半です。

まずは以下の事例です。

株式会社もばらぶ・事例紹介 | 既存資産を読み解き、再現・移行に徹した構築事例

エンドのお客様の要望としては、「今までと全く同じもの」という感じでした。内容としては元々 Zend Framework 1 だったのを Laravel に移行しました。私も実際に開発作業に携わりましたが、フレームワークの新しめの機能などはそんなに使っていないですし、なくても困らない状態でした。

Laravel を使用することについては、インフラ等も担当していた元請けの会社様と話し合って決め、その時点で Laravel のサポート期間が2年間というのはお伝えしてありましたが、今考えると Symfony をもう少し推しても良かったかなと思います。

弊社のお客様の実例2: 定期的な機能追加はあるが、通常のウェブ開発

Rails を使っているお客様の実例です。このお客様は、本システムへの機能追加なども随時行っていますが、典型的なウェブシステムで、あまり高度な機能は必要ありません。

先日 Rails 8.1 にアップグレードし、それなりに費用もかかりました(弊社としては費用を頂きました)。必要な作業として納得はしていただきましたが、機能追加など目に見える変化のないアップグレードにそれなりの費用が必要という現状は、あまり嬉しくないものだと思われます。

もばらぶでは今後どうするか

弊社では、今後は Symfony, React をもっと推していこうと思いました。

フレームワークのバージョンアップはテスト等も含めてそれなりに手間がかかるのですが、お客様側に目に見える変化が殆ど無いことで、お客様側としても二の足を踏みがちです。そうした「不要な」事にお金を使うよりは、便利さや安定性などにお金を使ってもらいたいと思っています。

ただ、サポート期間の長いフレームワークであってもアップグレードはいつかは発生しますし、フレームワークの切り替えなどが必要となる場合もあると思います。もばらぶでは、そうした案件にはいつでも対応可能ですので、お気軽にご相談ください。

お問い合わせ – もばらぶん

まとめ

多くのお客様にとってフレームワーク(あるいはより広くソフトウェア)に求めるのは、機能追加より長期間のサポートです。一方、ウェブ系のフレームワークでは2年前後という短いサポート期間が一般的です。商用での延長サポートを提供しているのは大分良心的な方で、延長サポートが無いものが大半です。OSS という性質上仕方ない面もありますが、どうにかして欲しいと私は思います。

よって、定期的にソフトウェアを更新していく自社ウェブサービスとかでない限りは、サポート期間が長いフレームワーク・技術スタックを使うべきだと思います。