開発ライフサイクルは、思ったように回らない
導入効果の前に、開発ライフサイクルにおける課題を見ておきましょう。一般的な流れとして、開発計画があり、それに基づいてプロジェクトリーダーが全体設計をおこないます。それをベースにメンバーがコードを実装し、プロジェクトリーダーがレビューし、必要に応じてメンバーが修正、脆弱性などのスキャンを経てデプロイ、となります。

……理想形です。あくまで。そして現実はこの通りはなかなか進まない。人がいない、時間がない、よく聞く話ですよね。結果、リーダーがメンバーを兼ねて全体設計をしながらコードを実装している……なんていうこともありがち。コード品質、セキュリティ、担当者の負担、いろいろな課題があります。
ソニービズネットワークスでも似た課題はあり、業務改善は急務!ということで、Amazon Q Developerの活用にも積極的だったとのこと。そして、実際に活用して得られた効果は「開発スピード」と「コード品質」の大きく2つ。では、次の段落から詳しく見ていきましょう。
開発速度が大幅に改善!ツールのなかに開発者が1人いるイメージで使える
まずは開発スピードですが、濱田さんいわく「とにかくプロダクトの開発速度があがった」とのこと。イチからエンジニアが実装するのではなく、まずは生成AIにコードを生成させ、それをエンジニアが手直しする流れとしたことで、開発工数が大きく削減できたのだそう。もうイチからコーディングする時代じゃないんだな、とうっすら寂しくなるような気もしますが、そんなことを言っている時代でもなさそうです。ある程度できあがってきたコードを見ておかしいところだけ調整する方が早い、それはそうなります。
もうひとつのメリットとして、「これまでと同じフローで使える」ことを挙げていました。つまり、生成AIを使うからといって今までの開発ライフサイクルを変える必要がないということです。特にGitLabを使っているのであれば、プロジェクトリーダーが作成したIssue(チケットやタスクのようなもの)をベースに、これまでメンバーが実装していた代わりに、生成AIがコードを生成してくれる、というイメージ。できあがったコードはMR(マージリクエスト、実装内容の承認依頼)として戻り、問題があれば、再度生成AIに指示して追加修正させて……など、かなりこれまでと変わらないフローで進められます。
「ツールの中に開発者が1人いるようなイメージで使える(濱田さん)」ということで、それは確かにかなり作業がはかどりそうだという印象でした。
コード品質を担保できる。生成AIで複数観点のチェックを手軽に!
続いてはコード品質です。品質の担保も課題ですよね。人によって書き方が違ったり、セキュリティの意識するポイントが違ったり。コーディング段階で大きなリスクが紛れ込んでしまうと厄介です。
ここも、生成AIを積極的に使いたいところ。Amazon Q Developerには「/review」というレビュー機能があるので、これで問題点をひと通りチェックできます。たとえば、SQLインジェクションのリスクがあるコードになっていないか、のような問題も洗い出すことができ、Amazon Q Developerのレビューをしたうえで、人によるレビューをおこなうことで二重のレビューも可能になるわけです。
もちろんそれ以外にも、GitLabのSAST(静的アプリケーションセキュリティテスト/コードのロジックを解析し、脆弱性の有無をチェックする)や、DAST(動的アプリケーションセキュリティテスト/実行中のWebアプリケーションに対して実施するテスト)などを組み合わせて実施することも可能です。
さまざまなリスクを「人が見るレビュー」だけで全部見つけ出すのは無理があります。品質を複数の観点でチェックするのは大切ですし、こうして異なる手法を組み合わせたレビューをやりやすくなるのは結構なメリットではないでしょうか。
ちなみに、見つかった問題点の修正も生成AIに頼めます。便利すぎですよねぇ……。
アプリケーション開発だけじゃない。インフラエンジニアにとっても有効
コード生成、というとアプリケーション開発のイメージが強いですが、AWSではインフラもコードで管理できる、つまり、「CI/CD」と言われるインフラ管理の領域でも生成AIを使える、ということです。
Amazon Q DeveloperはAWS CDK(AWS Cloud Development Kit)やAWS CloudFormationのようなコードでAWSリソースを定義するツール・サービスにも対応、これらのコード生成やレビューもできるのだとか。
たとえば、AWS CDKで作成したものをレビューすると「IAMユーザロール作成で、過度の権限昇格につながる可能性があります」のような指摘が返ってくる。これは相当便利なのでは!?
開発というとどうしても実装部分がフォーカスされがちですが、インフラの用意や設定も重要で、しかもミスの影響が大きくなるところ。ここのレビューやテストも生成AIでできるのはかなりうれしい気がします。
アプリケーションの品質担保に、生成AIを“うまく使う”
最後のまとめとして「生成AIのコードを取り込む機会が増えるなかで品質管理が重要なポイントになる」と語った濱田さん。特に、現状のAIだけで生成できるコードは70%までと言われているそうで、残りの30%は当然、人が実装することになります。シンプルな処理ならまだしも、複雑な処理はAIにはまだまだ任せられないのが実際のところ。そして、なにより最終的にアプリケーションの品質を担保するのはやっぱり「人」です。
ただ、その人のチェックを助けてくれるのもまた生成AIだと。生成AIの品質を担保する生成AI……なんていうと堂々巡りをしている気持ちにもなりますが、コードを生成するだけではなく、レビューやテストなどの機能も活用することで、クオリティ担保にもつながるはずです。
ソニービズネットワークスでは、すべてのチームでAmazon Q Developerを活用しており、開発フローに生成AIによるレビューやテストを組み込むことで、効果の最大化を目指しているのだとか。そして、こうして培ったナレッジをベースに、Amazon Q Developerの導入支援サービスも提供開始しました!どう使うと効果的なのかなど、実践に基づくアドバイスなどもおこなっています。詳しくはお問い合わせください!
次回は、ソフトウェア開発の「セキュリティ」にフォーカス。生成AIを使ってどうやってセキュアな開発を実現するのかについて、お届けします。
