NTTドコモR&Dの技術ブログです。

「使われない・使いこなせない」を防ぐ。Vibe Codingツール「Cline」の社内での普及展開に向けた取り組み

自己紹介

NTTドコモ データプラットフォーム部(以下DP部)矢野です。

DP部ではドコモ内の各事業でデータ分析・活用を促進するためにStreamlitでアプリを提供しており、アプリ開発促進や生産性向上に向けた取り組みとして、Vibe Codingツールの1つである「Cline」を部内のPochi開発者向けに普及展開しました。本記事では、展開にあたっての背景や工夫点について、支援メンバである森さんに執筆いただきます。

writer: 株式会社NTTデータグループ 技術革新統括本部 AI技術部 森

社内データ活用プラットフォームPochi*1とは

私たちDP部は社内のデータ民主化を目指し、StreamlitとGoogle Cloudで圧倒的に使いやすいデータ活用プラットフォームを開発・推進しています。このプラットフォームは、24年度は30万時間もの業務効率化を実現し、直近では5,000人以上の社員に利用が拡大しています。

ASCII.jp:NTTドコモ、Streamlit利用の“ポチポチ分析アプリ”開発で社内データ活用を促進 (1/3)

※1: Pochiは社内の開発コードネームです

Vibe Coding とは

上記でご紹介した社内データ活用プラットフォームでのデータ分析・活用を通した価値創造を今後NTTドコモ全体でさらに推進していくためには、アプリ開発や改善のプロセスをより高速化していく必要があります。この目的を達成するために、Vibe Codingを活用します。

Vibe Codingとは、LLMを活⽤したAI開発⽀援ツールを⽤いて、⾃然⾔語でのプロンプト⼊⼒を通じてコーディングを⾏う開発⼿法です。 従来のIDEが提供してきたコード補完等の開発⽀援範囲を超えて、コード⽣成、リファクタリング、バグ修正、テスト作成など、開発プロセス全般をAIが⽀援します。

Vibe Codingの全社展開

アプリ開発の効率化と品質の向上を⽬的として、部内の運営チームや⼀部の開発者の間で、Vibe CodingツールであるClineの試験的な導⼊を既に進めておりました。この試験導⼊で開発者からも良いフィードバックを受けたため、NTTドコモ全社にいるPochi開発者全体に向けての展開を進めていくことになりました。

主な実施内容は、「セキュリティやコスト管理を行うための基盤整備」と「ツールの展開・利用促進」であり、我々はこれを2チームに分けて実施しました。我々のチームは主に後者の部分を担当したので、以降はツールの展開と利用推進における取組についてご紹介します。

前者の基盤整備についての取り組みの詳細は開発チームにVibe Coding環境を。LiteLLMとGoogleCloudで実現したコスト管理基盤の構築事例をご覧ください。

全社展開に向けたロードマップ

全社展開は、スモールスタートからはじめて徐々に展開範囲を広げていく、という方針で、部内の開発者への展開→全国の支社の開発者への展開の流れで実施していきます。

スモールスタートにした理由は、「展開プロセスのブラッシュアップ」と「リスクの影響の最⼩化」という2つの目的を達成しながら展開を進めていくためです。

展開の際の懸念点とアプローチ

スモールスタートとはいいつつも、この段階で考慮出来る懸念点は解消しておく必要があります。以下で、今回の取り組みで予め考慮していた懸念点とそれに対して実施したアプローチをご紹介します。

懸念点1 : Clineのセキュアな利用をいかに実現するか

ClineはVSCodeの拡張機能であるため、インストールしてAPIキーなどの設定を行えば誰でも簡単に利用することができます。一方で、ClineにはAPI設定以外にも権限設定や特定の機能の有効化など様々な設定があるため、間違った設定や管理者側が想定をしていない方法での利用が発生する可能性があります。

これがデータ流出やアプリ環境の破壊などのセキュリティリスクに繋がるため、リスク防止のためにClineはインストール・設定を正しい方法で行ったうえで利用いただくことが重要です。

この課題に対するアプローチとして、一般的には「settings.json」などの設定ファイルを中央管理する、という方法が考えられます。

しかしClineには設定ファイルが存在せず、設定は拡張機能のGUI上からしか設定が出来ないため、各開発者にご自身でGUI上から設定を行っていただく必要があります。この手動設定の部分でミスが発生しやすく、開発者自身が気づかないうちに間違った設定で利用を開始してしまうケースが想定されます。

