ステップアップ開発 (AI時代の開発)

少人数のグループで AI を用いて開発する手法です。各段階で目標とするレベルと担当者、成果物の種類が異なります。

## 依頼段階

依頼者の作りたいものを大まかに聞き取り、簡単なイメージ図と必要な機能を箇条書きで書き出します。この段階で、**依頼者の要望を可視化し、チーム全体で共有**することが重要です。

## 1段階目: 吊橋開発 (0→1) - 技術選定と最小限のプロトタイプ作成

*   **目標**: 技術選定を行い、最低限の機能を持つ動作するプロトタイプを作成する。
*   **担当**: 全員 (リーダー、初中級者、依頼者を含む)
*   **成果物**:
    *   テンプレート
    *   データベース (DB)
    *   ツール
    *   最低限動作するプロトタイプ
*   **特徴**:
    *   **全員参加**: 初中級者も熟練者も、開発プロセス全体を理解し、チームとしての協調性を高めます。
    *   **基礎固め**: 必要最低限のものを揃え、土台を築きます。
    *   **AI活用**: AI にプロトタイプの作成を依頼します。
    *   **ドキュメント**: 要望、アイデア、メモ程度に軽くまとめる。
    *   **機能**: 機能は最小限 (例: DBに保存されたデータをブラウザでなにか一つだけ表示する)。
    *   **技術選定**: 開発に必要な技術 (フレームワーク、言語、ライブラリなど) を決定します。

## 2段階目: 大まかな枠組み、基礎機能の作成 (1→20) - AI による初期構築

*   **目標**: 基本的な機能を実装し、製品の 2 割程度の完成度を目指します。
*   **担当**: 初中級者、依頼者
*   **成果物**:
    *   主要機能が実装された製品
    *   メモ程度のドキュメント
*   **特徴**:
    *   **具体的な形**: 1 段階目で構想したものをおおまかな形にします。
    *   **顧客参加**: 顧客に実際に触ってもらい、フィードバックを得ることで、手戻りを減らします。
    *   **AI活用**: AI にベースとなる部分をほぼすべて作成してもらうことで、開発効率を高めます。
    *   **ドキュメント簡略化**: ドキュメントは主要な要望の箇条書き、メモ程度にとどめ、柔軟な開発体制を維持します。
    *   **エラー容認**: エラーが出ても、まずは形にすることを優先します。
    *   **テスト**: テストは行いません。
    *   **役割分担**: 初中級者は依頼者のイメージを言葉に変えて AI に作成を依頼します。

## 3段階目: 主要機能の実装 (20→80) - 依頼者との協働と AI の活用

*   **目標**: 主要な機能を実装し、製品の 8 割程度の完成度を目指します。
*   **担当**: 初中級者、依頼者
*   **成果物**:
    *   主要機能が実装された製品
    *   大まかなテスト
    *   大まかなドキュメント
*   **特徴**:
    *   **AI活用**: AI でメインの機能を作成します。
    *   **機能**: 細かい機能は作りません。
    *   **テスト**: 大まかなテストを実装します。
    *   **ドキュメント**: 大まかなドキュメントを作成します (コードに従う)。
    *   **依頼者との協働**: 依頼者と密に相談し、必要な機能や不要な機能を明確化します。
    *   **GO サイン**: 依頼者の GO サインが出たら次の段階に進みます。

## 4段階目: 完成 (80→100) - 人間による最終調整と品質向上

*   **目標**: 製品の完成度を 100% に近づけます。
*   **担当**: リーダー、熟練者
*   **成果物**:
    *   完成した製品
    *   完成したドキュメント
*   **特徴**:
    *   **仕上げ**: 細かい部分を人間が丁寧に作り込み、製品の完成度を高めます。
    *   **ドキュメント完成**: 製品を作りながら、ドキュメントの細かい部分も完成させます (ドキュメントに従う)。
    *   **開発手法**: アジャイル開発、ウォーターフォール開発、テスト駆動開発など、状況に応じて適切な手法を選択します。
    *   **最終調整**: 人間が使いやすいように最終調整を行います。
    *   **テスト**: 実運用に耐えるテストを実装します (セキュリティ、エラー処理、バックアップ/リストア処理などを含む)。
    *   **開発体制**: ペアプログラミング、モブプログラミングなど、状況に応じて適切な開発体制を選択します。

## エクストラステージ - 機能追加と改善

完成後、より便利な機能や細かい機能を追加します。**依頼者の要望やフィードバックに基づいて、製品の価値をさらに高めます**。

## ステップアップ開発のメリット

*   **段階的な成長**: 初中級者は段階的にスキルアップできます。
*   **手戻り削減**: 早期に顧客のフィードバックを得ることで、手戻りを減らします。
*   **効率的な開発**: AI などのツールを活用することで、開発効率を高めます。
*   **柔軟な対応**: ドキュメントを簡略化することで、仕様変更に柔軟に対応できます。

## ステップアップ開発の注意点

*   **各段階の目標を明確にする**: 各段階で何を達成するのかを明確にすることが重要です。
*   **担当者のスキルに合わせたタスク配分**: 各担当者のスキルレベルに合わせて、適切なタスクを割り振る必要があります。
*   **コミュニケーション**: チームメンバー間のコミュニケーションを密にすることが重要です。
*   **AI の適切な活用**: AI はあくまでツールであり、人間の判断と創造性を補完するものであることを理解する必要があります。

## まとめ

ステップアップ開発は、AI を活用し、段階的に開発レベルを上げていくことで、効率的に高品質な製品を開発できる手法です。
各段階で目標を明確にし、チームメンバー間のコミュニケーションを密にすることで、より効果的な開発が可能になります。
3段階目まではほとんどAIに任せながら開発をします。プログラマーの役割は顧客から要望を聞いてまとめ、AIに依頼することが主な仕事です。
4段階目では、人間が主に最終調整を行い、製品の完成度を高めます。テストも実施し、品質を向上させます。


# 👆これとは関係のない話。

これとはこの少人数用のステップアップ開発ですが、

👇ネット上での発表

NHK
https://www.nhk.or.jp/info/otherpress/pdf/2024/20250204.pdf

IBM Japan Newsroom - お知らせ
https://jp.newsroom.ibm.com/2025-02-07-Regarding-the-Suspension-of-the-NHK-System-Development-and-Migration-Project

IBMとNHKが共同で進めていたシステム開発・移行プロジェクトが中止になったというニュースがありました。
言い分はそれぞれありそうですが、どうやらNHKが増改築を繰り返してきたシステムをそのままで作ってくれと要望したようです。そして仕様書に書いてないことまであったとかなんとか・・・

サンクコストを理解していないのか、それとも他に理由があるのか、詳細は不明ですが、要件定義書などに不備がある以上、IBMを責められません。

自分の妄想に過ぎませんが一旦すべて捨てて、まず小さな会社を作って最低限の開発をして、そこでうまくいったら少しずつ大きくしていくというのが一つの方法かもしれません。

ステップアップ開発の肝は、依頼者が全工程に参加していることです。
後出しジャンケンは許されることではないので、
依頼者が希望するものと、作られたものの差がなるべく小さくなるように、そして、その情報ができる限り素早く正確に報告されることは開発の大小に限らず重要なことです。