Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

スクラム開発について④:ドキュメント

f:id:overworker:20200615215136p:plain

アジャイル開発とドキュメント

アジャイルソフトウェア開発宣言には「包括的なドキュメントよりも動くソフトウェア」という言葉があります。 これは、『包括的なドキュメント』に価値があることを認めつつも、『動くソフトウェア』により高い価値を置くという意味で、 包括的なドキュメントの存在価値を否定するものでなないと解釈します。

必要なドキュメント・不要なドキュメント

1.絶対に必要なドキュメント

  • 契約やコンプライアンスなどで作成が義務づけられているドキュメント

  • 生成された成果物を利用するユーザーのためのドキュメント

2.必要なドキュメント

  • ソフトウェアのライフサイクルで品質や生産性の向上につながるドキュメント

    ドキュメント名 内容
    開発構想書 - 開発するソフトウェアがどのような現状の問題を解決するか
    - その解決方法の概略
    - 開発するソフトウェアの存在理由
    - プロジェクトで開発する機能の存在理由
    プロジェクト憲章 - プロジェクトの存在意義
    - プロジェクトの終わりまで変わらない基本的な事項
    - 何かに迷ったときに立ち返るために必要な情報
    アーキテクチャー設計書 - 開発するソフトウェアの設計や拡張の指針となる原則が分かるドキュメント
    - 開発するソフトウェアの全体の設計思想
    - 使用するアーキテクチャパターン
    - 機能を追加するときの方針
    CRUD ソフトウェア全体が共有するリソースをどの部分が、作成(Create)、参照(Read)、更新(Update)、削除(Delete)するのかを表形式にまとめたドキュメント
    ハイレベルユースケース ユーザの業務の課題と、それがソフトウェアによってどのように解決されるのかを示すユースケース

3.作成するべきドキュメント

  • アジャイル開発の反復内で使用されるドキュメント

    • (仮に自分が)保守する際にあった方が助かると思えるドキュメント

※ 人と人との対話の道具として必要であれば、目的のためのドキュメントを必要な時に作成する(=フォーマットを固定化する必要はないし、再利用されることを想定する必要もない)

4.不要なドキュメント

ドキュメントの管理方法

  • プログラムと同様の管理方法が開発になじみやすい
    • Git等で管理する
      • マークダウン等のテキストレベルで変更管理が可能な形式が理想
    • Git-Flowのような承認プロセスを規定する

参考文献

以下の書籍から大きな影響を受けました。

overworker.hatenablog.jp