業界: 物流

使用されている JetBrains 製品: Qodana, IntelliJ IDEA

組織規模: 従業員 16,000 人

チームの規模: 開発者 800 人、GitLab のプロジェクト数 1,600 件

テクノロジースタック: Java、PHP、Swift、TypeScript、Jenkins

開発者エクスペリエンスを変革: Qodana で高いコード品質標準を確保した Evri

Evri は年間 7 億 2000 個以上の荷物を配送している英国最大の荷物配送専門会社です。同社は巨額なコストを発生させずに荷物の配送、受け取り、返送を最も便利に行えるサービスの提供をミッションとしています。Evri はヨーロッパのほとんどの主要販売店、マーケットプレイス、および中古サイトと提携しています。Evri のルーツは 1974 年のヨークシャーにまでさかのぼりますが、同社の事業は数十年にわたって成長し、現在では 8,000 人以上の従業員、26,000 人以上の配達員、14,000 以上の社外拠点、および最先端のハブと倉庫のネットワークを擁しています。

課題: 製品リリースの高速化と一貫したコード解析ワークフローの両立

主要物流プロバイダーである Evri は英国全土で大量の荷物を管理し、最終顧客まで配送しています。同社のソフトウェアは荷物配送予約用の eコマースウェブサイト、販売店と海外の顧客が荷物データを管理できる API、および物理インフラストラクチャの運営に使用する社内ツールと多岐にわたっています。

この広範なソフトウェアのデプロイと管理をできる限り円滑で効率的に行えるようにするため、Evri は開発ワークフローの改善と開発者のパフォーマンスと満足度の向上に重点的に取り組む開発者エクスペリエンス(DevEx)専門チームを発足させました。

この DevEx チームは一貫した標準の維持、コラボレーションの促進、製品リリースの高速化、および課題の早期解決を実現するため、コード品質のスキャンを自動化することを考えました。

ツールの選定: SonarQube から Qodana への移行

Evri はこれまで品質解析に SonarQube を使用していましたが、その代わりとなるツールを探し始めていました。コスト効率に疑問を抱き、その構成に既存の問題が多すぎることを懸念していたためです。Evri のシニアテクニカルアーキテクトである Luke Morton 氏は、「各自が自分のコードをクオリティゲートを通過させられるような独自の解析ルールを作成できる状態でした。コーディング標準に対する品質管理に限界があったのです」と述べています。

同チームは以下のいくつかの理由により、Qodana への移行を決定しました。

  • より強力な制御の仕組み。Jenkins を通じて実行時にグローバルに構成された YAML ファイルを使用して品質ルールを一元管理できる。そのため、変更を加えたい開発者は DevEx チームに YAML ファイルのマージリクエストを発行することを求められるようになる。
  • プロジェクトの概要が改善される。Qodana のサンバーストダイアグラムにより、分かりやすく統一されたプロジェクトステータスを確認できる。
  • フィードバックを即座に得られる。コード品質管理を改善するため、Jenkins のマージリクエストに関するフィードバックが統合されている。

「開発者に優先順位を付けて対応してもらうには、開発者がいる場所でマージリクエストへのコメントの一環としてフィードバックを直接得ることが重要です」

— Luke Morton、Evri シニアテクニカルアーキテクト

  • IntelliJ IDEA の統合機能。IntelliJ IDEA 内でレポートとファイルに直接アクセスできるほか、Qodana が検出した問題を IDE で直接開くことができる。
  • 新しい開発環境。標準を再定義し、より最新のソリューションを実装する機会が得られる。

「新しい開発環境で再スタートしたのは正解でした。また、本質的に最初から期待を設定できるようになりました」

— James Hattersley-Dykes、Evri 主任エンジニア

結果: コード解析が 6 倍高速化してリリースの頻度と速度が向上

Evri にとっての Qodana の主なメリットは、パイプラインにセットアップすれば継続的に監視しなくてもお任せにできることです。

Evri のパイプライン内のプロセスはコードのコンパイル、さらにはユニットテストと統合テストの実行から始まります。これに続き、Qodana や Snyk を含むさまざまなクオリティゲートが並行して実行されます。各ツールからはマージリクエストに関するフィードバックを得られます。いずれかのクオリティゲートが失敗するとビルドが中断されるため、マージリクエストがメインブランチに取り込まれることはありません。ただし、コードは機能環境にそのままデプロイされて追加テストが実行されます。

リリース時間の短縮と 6 倍高速化したコード解析

Qodana は Evri のリリース時間の短縮に大きく貢献しました。このツールをパイプラインに組み込むことで、リリースの頻度と速度を上げることができました。具体的に言えば、Qodana がマージリクエスト内で「迅速なフィードバック」を提供するため、開発者は問題に素早く対処することができ、それによってリリースプロセスが高速化されました。

「Qodana がマージリクエストに対する迅速なフィードバックを提供することで問題をより迅速に解決できるようになったため、Evri でのリリース時間が大幅短縮されました。その解析時間は短く、20 分もかかっていたものがわずか 3~5 分に短縮されました」

— Luke Morton、Evri シニアテクニカルアーキテクト

メンテナンスに手間をかけずに高品質なコードを実現

Qodana は運用にかかる手間が最小限で済み、継続的な管理をあまり必要としない、使いやすいツールです。

「DevEx では Qodana を日常的に使用しておらず、単に管理しています。ツールのことを考える必要がないということは、うまく機能しているということです。私が Qodana のことを数週間も考えていなかったということは、Qodana が役目を果たしているという証だと言えます」

— Louis Jones、Evri 開発者エクスペリエンス主任エンジニア

学習の機会

Qodana は開発者向けの追加学習ソースとして機能しています。

「Qodana がマージリクエストにコメントを追加すると、開発者はそれをクリックして問題を確認し、その解決方法を理解することができます。そのため、開発者にとってはマイクロラーニングの機会となっています」

— Luke Morton、Evri シニアテクニカルアーキテクト

同様のカスタマーストーリー

Moovit

Amit Weinblum、Moovit インフラストラクチャチームリーダー

Qodana のおかげで長期的には本番環境システムが安定化し、開発者がパイプラインの遅い段階で問題を修正する必要がなくなりました。Qodana によって開発チームがポリシーに従い、数日におよぶ不眠の夜から救われるという劇的な変化が起きている様子を目の当たりにしています。

Zynex

Daniel Larson、Zynex Monitoring Solutions ソフトウェアアーキテクト。

Qodana はすべての開発者が経験に関係なく可能な限り最高水準のコードを記述するのに役立っていると感じています。 Quodana のおかげでジュニア開発者はシニアレベルのコードを書けていますし、シニア開発者はそのレベルに期待されるコード品質を維持できています。 各種のインスペクションが提供されているため、Qodana が自社製品のコード品質標準を維持するのに役立つだけでなく、開発者のコーチとして機能することも期待しています。

その他のカスタマーストーリー