リリース履歴の重要性
Redmineには、変更履歴と言うリリース履歴の機能がある。
この機能がいかに重要か、ラフなメモ書き。
【1】チケット駆動開発では、バージョンをリリースしたら、自然にリリース履歴が残る。
SVNコミットに必ずチケットをリンクさせれば、終了チケットがリリース履歴になる。
リリース履歴は何故重要か?
いつ何をリリースしたのか、という記録だから。
手作業でリリース履歴を作ろうとすると作業漏れがおきやすい。
RedmineのようなBTS、Hudsonのようなビルドツールを使っていないチームでは、リリース履歴を自動作成することができないので、リリース履歴をExcelのリリース台帳で管理しているだろう。
例えば、開発者が修正したソースにタグを付けてリリース台帳に記載して、ライブラリアンはリリース台帳を見てビルド&デプロイを実施するワークフローにしているだろう。
このワークフローはExcelのリリース台帳が一番重要。
このリリース台帳が壊れたり紛失したら、リリース作業に大きな支障を残す。
また、手作業のワークフローが多いので、ミスも多いだろう。
RedmineやMantisでは、ロードマップというリリース計画にチケットを一覧表示できるし、リリース予定バージョンでチケットをグループ化しておくと、先の予定のリリース作業が見えやすくなる。
そして、リリースしたバージョンの履歴が変更履歴として残るので、どのバージョンでどんなバグ修正を取り込んだのか、すぐに分かる。
つまり、BTSがリリース履歴を一括管理していることになる。
Hudsonの場合、RedmineやTrac、MantisなどのBTSと連携する機能がある。
実際、Hudsonがつけたビルド番号に、SVNリビジョンがひもづけられている。
そして、SVNのコミットコメントにチケットNoがあれば、Hudsonのビルド番号とリンクされる。
これによって、Hudsonでビルドしたモジュールに反映されたチケットを探すことができる。
これがトレーサビリティに当たる。
この機能があるからこそ、ビルドモジュールからSVNリビジョン、チケットを経由して、仕様や要件まで辿ることができる。
また、BTSで管理していれば、全文検索が可能だから、キーワードで検索できる。
従って、運用保守で、過去のパッチの修正意図を過去の終了チケットから探り出し、リバースエンジニアリングすることも可能。
【2】WF開発でも、設計工程のタスク管理にチケット駆動開発を使うと良い。
設計書は必ずSVNにコミットして、SVNの配下に置く。
つまり、設計書もバージョンアップしていく対象と捉える。
設計書の修正は必ずチケットを起票して、チケットに作業履歴を残す。
そうすれば、チケットとSVNリビジョンの関係を通じて、設計書とチケットが結びつく。
バージョンをマイルストーン単位にする。
マイルストーンは、設計書の提出時期、進捗報告の単位になる。
変更履歴に、マイルストーン単位の作業履歴が残る。
いつ誰が、どんな仕様を設計書に反映したのか、作業履歴が残る。
だから、何故こんな仕様が反映されたのか、後日になって検索して調査することも楽になる。
実際の設計書は、顧客から引き出した曖昧な要件を試行錯誤して詳細化しならが作られていく。
たくさんの課題を各チケットに起票しながら、そのチケットを解決する度に設計書をバージョンアップしていく。
たくさんのチケットを課題としてあげて、そのチケットを解決するほど、自然により良い設計になってくる。
ソースがたくさんのパッチで成長するように、設計書もたくさんの課題を反映することでより緻密になっていく。
リリース履歴には、構成管理の配下にある成果物の作業履歴であり、成長した履歴でもあるのだ。
| 固定リンク
「Redmine」カテゴリの記事
- 「Redmineハンドブック」は良い本です(2022.12.17)
- 第23回東京Redmine勉強会の感想~コミュニティは仲間から生まれて続く #redmineT(2022.11.06)
- 第22回東京Redmine勉強会の感想 #redmineT(2022.05.29)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- オープンソースERPパッケージiDempiereに対する派生開発手法の提案の資料が興味深かった(2022.04.24)
「ソフトウェア工学」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- プロジェクト管理やソフトウェアアーキテクチャの問題の背後にはトレードオフが隠れているのではないか(2023.02.18)
- デブサミ2023の感想(2023.02.11)
- ChatGPTにEclipseでEclEmmaとJaCoCoからカバレッジを出力する方法を聞いた(2023.02.01)
- DDPは品質管理に役立つのか(2022.12.13)
「チケット駆動開発」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
- タスク分割は親子チケットにすべきか、それともチェックリストにすべきか #redmine(2022.03.04)
- Redmineにメンション機能が入るらしい(2022.01.15)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
コメント