Fab Forward Dev/

ナレッジベース

製造業の一般知識

適応型システム設計 / Adaptive Systems Design

Wardley Mapping、Team Topologies、リーン要件定義。 組織とシステムの共進化。

DDD 対応: ddd/02-context-map.md §チーム境界


1. Wardley Mapping

概念

技術コンポーネントの 進化段階 を可視化し、戦略的な意思決定を支援するツール。

進化の 4 段階

段階英語特徴
IGenesis新しい、不確実、カスタムAI による見積自動化
IICustom Built理解が進むが、まだ個別開発我々の PMS
IIIProduct/Rental標準製品として利用可能Salesforce, SAP
IVCommodity/Utility差別化にならない。汎用サービスAWS, メール, 認証

マップの読み方

ユーザーニーズ (上)
    │
    ├── [Genesis]      ← 差別化の源泉。自社で開発
    ├── [Custom Built]  ← まだ標準製品がない
    ├── [Product]       ← 買えるなら買う
    └── [Commodity]     ← 汎用サービスを使う (下)

我々のシステムでの適用

コンポーネント段階判断
受注別原価管理Custom Built自社開発 (差別化)
見積BOM展開Custom Built自社開発 (コア)
Sales CRMProduct汎用品も検討可 → 自社開発 (統合のため)
認証 (IAM)Commodity外部サービス利用
メール通知CommoditySaaS 利用
インフラ (サーバ)CommodityVPS

2. Team Topologies

4 つのチームタイプ

タイプ英語役割
ストリームアラインドStream-alignedビジネス価値の流れに沿ったチーム
イネーブリングEnabling他チームの能力開発を支援
複雑サブシステムComplicated Subsystem高度な専門知識が必要な領域
プラットフォームPlatform共通基盤の提供

3 つのインタラクションモード

モード説明いつ使うか
コラボレーション密に協働 (発見フェーズ)新しい境界を探索中
X-as-a-ServiceAPI/サービスとして利用安定した境界が確立後
ファシリテーティング一方が他方を支援イネーブリングチームの関与

コンウェイの法則

「システムの構造は、それを作った組織のコミュニケーション構造を反映する」

逆コンウェイの法則: 望ましいシステム構造に合わせてチームを編成する。

我々のシステムへの適用

Stream-aligned:
  ├── Sales チーム → Sales CRM (bc-sales, bc-activity, bc-operations)
  └── PMS チーム → PMS (bc-quotation, bc-procurement, bc-production, bc-sales-billing)

Collaboration (コラボレーション):
  └── 両チーム → Integration Contracts (共同管理)

Platform:
  └── 認証、インフラ、CI/CD

3. バウンデッドコンテキストとチームの対応

原則: 1 チーム = 1-3 BC

✅ PMS チーム: 見積・受注 + 手配 + 製作 + 売上 + 買掛 + 原価 (6 BC)
   → 中小チームなら OK (密結合なBCなので実質 1 システム)

❌ 1 人が Sales と PMS の両方を開発
   → BC の境界が曖昧になり、結合が強くなる

認知負荷 (Cognitive Load)

チームが管理できる BC の数は、チームの認知負荷に依存:

チームサイズ管理可能な BC 数注意点
1-2 人1-2 BC最低限のドメインに集中
3-5 人2-4 BC関連性の高い BC をまとめる
5-8 人3-6 BC明確な境界と API 定義が必要

4. リーン要件定義 (Lean Requirements)

要件のムダ

ムダ説明対策
過剰な文書読まれない仕様書「動くソフトウェア」を優先
過早な詳細化まだ不確実なのに詳細仕様ラストレスポンシブルモーメント
ゴールドプレーティング必要以上の機能追加MoSCoW 法で優先順位
手戻り要件の理解不足による手直しドメインエキスパートとの協働

分析の 3 レベル

レベル対象期間成果物
戦略 (Strategic)事業目標、ビジョン四半期-年Wardley Map, ロードマップ
戦術 (Tactical)機能領域、フロー月-四半期コンテキストマップ, ユーザーストーリーマップ
戦闘 (Operational)個別機能、画面週-月ユーザーストーリー, 受入基準

MoSCoW 法

分類意味
Must have必須。これがないとリリースできない受注登録、見積作成
Should have重要。なくても回避策がある帳票の自動生成
Could haveあると良い。時間があればダッシュボード
Won't have (this time)今回は対象外AI 見積予測

5. 適応的な設計判断

ラストレスポンシブルモーメント

「決定を遅らせることのコストが、遅らせることの利益を上回る直前」に決定する

決定遅らせてよい?理由
DB の選択はい後で変更可能 (リポジトリパターン)
BC の境界やや初期は粗く、後で分割
API の公開仕様いいえ他システムが依存すると変更困難
テーブル名の命名いいえ後からの変更コストが高い

可逆的な判断 vs 不可逆的な判断

可逆的 (Type 2)不可逆的 (Type 1)
内部のコード構造外部 API の仕様
UI デザインデータベーススキーマ (本番運用後)
ライブラリの選択言語/フレームワークの選択

Type 2 は素早く決めて試す。Type 1 は慎重に、しかし過度に遅らせない。