ドキュメント・ベースは階層構造をもたせる

ドキュメント・ベースには様々な資料が置かれるが、ある程度のカテゴリ分けを決めておかないと、どこに何のファイルを置けばよいのか、どこに何のファイルが存在するのかが分からなくなってしまう。毎度「あのファイルはどこですか?」と聞く無駄な時間が増えたり、有用な資料の存在に気付かず問題解決が遅れたりしかねない。

どんなシステム、プロジェクト、案件でも、大体次のような階層構造をベースに資料を分けておけば、迷いにくい。

プロジェクトルート
├ プロジェクト・ベースの案内
├ 設計
│ ├ 設計書テンプレート
│ ├ システム仕様書 (システムの概要・目的、機能一覧)
│ ├ システム構成図 (サーバ構成・インフラ構成・ネットワーク構成)
│ ├ 設計書 (画面・帳票・API・DB)
│ └ 環境一覧 (接続情報) …など
├ 開発
│ ├ 開発規約
│ │ ├ コーディングルール
│ │ ├ 開発ツール
│ │ └ 環境構築手順書 …など
│ └ 開発案件
│    └ 2020-01 〜〜機能追加
├ テスト
│ ├ テスト計画書フォーマット
│ └ テスト仕様書フォーマット …など
├ 運用
│ ├ 運用ルール
│ │ ├ 緊急対応時のフロー (ルール)
│ │ ├ 運用手順書 (サーバ接続手順、リカバリ手順など)
│ │ └ 障害管理票フォーマット …など
│ └ 過去対応
│    └ 2020-01-01 〜〜障害対応
├ プロジェクト管理
│ ├ 見積
│ ├ マスタスケジュール
│ ├ WBS
│ └ メンバ管理 (連絡先・スキルマップ) …など
├ 技術情報
│ └ (システムや案件によらない技術ネタ)
├ 議事録
│ ├ 議事録フォーマット
│ └ 2020-01-01 〜〜打合せ
└ その他
   └ (置き場に迷ったもの)

注意点は以下のとおり。

こうしたドキュメント・ベースのカテゴリ設計思想は、大抵他の人には伝わらない。「思い」は伝わらないモノと諦め、自主的にパトロールして、何度でも同じ注意をして、ルールを徹底させ続けるしかない。

ついでに、Bash スクリプトでこのようなディレクトリ構造を一括作成できるようにしておくと、何かと便利。

#!/bin/bash

echo 'Start'

mkdir -p \
  '10-要件定義' \
  '20-設計' \
  '20-設計/テンプレート' \
  '20-設計/システム仕様書' \
  '20-設計/システム構成図' \
  '20-設計/ネットワーク設計' \
  '20-設計/インフラ設計' \
  '20-設計/機能一覧' \
  '20-設計/機能定義' \
  '20-設計/CRUD 図' \
  '20-設計/画面一覧' \
  '20-設計/画面設計書' \
  '20-設計/画面遷移図' \
  '20-設計/帳票一覧' \
  '20-設計/帳票設計書' \
  '20-設計/API 一覧' \
  '20-設計/API 設計書' \
  '20-設計/DB 一覧' \
  '20-設計/DB 設計' \
  '20-設計/ER 図' \
  '20-設計/非機能要件' \
  '20-設計/運用設計' \
  '20-設計/環境一覧' \
  '30-開発' \
  '30-開発/開発規約' \
  '30-開発/過去案件' \
  '40-テスト' \
  '40-テスト/テスト計画' \
  '40-テスト/テスト仕様書' \
  '50-運用' \
  '50-運用/運用ルール' \
  '50-運用/過去対応' \
  '60-プロジェクト管理' \
  '60-プロジェクト管理/見積' \
  '60-プロジェクト管理/マスタスケジュール' \
  '60-プロジェクト管理/WBS' \
  '60-プロジェクト管理/メンバ管理' \
  '60-プロジェクト管理/課題' \
  '60-プロジェクト管理/辞書' \
  '70-技術情報' \
  '80-議事録' \
  '80-議事録/テンプレート' \
  '90-受領資料' \
  '99-その他'

touch \
  'プロジェクトベース案内.md'

tree
echo 'Finished'