コンテンツに移動
アプリケーション開発

生成 AI はソフトウェア開発ライフサイクル全体にどのように貢献するか

2023年11月1日
https://storage.googleapis.com/gweb-cloudblog-publish/images/org_chart.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 10 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud は、お客様が顧客にとって優れたプロダクトを構築することは、コードの作成と配布だけの話ではないと考えています。それには、乱雑なホワイトボード セッション、廊下での会話、メールスレッド、何をどのように構築するかの意思決定も含まれます。リリース後には、アプリケーションが耐障害性を備え、安全で、顧客に大きな効果をもたらすことを保証する必要もあります。

この 1 年、生成 AI は目まぐるしい進展を遂げました。非常に多くのツールが市場に投入され、このすべてが実生活で役に立つのか、疑問に思う人もいるかもしれません。結局、素晴らしいソフトウェアの中心にあるのはマシンではなく人間です。

このことを念頭に置き、Google AI アシスタンスを活用して、アイデアから本番環境への移行に至る Google Cloud 開発者の 1 日を見ていきましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/2-sdlc.gif

私が Cymbal Superstore という食料品店のソフトウェア エンジニアであると想像してみてください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3-superstore-app.max-2200x2200.png

店舗のウェブサイトは Google Cloud 上で運営されていて、私は最新のスナックを紹介する新商品ページを追加する作業を課されました。現在は月曜日の朝 9 時です。コーヒーを用意しました。では、始めましょう。

協力して設計

受信トレイに機能リクエストが届きました。Gmail の文書作成サポート機能を使ってすばやく返信します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4-gmail.max-2200x2200.png

その後、チームメートと会議室に集まり、ホワイトボードで実装のブレインストーミングを開始しました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5-whiteboard.max-2200x2200.png

私は自分のデスクに戻り、Google Cloud Architecture Diagramming Tool でホワイトボードの図を清書しました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6-arch-diagram-tool.max-2200x2200.png

これで設計書の作成準備が整いました。チームメートは会議に行かなければなりませんが、私はアーキテクチャに関してアイデアを出し合いたいと思っています。Bard を開き、Google レンズを使用してアーキテクチャ図をアップロードします。Bard はアーキテクチャ図を読み取り、私は実装案の潜在的リスクに関する簡単なチャットを Bard と交わします。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/7-bard.gif

次に、Bard との会話を Google ドキュメントにエクスポートし、設計書に取り掛かります。Google ドキュメントの文書作成サポートを使用して概要を作成します。この機能は時間の節約になり、バックエンドで Firestore のクエリをキャッシュに保存する方法といった、設計上の厄介な問題に注力できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/8-docs.gif

正午には、設計書をチームに送りレビューを依頼しました。一方、UX チームはフロントエンドの新商品ページ モックアップに取り掛かっています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/9-figma.max-2000x2000.png

設計書の承認時までにフロントエンド ページができあがっていて、テストを開始できます。では、コーディングに入りましょう。

支援を得たコーディング

コードを書くのは孤独な作業になることがあります。私は TypeScript エンジニアとしてはベテランですが、Google Cloud にはまだそれほど慣れておらず、わずか 10 行のコードを書くのに、ドキュメント、StackOverflow、心を落ち着かせる音楽など、タブを 50 個も開いていることがよくあります。Duet AI for Google Cloud がどのように役立つかを見ていきましょう。

Google Cloud Workstations から開発環境を立ち上げ、コードエディタを開きます。まず、Apigee で Duet AI を使用し、新しい REST API エンドポイントの OpenAPI 仕様を自動生成します。次に、Swagger 生成ツールを使用し、その仕様から TypeScript のスタブコードを自動作成します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/10-apigee.gif

これでビジネス ロジックを実装する準備が整いました。Duet AI のコード生成機能を使用し、コードコメントで目的の Firestore クエリの生成を要求します。Tab キーを押し、Duet AI が提案したコードを適用します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/11-duet-code-completion.gif

