Copilot無償版
演習シナリオ
プロジェクト計画のレシピを調べて買い出しに行く (比喩表現です)
要員計画に基づいたスケジュール計画なんかが鬼門になると思われます。
そのあたりCopilotを活用するとどうなるか見てみましょう。
あなたはアプリケーション開発プロジェクトの設計を任されました。
プログラミング自体は経験・実績ともに豊富です。
それなりに修羅場もくぐってきました・・・。
しかし、開発畑を歩んできたためプロジェクト管理経験が乏しく、
社内の資料も十分に整備されていない状態です。
そんなことある?
たまにあります・・・。
アプリケーション開発プロジェクト設計にあたり、料理の手順を模倣して整理してみましょう。
- レシピを調べて、材料を特定する
- 材料を買い出しにいってそろえる
- 各材料の下ごしらえをする
- 調理して料理に仕上げる
比喩が伝わるか不安ですが、まあ、取り組んでみましょうか!
演習手順
① レシピを調べて、材料を特定する
まずは、アプリケーションの概要からおおまかな機能要件と概要設計を生成してみます。
どんな料理を作るのか をここで定義する形ですね。
あとで取り出せるように「アプリ概要設計」として定義します。
次のプロンプトを実行してください。
# 背景
私は現在アプリケーション開発プロジェクトの設計を任せれました。
現状、アプリケーションは大まかな設計までしかできていません。
プロジェクト計画設計のために必要な要素を定義したいです。
# 命令
入力された概要情報からアプリケーションの情報を整理してください。
機能要件の一覧と概要設計(画面数、ロジック数、など)
# 出力
構造的な箇条書きで生成してください。
・機能要件
・概要設計
# 定義
生成結果を後で呼び出します。
「アプリ概要設計」として呼び出すので覚えておいてくださいね。
これでおおまかなアプリケーション情報を 「アプリ概要設計」 として定義できました。
不安であれば呼びだしてみましょう。
「アプリ概要設計」を表示してください。
次のように表示されます。
✅ アプリ概要設計
・機能要件
-
ユーザー認証
- ログイン/ログアウト
- 新規登録
- パスワードリセット
-
ダッシュボード表示
- ユーザーごとの情報表示
- 通知・アラート表示
-
データ管理機能
- データの登録/編集/削除
- 一覧表示(フィルター・検索付き)
-
レポート生成
- PDF/CSV出力
- グラフ表示(統計・傾向)
-
設定管理
- ユーザー設定(プロフィール、通知)
- 管理者設定(権限、システム設定)
-
API連携
- 外部サービスとの連携(例:Google、Slackなど)
- Webhook対応
-
ログ管理
- 操作履歴の記録
- エラーログの取得
・概要設計
-
画面数(UI設計ベース)
- ログイン画面:1
- ユーザー登録/パスワードリセット:2
- ダッシュボード:1
- データ一覧/詳細/編集:3〜5
- レポート画面:1〜2
- 設定画面(ユーザー/管理者):2〜3
- その他(ヘルプ、404など):2
→ 合計:約12〜16画面
-
ロジック数(バックエンド処理)
- 認証処理:3(ログイン、登録、リセット)
- CRUD処理:4〜6(データ操作)
- レポート生成:2〜3
- 設定保存/読み込み:2
- API連携:3〜5
- ログ記録:2
→ 合計:約16〜21ロジック
-
データベース設計(概略)
- ユーザー情報テーブル
- データ管理テーブル
- ログテーブル
- 設定テーブル
- レポート履歴テーブル
次にプロジェクト計画立案になにが必要なのか生成してみましょう。
次のプロンプトを実行してください。
# 背景
私は現在アプリケーション開発プロジェクトの立案を任されました。
経験が乏しく、社内資料も豊富ではありません。
# 命令
一般的なアプリケーション開発プロジェクト立案にあたり、
設計しなければならない要素を生成してください。
# 入力
アプリケーションの概要は次のとおりです。
"""
「アプリ概要」
"""
# 出力
構造的、かつ箇条書きで生成。
最優先は設計順序、次優先は実装順序、昇順で並べ替え。
プロジェクトマネージャー初心者にわかりやすく記述。
専門用語をあつかう際はカッコ内に簡潔な解説を追記。
あとで呼び出すので「プロジェクト計画」として記憶してください。
ロールキャベツにはこんな材料が必要ですよ 的な内容が生成されましたね。
また、「プロジェクト計画」として生成結果を定義できました。
次のような内容が生成されます。
✅ アプリ開発プロジェクト立案:設計・実装順序
① 設計フェーズ(最優先)
-
目的・ゴールの定義
- アプリで解決したい課題や提供価値を明確にする
-
対象ユーザーの定義
- 社内利用か顧客向けか、利用者の属性やニーズを整理
-
機能要件の整理
- 「アプリ概要設計」の機能一覧をベースに、必要な機能を確定
-
画面構成の設計(画面遷移図)
- どの画面があり、どうつながるかを図で整理
-
UI/UX設計
- ユーザーが使いやすい画面デザインや操作フローを設計
-
データベース設計
- 保存する情報の構造(テーブル、項目、関係)を定義
-
ロジック設計(バックエンド処理)
- 各機能の動作内容(例:ログイン処理、データ保存)を設計
-
API設計
- 外部サービスとの連携や内部通信の仕様を定義
(API:アプリ同士が情報をやり取りする仕組み)
- 外部サービスとの連携や内部通信の仕様を定義
-
セキュリティ設計
- 認証、アクセス制御、データ保護などの対策を設計
-
開発スケジュール(WBS)作成
- 作業項目と担当者、期間を一覧化
(WBS:Work Breakdown Structure=作業分解構造)
- 作業項目と担当者、期間を一覧化
-
テスト計画の立案
- どの機能をどう確認するか、テスト項目を整理
② 実装フェーズ(次優先)
-
開発環境の構築
- 使用する言語、フレームワーク、ツールの準備
-
画面(フロントエンド)実装
- ユーザーが操作する部分の開発
-
ロジック(バックエンド)実装
- データ処理や機能の動作部分の開発
-
データベース構築
- 設計に基づいてテーブルを作成
-
API連携の実装
- 外部サービスとの接続や内部通信の実装
-
セキュリティ機能の実装
- 認証、暗号化、アクセス制御などの実装
-
テスト実施(単体・結合・総合)
- 各機能が正しく動くか確認
(単体:1機能ずつ、結合:複数機能の連携、総合:全体)
- 各機能が正しく動くか確認
-
不具合修正・改善
- テスト結果をもとに修正
-
リリース準備
- 本番環境への移行、マニュアル作成、社内周知
-
運用・保守計画の策定
- リリース後の対応(障害対応、機能追加など)
これらの項目の中で皆さんがすでに持っている材料がありますね。
プログラミングに関する項目はご自身で定義・設計できるはず・・・です。
(そういう演習です・・・。)
どの部分の材料をそろえるのに苦労しそうでしょうか?このあたりかと思われます。
■ 設計フェーズ
10. 開発スケジュール(WBS)作成
- 作業項目と担当者、期間を一覧化
(WBS:Work Breakdown Structure=作業分解構造)
■ 実装フェーズ
-
開発環境の構築
- 使用する言語、フレームワーク、ツールの準備
② 材料を買い出しにいってそろえる
まずはやさしいほう、開発環境について生成、定義してみましょう。
次のプロンプトを実行してください。
# 背景
アプリケーション開発環境を設計しています。
顧客の要望でMicrosoft Azure環境を使うことは決まっています。
# 命令
システムを構成するにあたり適切なAzureリソースを提示してください。
なお、開発エンジニアの主なスキルセットはPythonとSQL言語です。
新しい技術はできるだけ学ばずに済む構成にしてください。
# 入力
「アプリ概要」
「プロジェクト計画」
# 出力
構造的な箇条書き、可能なら表形式で生成。
プレゼンテーション層、アプリケーション層、データ層で構造化。
複数候補を推薦し、その理由も教えてください。
あとで呼び出すので「開発環境」として記憶してください。
なんですかね キャベツ買ってきた。 的な処理ができました。
このキャベツが気に入らなければAzureリソースを入れ替えるようなプロンプトを実行してください。
次に開発スケジュールについて考えてみましょう。
いくつかの要素が絡み合っていますので、順序を間違えると手戻りが発生しそうです。
次のプロンプトを実行してください。
# 背景
プロジェクト計画にあたり、開発スケジュールを設計する必要があります。
設計にあたり、生成AIに問い合わせるプロンプトを生成して欲しいです。
# 命令
入力に従って、設計する順序を提示してください。
# 入力
"""
「プロジェクト計画」
設計フェーズ
10. **開発スケジュール(WBS)作成**
- 作業項目と担当者、期間を一覧化
(WBS:Work Breakdown Structure=作業分解構造)
"""
# 出力
Copilotに投入するプロンプトとして生成。
プロンプトは目的ごとに分割して生成。
プロンプト形式で生成されます。
次のような結果が生成されます。
✅ 開発スケジュール設計用プロンプト(目的別)
① WBSの構成案を作成するためのプロンプト
アプリケーション開発プロジェクトにおけるWBS(作業分解構造)の構成案を生成してください。
「アプリ概要」と「プロジェクト計画」をもとに、設計・実装・テスト・リリースまでの工程を網羅してください。
各工程の作業項目を粒度細かく分解し、カテゴリごとに整理してください。
② 各作業項目の所要期間を見積もるためのプロンプト
以下のWBS構成案に対して、各作業項目の所要期間(目安)を提示してください。
PythonとSQLを中心としたスキルセットを持つエンジニアが担当する前提で、
学習コストが低い構成を想定してください。
作業項目ごとに「想定日数」「依存関係」「並行可能性」も記載してください。
③ 担当者の割り当てを検討するためのプロンプト
以下のWBS構成案に対して、担当者の割り当て案を提示してください。
役割(例:フロントエンド、バックエンド、DB設計、テスト)ごとに分類し、
各作業項目に適した担当者のスキル要件も記載してください。
チーム構成が未定の場合は、必要なロールと人数の目安を提示してください。
④ スケジュール表(ガントチャート形式)の生成プロンプト
以下のWBS構成案と所要期間をもとに、ガントチャート形式のスケジュール表を生成してください。
設計→実装→テスト→リリースの順に並べ、依存関係と並行可能な作業を考慮したスケジュールを提示してください。
スケジュール設計に必要な材料を生成してみます。
必要に応じて生成されたプロンプトを実行しても結構です。
この演習では一括で実行してもらいましょう。(分割生成した意味よ・・・。)
次のプロンプトを実行してください。
生成したプロンプトを一括実行してください。
結果はファイルではなく、表示してください。
あとで呼び出すので「スケジュール計画(案)」として記憶してください。
スケジュール計画が生成され、「スケジュール計画(案)」として保存されました。
が、一般論が下敷きになっているのでこのスケジュールには説得力がありませんね。
豚肉をカタマリで買ってきた 的な。
③ 材料の下ごしらえをする
スケジュール計画について、諸条件を明確にし、下ごしらえをしましょう。
プロジェクトに配備できる人員とそのスキルセットや経験年数を反映させます。
次のプロンプトを実行してください。
# 背景
スケジュール計画を立ててきましたが、要員情報が不足していました。
あらためて共有します。
# 命令
要員情報に基づいて、スケジュール計画を修正してください。
# 入力
「スケジュール計画(案)」
要員計画(1人月あたりの稼働工数、1カ月あたり160時間稼働とする)
ホワイト企業なので過度な残業は許しません!
PM:1名
Pythonエンジニア(経験3年):2名
Pythonエンジニア(経験0年):1名
SQLDBエンジニア(経験8年):0.5名
納期
1年後
# 出力
納期から逆算してキックオフ日を決める
あとで呼び出すので「スケジュール計画」として記憶してください。
これで料理に使える状態になりました。豚肉、ミンチにしてみた。 的な。
④ 調理して料理にしあげる
材料がそろい、下ごしらえも完了したので、最終的なプロジェクト計画を生成してみましょう。
次のプロンプトを実行してください。
# 背景
いままで生成してきたもので材料がそろいました。
最終的なプロジェクト計画を整理する必要があります。
生成結果は第三者にも説明する必要があります。
# 命令
「プロジェクト計画」を修正してください。
# 入力
「アプリ概要」
「プロジェクト計画」
「スケジュール計画」
# 出力
表示してください。
/// 本番実施の場合は、ワードないしエクセルで出力したほうが読みやすいです ///
これまでの検討結果を網羅したプロジェクト計画が生成されました。
やっと ロールキャベツできたよ。 的な。
専門家がみれば、穴だらけの計画に見えることでしょう。
しかし、何もない状態からプロジェクト計画をおこすよりは
生成AIの作ったたたき台にダメ出しをして精度をあげる方が、
楽に進行するのではないでしょうか。(主にメンタル負荷が軽減されるのでは?)
テスト計画の立案、プレゼンのアジェンダ生成、リスク管理表案の生成、セキュリティ設計要素の洗い出し、などもこのプロンプトを応用することで生成が可能です。
挑戦してみてください。
この演習はこれで終了です。
みなさまの業務にご活用ください。