ソフトウェア構成管理はチケット駆動開発がサポートする
もう絶版になっているが「ソフトウェア構成管理の悪夢」の一節に、ソフトウェア構成管理の基本成分が書かれていたのでメモ。
ソフトウェア構成管理がソフトウェア開発の作業手順に制約をかける: プログラマの思索
Excelのプロジェクト管理から脱却せよ~SW構成管理を見直そう: プログラマの思索
チケット駆動開発がもたらした新しい観点part2~トレーサビリティの拡張: プログラマの思索
Subversion・Git・Mercurialの比較: プログラマの思索
ソフトウェア構成管理の基本成分は4つある。
1・コンポーネントのバージョン管理
2・開発環境ん管理
3・ビルド管理
4・工程管理
1つ目は、ソフトウェアの各部位のライブラリのバージョン管理。
特定のLinuxディストリビューションのgccのバージョンが古い理由は、SCMの負の遺産だろう、という例がある。
90年代から始まったホスト中心の開発からクラサバ・Webへのオープン開発への移行という歴史的背景からすれば、DB・Webサーバー・プログラミング言語・フレームワークなどの各種バージョンを組み合わせて実装する時のサポートに相当するだろう。
2つ目は、開発者の環境におけるバージョン管理の実装。
本では、CVSが相当すると書かれているが、現代ならば、SubversioやGit、Mercurialが相当するだろう。
3つ目は、コンパイルとデプロイ、リリースの管理に相当する。
Cのmakeが例にあげられていたが、現代ならば、AntやMaven、rakeが相当するだろう。
この役割を担う人は、「リリースOKかNGか」を出すのがその責務になる。
今ならば、Jenkinsがその役割を自動化しているだろう。
4つ目は、要件の変更、ソース修正の変更管理、ドキュメント整備などが相当する。
これらの作業の管理のために、CMマネージャ(構成管理マネージャ)という役割を作り、CMマネージャはプロジェクト内部の交差点に立つ交通整理役を担う。
普通は、この役割は、バージョン管理ツールや開発者、QA、プロジェクトリーダーなどの各種役割に分散されているだろう。
CMマネージャは普通はライブラリアンと呼ばれる役割に相当するだろうと思う。
最終的なソフトウェア製品をリリースする役割を担うだけでなく、製品のバージョン管理や変更管理にも責任を伴う。
「ソフトウェア構成管理の悪夢」が出版されたのは1999年なので、今から読むとかなり古くなっている部分もある。
特にCMマネージャ、ライブラリアンの役割は、現代ならば、おそらく消え去る役割だと思っている。
製品のバージョン管理や変更管理を支える作業を人手で行なっていた時、その役割を担う専門担当者が必要で、開発者やリーダーから情報を収集し、管理していた。
でも、今は、GitやMercurialで高度なバージョン管理が行えるし、ビルド管理はJenkinsが代用しているし、要件や仕様やソース修正の変更管理はRedmineやTracなどのプロジェクト管理ツールが代用しつつある。
つまり、チケット管理システムがCMマネージャの役割を担当することで、作業を自動化するだけでなく、その役割を透明化してしまった。
他にも、XPのトラッカーの役割はTiDDがサポートする: プログラマの思索にも書いたが、XPでも、プロジェクト内部の進捗情報を収集する役割としてトラッカーという担当者がいたけれども、その役割はチケット管理システムが吸収した。
そんなことを考えると、昔は人力作業でやるしかなかったために、プロジェクトの管理作業を複数の役割を持つ担当者に細分化してサポートさせていたが、チケット駆動開発はそれらの作業者を吸収して、少人数のチームでも効率よく開発できる環境を提供しようとしていると言える。
Excelのプロジェクト管理から脱却せよ~SW構成管理を見直そう: プログラマの思索
それによって、チケット駆動開発がアジャイル開発を更に進化させるのではないか、ソフトウェア開発組織のあるべき姿を提示できるのではないか、と直感している。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある(2022.06.19)
「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)
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
- 第21回東京Redmine勉強会の感想 #redmineT ~Redmineは業務も組織も包み込む柔軟性がある(2021.11.28)
「チケット駆動開発」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(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)
コメント