アプローチ1 : インストールと設定の手順のドキュメント化と、開発者向けの説明やフォローアップの実施

上記課題は仕組化による対処が困難であったため、導入手順を詳細にドキュメント化したうえで、開発者向けに手順の説明やフォローアップを実施しました。主な工夫点は以下です。

  • ドキュメント

    • 設定手順をイメージできるよう設定手順画面1枚1枚のキャプチャを添付
    • 必要な設定を確認できるよう設定条件のサマリを最後に記載
    • 設定の意図を理解いただけるように適宜注釈で設定の意味を追記
  • 説明会・フォローアップ

    • 設定手順をイメージできるようドキュメントの内容を開発者に直接説明
    • 説明会後すぐ設定していただけるようリマインドやフォローアップをslack上で実施

結果、ほぼ全ての開発者に説明実施後1日以内に正しく設定を実施いただくことができました!

懸念点2 : Clineのスムーズな利用をいかに実現するか

Vibe Codingツールのような利用の自由度が高いツールを開発者に実際にご利用いただくには、利用の流れやポイントをご理解いただき利用のイメージを具体化してもらうことが重要です。これがないと、設定しても実際に使わずに離れてしまう開発者もいらっしゃると考えられます。

一方部内の開発者は、Pochiアプリの要件追加や修正といった業務で多忙な方が多く、Vibe Codingツールといった新しいツールを時間をかけて習得いただくのは困難な状況でした。

そのような状況の中で、Clineの利用法を理解し、実際に利用する、という流れを開発者に短時間でスムーズに実施いただけるよう、以下のようなアプローチを実施しました。

アプローチ2 : クイックスタートや利用の流れ、FAQといったドキュメントを作成

Cline利用の流れや利用方法を記載したドキュメントを作成し、上記で作成した導入手順ドキュメントの末尾で案内を行いました。

また利用方法ドキュメントは、開発者が利用導線の中で負担なく読めるように、以下の3つに整理しました。

  1. クイックスタート : 5分程度で利用の流れをイメージできるもの (最低限これだけは読んで実施いただく)
  2. 利用の流れ : より詳細なClineの利用の流れやポイント・Clineの機能を理解できるもの
  3. FAQ : 利用していく中で出てくると思われる疑問とそれに対する回答

作成したクイックスタートの概要を以下に示します。

クイックスタート概要

クイックスタート:アプリのユーザーガイドを作成する

0. Clineの起動

(内容は省略)

1. プロンプトの入力

以下のプロンプトを、Clineのチャット欄に入力してください。

入力するプロンプト

## 参照ディレクトリ
/app/app_pages

## 出力ファイル
/app/90_about_this_app.md
/app/91_about_datasource.md
/app/92_when_need_help.md

## 指⽰
参照ディレクトリ内のファイルの内容を記したユーザーガイドを出⼒ファイルのmarkdown形式で作成してください。
ユーザーガイドの内容は、それぞれ以下の3種類です。
- 「このアプリについて」
- 「データソースについて」
- 「使い⽅がわからないときは」

2. Clineによるアプリユーザーガイドの作成

2.1. 実装計画の立案

Clineがプロンプトを元に、必要な現状分析を行い、タスクの実装計画を立ててくれます。確認の上、必要に応じて修正点をFBし、修正を行わせてください。

2.2. 実装

(内容は省略)

2.3. 実装内容の修正 (オプション)

修正プロンプト例 (以下のように自由に与えて大丈夫です。)

## 内容の具体的な修正
- 「このアプリについて」の○○部分は、××に書き換えてください。
- 「データソースについて」の△△部分は、正しくは□□です。

## ざっくりした修正
- もう少し分かりやすくしてください。
- アプリ利用の流れはフローチャートを書いてください。

成果物の完成

(内容は省略)

この工夫により、大半の開発者に設定後にクイックスタートまで実施頂くことができ、結果としてその後の業務での利用にも繋げることができました。

部内に展開したうえで見えてきた課題

これまでご紹介したアプローチで、開発者がセキュアに、かつスムーズにClineを利用できる状態を作ることができ、結果として多くの開発者にClineを普段の業務でご利用いただけるようになりました。

ですが、これで終わりではありません。前述のとおり、Clineを普及展開する目的は、全開発者がアプリ開発や改善を高速化し、より高品質なアウトプットをより短時間・低コストで作成できる状態を作ることです。

開発者のフィードバックや利用状況の分析を通して、展開前には見えてこなかった課題も新たに見えてきたため、対処を実施しました。

