Amazon Web Services ブログ

NTTドコモの Web サービス基盤『 POPLAR 』開発における Amazon Q Developer 活用

※ この投稿はお客様に寄稿いただいた記事です。

本稿では株式会社 NTTドコモ(以下、ドコモ)の主要な Web サービス提供基盤である『 POPLAR 』において、Amazon Q Developer 活用により開発効率向上を実現した取り組みについて、全 2 回に分けてご紹介します。

第1回:NTT ドコモの Web サービス基盤『 POPLAR 』開発における Amazon Q Developer 活用 (本記事)

第2回: Amazon Q Developer 活用をプロジェクト全体へ拡げた取り組み

1.はじめに

『 POPLAR 』は、ドコモの主要Webサービスを提供する基盤であり、現在、30以上の Web サービスを提供しています。

AWS を利用することで、各種 Web サービスをユーザトラヒック変動に柔軟に対応可能なアーキテクチャとして構築しました。さらに、新規 Web サービス提供時の開発期間短縮を実現しています。

また、アプリケーションのアーキテクチャを AWS LambdaAWS Fargate といったマネージドサービスを活用したアーキテクチャへ進化させることで、開発・運用の最適化を進めています。

さらに、複数の Web サービスを同時並行で短期間に開発・改善するため、マネージドサービスの活用に加え、アーキテクチャモデルの標準化にも取り組んでいます。アーキテクチャモデルの標準化には AWS CDK を活用し、類似機能ごとにアーキテクチャをモデル化しています。複数の開発案件でアーキテクチャモデルを共用することで、開発効率の大幅な向上を実現してきました。

また、我々は AWS が提供するソフトウェア開発生成 AI アシスタントである Amazon Q Developer に注目し、プロジェクト全体で Amazon Q Developer を開発者の教師役として有効活用するべく日々取り組んでいます。

図1. POPLAR アーキテクチャ標準化の取り組み

2.開発における課題

移り変わりの激しい市場動向に対応するために、ドコモが提供する各種 Web サービスにおいても、”速さ”と”品質”を維持したサービス改善が要求されます。POPLAR では、標準化したアーキテクチャモデルを用いて、複数の Web サービスに対して短期間且つ同時並行で機能開発を進めています。

一方で、サービス改善に関する開発を進める過程において、以下の様な課題を抱えています。

課題① 開発の大部分を占める既存機能の改修案件において、既存機能の知見やノウハウの有無が開発生産性に与える影響が大きく、既存機能の知見及びノウハウの習得は開発遂行の上で必要条件となります。一方で、5 年以上の基盤運用実績から提供機能数も多くなり、既存機能の知見及びノウハウ継承には、大きな労力が掛かります。

課題② 開発要員のローテーションの際には、交代要員の立ち上がり期間を十分に確保しつつ、既存開発者からの様々な支援を必要とします。一例をあげると、交代要員が本プロジェクトの開発に必要な技術的スキル、既存機能の知見及びノウハウを習得して貰うために、一定期間、既存開発要員が教育へ大きな労力とを掛ける必要があります。

課題③ 障害時にサービス影響のある機能も担っており、開発において相応の品質を求められます。開発者にはアプリケーションからインフラまで幅広い技術的知識が必要となりますが、その技術的要件を全て満たした開発者は市場でも数少なく、大半の開発者は開発遂行にあたって技術的知識の不足部分に対するプロジェクトからの技術的支援を必要とします。

これらの課題を解決し、各種サービスからの改善要求を満たした開発を安定的に実施するためには、以下の仕組みが必要となります。

  • 既存機能およびノウハウについて、労力(時間)をかけずに効率的に継承できる仕組み
  • 不足する技術スキルを短期間で習得できるよう支援・補完する仕組み

これらの課題を解決するために、我々は、AWS が提供するソフトウェア開発生成 AI アシスタントである Amazon Q Developer を開発者の教師役としてプロジェクト全体で活用しています。

3. Amazon Q Developerを活用した開発の取り組み

POPLAR の開発プロジェクトにおいては、全体で 50 名以上の開発者が携わっています。これらの開発者は Amazon Q Developer Pro サブスクリプションを日常的に利用しています。さらに、プロジェクトに携わる開発者が Amazon Q Developer を有効活用するために、環境準備を支援する設定ガイド、開発時の Amazon Q Developer を活用する方法をまとめたガイドラインを整備する等、POPLAR の開発プロジェクト全体で利用促進を図りました。

また、 Amazon Q Developer から有益な支援を得るために、以下のようなコンテクストを Amazon Q Developer に与える工夫も実施しています。

  • 今までの開発で積み上げてきた既存ソースコード
  •  標準化したアーキテクチャモデル
  •  開発ルールをまとめた設定ファイル
  • AWS が提供する MCP サーバ

これらの営みにより、標準化したアーキテクチャモデル等、POPLAR の既存の仕組みや AWSド キュメントに記載された仕様を踏まえた Amazon Q Developer からの支援を実現しています。

図2. Amazon Q Developer の利用条件・環境について

4. Amazon Q Developer による開発効率向上への寄与

Amazon Q Developer の活用は、学習用途で開発者がノウハウや技術的知識を吸収するだけに留まりません。

開発者の教師役として、 Amazon Q Developer に開発ドキュメントを読み込んで貰い仕様調査に協力して貰う、 Amazon Q Developer を壁打ち役として仕様検討を手伝って貰う、または、 Amazon Q Developer に改修コードを提案して貰う等、各開発工程においても幅広く支援を受けることが可能です。

既存機能の改修を前提とした開発において Amazon Q Developer を最大限活用することで、影響調査、設計及び設計とコーディング(自動コーディング)といった開発工程において生産性の向上が見込めることも確認しました。

特に、既存機能の改修においては、既存ソースコードを Amazon Q Developer に対するインプット情報として活用することにより、 Amazon Q Developer との最小限のやり取りで高い精度のアウトプットが得ることができ、 Amazon Q Developer を活用しない従来の開発手法と比べて各開発工程において開発品質向上及び開発期間の短縮を確認できています。

また、開発プロジェクトへの所属期間が短く、既存機能への知見も多くない開発要員が Amazon Q Developer を活用することで、習熟期間の短縮、開発期間の短縮及び開発品質の向上等の高い支援効果が得られることも確認しました。

5.まとめ

第一回の事例では、ドコモの主要な Web サービス提供基盤である『 POPLAR 』における Amazon Q Developer の活用方法及び開発者の教師役として Amazon Q Developer を活用することの有用性についてご紹介しました。

開発ノウハウの継承や開発生産性向上に取り組む皆様の参考にしていただければ幸いです。

次回は以下をご紹介します。

Amazon Q Developer 活用をプロジェクト全体へ拡げた取り組み

著者について

株式会社 NTTドコモ 情報システム部 デジタルデザイン担当

担当部長 深谷 治男 ( Haruo Fukaya )

担当課長 小柴 辰久 ( Tatsuhisa Koshiba )

主査 川口 晃平 ( Kouhei Kawaguchi )