次に、ローカルでコードをテストします。すると、エラーが発生しました。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/12-error.gif

エラーの意味がわからないので、IDE 内から Duet AI のチャットを開きます。Duet AI は Google Cloud のドキュメントとサンプルコードでトレーニングされていて、エラーの意味とコード修正方法を理解するうえで役立ちます。途方もない Google 検索は必要ありません。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/13-debug.gif

エラーを修正すると、Duet AI のチャットの同じスレッドで、新しいエンドポイントのテストケースの作成を支援してもらえます。Duet AI は私が開いているテストファイルの内容に合わせて回答を調整し、フレームワークと形式が私の他のテストと同じであるテストを生成できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/14-test.gif

Duet AI の助けを借りると、IDE のコンテキスト切り替えが少なくて済むため、迅速に実用的なプロトタイプに到達できます。

信頼性の高い運用

私はコードをソース管理に commit し、チームメートとコードレビューに取り組みます。私は新機能を統合し、新商品ページが本番環境にリリースされます。完成です。しかし、ソフトウェア開発ライフサイクルはこれで終わりではありません。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/15-feature-goes-live.gif

この本番環境サービスにオンコールで対応するアプリ開発者である私が、最初に見つけたいのはサービスログです。Duet AI のコンソール チャット機能を利用し、Cloud Run コンソールに移動します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/16-findlogs.gif

次に、SRE チームと協力し、在庫サービスのサービスレベル目標を Cloud Monitoring で作成します。Duet AI の変更を支援機能を利用し、サービスの正常性に関する複雑なクエリを作成します。PromQL の専門家でない私は、この機能のおかげで正しい構文を調べる時間を大幅に短縮できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/17-metrics.gif

セキュリティに関して、先週のデバッグ セッションで、私の Google Cloud プロジェクトにおける制限の緩やかな一時的 IAM ロールをチームメートに付与したとします。Security Command Center はこれを検知できます。Duet AI の AI 生成サマリーにより、私は問題をすぐに把握して、セキュリティ チームと連携して是正できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/18-security-summaries.gif

効果の共有

1 週間が経過し、商品チームのリーダーから近々予定されている全体会議で数枚のスライドをプレゼンテーションするように依頼されました。ビジネス アナリストの同僚と協力して準備します。私たちは新商品のショーケースを作成した効果、すなわち専用ページへの掲載後に新商品の売上が伸びたかどうかを理解したいと考えています。

最初に、Google スプレッドシートデータ整理サポート機能を利用して To-Do リストを作成します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/19-sheets.gif

次に、売上データに取り掛かり、Spanner で Duet AI の SQL コード補完機能を利用し、過去数週間の取引の元データに関するクエリを実行します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/20-spanner.gif

BigQuery の売上ロールアップ テーブルからより多くのデータを集めます。ビジネス アナリストの同僚が SQL クエリを専門家のように簡単に書くので、私は Duet のコード説明機能を利用し、収集データの理解を深めます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/21-bigquery.gif

ここから Google スライドに飛び、Duet AI の画像作成サポートツールを使用し、効果レポートの補助画像を生成します。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/22-slides.gif

全体会議はうまくいき、私はこの機能のパフォーマンスを改善する新しいアイデアを思いつきます。これが、AI を活用した 1 日です。

まとめると、Google Workspace の Duet AIGoogle Cloud の Duet AI から Bard まで、Google の AI による支援機能を活用し、アイデアを実現しました。生成 AI ツールは、コラボレーションを支援し、行き詰ったときにデバッグを支援し、タスクの自動化により頭脳を解放することで、困難な問題に取り組めるようサポートしました。このストーリーは Duet AI にできることのほんの一部にすぎません。皆様に探求してほしいことはまだまだたくさんあります。

その他のリソース

ー スタッフ デベロッパー アドボケイト Megan O'Keefe

ー スタッフ デベロッパー アドボケイト Priyanka Vergadia

投稿先