課題1 : Clineのアウトプットの品質が低い

Clineでは、開発の際に守らせたい決まりごとなどをMarkdown形式でルールとして与えることができます。そのためPochiアプリ開発においても、アプリに適した形で開発していくための開発ガイドライン(開発者ガイドやアプリ内で共通的に利用するライブラリ)をルールとして与えています。

しかし、この開発ガイドラインだけでは実際の開発業務で必要なポイントを網羅出来ていなかったため、まだまだアウトプットの質は低く完璧には程遠い状態でした。

そのため、開発ガイドラインを実際の開発業務でのポイントを反映したものにアップデートし、運用していく必要がありました。

対処1 : 改善サイクルを通して開発ガイドラインをアップデートする

上記を踏まえ、開発ガイドラインのアップデートを以下のような改善サイクルを通して実施しました。

  1. 取り込み・利用 : 開発者にガイドラインを取り込んでご利用いただく。(その際、常に最新の開発ガイドラインをコマンドなどで簡単に同期して即座に利用できるよう仕組化する)
  2. フィードバック : 開発ガイドラインを利用したうえでのフィードバックを開発者から募集する。
  3. アップデート : フィードバックを元に、管理者側で開発ガイドラインをアップデートする。

このようなドキュメント改善サイクルを回すことで、Clineによるアウトプットの質を向上させることができました。

課題2 : Clineの利用効率は開発者によってばらつきがある

Clineの詳細な利用状況をGoogle Cloud SQL上に記録されるログを用いて定量的に分析した結果、Clineの利用方法や利用効率(1セッションあたりに要するコスト)は開発者によってばらつきがあり、全開発者がClineを使いこなせているわけではないことが分かりました。

1セッションあたりのコストが高い開発者について、詳細な利用状況を調査したところ、コンテキストが溢れてもそのままタスクを続けているセッションが多いことが分かりました。

この原因をさらに深ぼると、以下のように「タスク管理が出来ていない」セッションが多いことが分かりました。

  • プロンプトが曖昧で分量も多い
    • Clineに何をやらせたいのかが具体化できていなかったり、大きなタスクをClineに一気にやらせようとしている
  • 修正指示をうまく与えられずタスクが完了しない
    • 中間アウトプットの分量も多いため開発者が内容を理解できておらず、修正指示も曖昧になる
    • 修正量も膨大になり、タスクが完了しないままコンテキストだけが増加する

対処2 : Clineへのプロンプトの与え方やタスク管理の方針を策定し、開発者に共有する

上記の原因の解決に向け、実装前のプロンプトの与え方や実装中のタスク管理、実装後のレビューやフィードバックの方針を定め、ノウハウとして開発者の皆様に勉強会という形で共有しました。ノウハウのポイントを以下にまとめます。

  • タスク実行前
    • やりたいことを壁打ちなどを通して具体的に言語化する
    • やりたいことをタスク化し、実装可能な範囲に絞り込む
    • タスクは実装前にPlanモードで計画を立てる
  • タスク実行中
    • タスクをやらせ続けても完了しない場合は、そのままやらせ続けるのではなく一度立ち止まって現状整理や再計画を行う
    • コストやコンテキストウィンドウを管理し、一定の値を超えたらセッションを切り替える
  • タスク実行後
    • タスク完了後はコードレビューを行う
    • 実装のポイントなどをフィードバックし、ルールを更新する

上記ノウハウについての勉強会を実施後、ほぼすべての開発者のClineの利用効率が向上し、多くの開発者がClineを使いこなせている状態を実現することができました。

まとめ・今後の展望

これまでご紹介したVibe CodingツールClineの普及展開の取り組みにより、部内のほぼ全ての開発者が普段の業務で定常的にClineを効率的に利用できるようになりました。

今後はさらに展開する範囲を支社の開発者に向けて広げていこうと考えており、最終的には全社の開発者への展開を目指しております。

また、Vibe CodingツールはCline以外にも日々新たなツールがどんどん登場しており、まさにブームとなっております! DP部として、そういったツールの動向や最新状況も注視しつつ、普及展開するツールの選択肢も増やしながら、開発者により良い開発体験を提供していく予定です。

最後になりますが、今回の取り組みで生み出されたVibe Coding熱をNTTドコモ内の開発者全体に波及し、従来の開発プロセスでは考えられなかったスピードでのアプリケーションの展開や価値創造を実現していきます!

*1:Pochiは社内の開発コードネームです