はじめに
技術革新統括本部Cloud & Infrastructure 技術部の水谷です。本記事は2024年12月に開催された「AWS re:Invent 2024」の現地参加レポートの第6回になります。今回は開発者体験とそれらを向上させるAWSサービスについてご紹介します。以下2セッションについてセッション内容含めご紹介します。
•The state of developer experience with Atlassian engineering leaders
•Reimagining the developer experience at AWS
開発者体験とは
本記事で取り上げる開発者体験について定義しておきます。 開発者体験とは「開発者が日常業務で使用するツールやプロセスに対して抱く感情や考え方」を表しています。 良い開発者体験とは、日常業務に支障がなくツール、プロセスに不満がない状態といえます。すなわち満足度が高く、その結果、生産性も高い状態を維持できるのです。
開発者体験の現状
リーダと開発者の間のギャップ
Atlassian社の調査(※1)によると、良い開発者体験を妨げている要素はリーダと開発者の間で認識が大きく異なり、ギャップがあるとされています。
リーダが考える良い開発者体験を妨げている要素
1.人手不足
2.開発者の役割の拡大
3.新技術の学習
4.コンテキストスイッチ
5.他チームとの共同
開発者が考える良い開発者体験を妨げている要素
1.技術的負債
2.ドキュメント不備
3.集中して作業できる時間がない
4.ビルドプロセス
5.明確な方向性がない
この結果より、リーダは開発者が抱える開発者体験の問題を正しく把握できていないことが示唆されています。 例えば「人手不足」の解決策として開発者を増員するという方策が考えられますが、その場合かえって技術的負債が増加する可能性や、オンボードのサポートによって作業時間が確保できないかもしれません。 AIの活用においても同様にリーダと開発者の間でギャップがあることが調査結果として現れています。 リーダは生産性と満足度を向上させるための手段としてAIが効果的であると考えていますが、開発者の62%はAIによる生産性向上を実感できていないという結果でした。
AIによる開発者体験の向上
AIを利用した開発者体験向上といえば、特にコーディングへの適用が挙げられます。コード補完やコード提案などに生成AIが用いられるようになりました。 しかしそれだけでは不十分であると本セッションでは述べられていました。 開発者が開発作業に充てられているのは業務時間の約3割とされており、残りの7割は打ち合わせやドキュメント作成などの開発以外の作業であるとされています。また、システムを運用していた場合、随時発生するアラートの確認や故障に対する対応など運用作業も必要となります。 開発者体験を根本的に向上させるにはこの7割の分にAIを適用し、開発者がより開発作業に集中できる環境となることが重要であるとのことです。
Atlassian社の取り組み
Atlassian社での開発者体験向上のためのAIを活用した取り組みとして「オートレビュー」と「アラートグルーピング」が紹介されました。 オートレビューではプルリクエストに対するレビューをAIで自動化することで、マージまでのサイクルを短縮できると言います。具体的にはプルリクエストに対してAIがコードレビューや、必要に応じてプルリクエストの分割提案など一次レビューを行うことで、全体のレビュー時間を削減することが可能となります。 アラートグルーピングではAIが類似のアラートを集約し、これらが過去いつ発生して、誰が対応したのかを示すことでアラートによる負荷が低減されたとのことでした。 Atlassian社はこれらの取り組みにより、開発者満足度を25%増加させることができたとのことです。
AWSにおける開発者体験の再構築
AWSの各種サービスについても開発者体験を向上させるアップデートや新機能の発表がありました。
AWS Amplifyのアップデート
AWS AmplifyはWebアプリケーションやモバイルアプリの開発を迅速化するためのフルスタックの開発フレームワークです。 今回AWS AmplifyのアップデートとしてAmazon Bedrockと連携し生成AI機能を簡単に組み込むことができるAWS Amplify AI Kitが発表されました。 サンプルアプリ(※5)としてチャットアプリが公開されており、対話型アプリケーションも簡単にデプロイできます。利用するAIモデルも定義ファイルから変更可能となっており、今回のre:Inventで新発表されたAmazon Novaも利用可能です。
Amazon Q Developerのアップデート
Amazon Q Developerは、開発者向けの生成AIアシスタントで、ソフトウェア開発全体を加速させます。 第3回、第4回のレポートでは、Amazon Q Developerのアップデートのうちインフラ運用に役立つ「運用調査機能」やマイグレーション、モダナイゼーションを支援する「変換機能」について解説しました。 本記事では開発者体験に役立つ「開発者支援機能の強化」についてご紹介します。 今回のアップデートでは開発者体験をより良いものとする以下の機能が発表されました。 ただし、いずれもプレビュー版として発表されているため、これらの機能は変更されることがあるという点とサポートしている言語に制限があるため利用の際はご注意ください。
•ユニットテスト自動生成
“/test”コマンドをAmazon Q Developerに与えると指定したソースコードに対してユニットテストを自動生成してくれます。 現在はJavaとPythonに対応しています。(※6)既存のユニットテストファイルに追記することもできます。
•自動ドキュメント作成
“ /doc”コマンドをAmazon Q Developerに与えると、指定したディレクトリに対してREADMEを自動生成してくれます。 ディレクトリ構成や利用の前提条件、利用方法などの記述を自動で行ってくれます。
•自動コードレビュー
“ /review”コマンドをAmazon Q Developerに与えると、指定したファイルに対してコードレビューを実施してくれます。 検出された各IssueはCritical、High、Medium、Low、Infoの重要度に分類されます。
おわりに
本記事では、開発者体験についての現状とAIを用いた開発者体験の向上、Atlassian社の事例およびAWSの各サービスのアップデートについてご紹介しました。筆者の所感としては、開発者体験を向上するためには機能を導入するだけではなく開発者体験を妨げている要素を特定して解消する取り組みを継続して実施していくことが重要であると考えます。また今回AIを利用した各機能の精度については未検証であるため、実際の開発業務で利用できるものであるかはPoCなどによる事前検証や検討が必要となります。
参考
・State of Developer Experience Report 2024 | Atlassian・The state of developer experience with Atlassian engineering leaders
・Reimagining the developer experience at AWS
・Build fullstack AI apps in minutes with the new Amplify AI Kit
・Amplify AI Samples
・Generating unit tests with Amazon Q
著者紹介
水谷龍希 MIZUTANI Ryuki
NTTデータグループ 技術革新統括本部 Cloud&Infrastructure技術部
官公庁や小売業など様々な業界のパブリッククラウドシステムの基盤開発に従事。DevOpsやSREといった開発と運用の連携の方法論の実践や高度化を推進。2024年Japan AWS All Certifications Engineersに選出。