« Pandocでテキストファイルからドキュメント生成 | トップページ | git-flowのMercurial版hgflow »

2012/09/30

ソフトウェア構成管理はチケット駆動開発がサポートする

もう絶版になっているが「ソフトウェア構成管理の悪夢」の一節に、ソフトウェア構成管理の基本成分が書かれていたのでメモ。

ソフトウェア構成管理に至るまでの道のり: プログラマの思索

SW構成管理とはそもそも何なのか?: プログラマの思索

ソフトウェア構成管理がソフトウェア開発の作業手順に制約をかける: プログラマの思索

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構成管理を見直そう: プログラマの思索

それによって、チケット駆動開発がアジャイル開発を更に進化させるのではないか、ソフトウェア開発組織のあるべき姿を提示できるのではないか、と直感している。

Twitter / sugimoto_kei: 昨晩の関西IT勉強宴会で、@akipii さんの話を聞いて感じたのは、チケット駆動開発というのは、マネージャの管理ワークの大部分をメンバに移管する基礎を提供することによって、「管理」という仕事の性質と分担を変革しようとする試みではないかということ。単なる自動化じゃないんだよね。

Twitter / akipii: @sugimoto_kei はい、その観点でチケット駆動開発を体系化しようとしています。ERP導入によって女性の事務員が不要になり組織構成が変わってしまうように、チケット駆動開発は単なる管理作業の自動化だけでなくソフトウェア開発組織のあるべき姿を提示できるはずと思ってます

|

« Pandocでテキストファイルからドキュメント生成 | トップページ | git-flowのMercurial版hgflow »

プロジェクトマネジメント」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

廃止Mercurial」カテゴリの記事

構成管理・Git」カテゴリの記事

チケット駆動開発」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Pandocでテキストファイルからドキュメント生成 | トップページ | git-flowのMercurial版hgflow »