むかしバージョン管理システムの本を書いたことがある私に「ソフトウェア構成管理」について教えて欲しい、という相談がありました。
私は基本的にソフトウェア開発で生計を立てているわけではなく、手段としてのソフトウェア開発における、技術と人の問題に興味を持ってきました。
直接のきっかけは「バグのないソフトウェアを目指して」というテーマで読みあさった一連の書籍です。
そしていまの私も、ソフトウェア構成管理については、昔の読書の知識からあまり進歩していません。
いまは基本的にオープンソースの世界をよく見ていますが、最近は「ソーシャルネットワーキング型」の開発が流行っていて、「ソーシャル化するOSS開発者たち」に書かれている github を私もときどき使っています。
いわゆる「デザインパターン」や「リファクタリング」は手段としてときどき使うのですが、正直な話、私のまわりでは「使い捨てになってしまうスクリプト」ばかりの昨今です。
「どのようなデータやソースコードが共有されたり再利用されたりするべきか?」
「そもそもソースコードの手前のノウハウを共有・再利用するべきでは?」
「ドキュメントはどうなのか?テストやデモのプログラムは?」
などなど、出発点から話題は尽きません。。
そういえば、皆様は作業ファイルをどのようにディレクトリに分けておられますか?
私の基本パターンは、まず home の直下は 2009 みたいな年号ディレクトリです。
(数カ月で研究室を去っていく学生さんには分からないでしょうが、5年も10年も同じLinux環境で仕事をしていると、年号でリセットするしかなくなるのです。。)
その下は、かつては tex とか perl といったファイルの種別であったり、プロジェクトの内容に由来する名前であったり、一緒に仕事をしている人名に由来する名前だったり。。
ですが最近、git や mercurial などの分散バージョン管理をよく使うようになったので、
「年号」/「リポジトリの場所」/「プロジェクト名」
というパターンになりつつあります。具体的には github に clone した、heroku に push している、職場のマシンから clone したものである、などなど。。
ようするに「どこかに書き戻してしまったら、この作業ファイルは消してもよい」ということが明確になるべきです。
CVS や SVN の時代には「あらゆる作業ファイルは、commit してしまったら消去可能」ということが自明だったのですが、今はちょっと気をつけてやらないと「どこに戻せばいいのか」わからなくなりますからね。。
バージョン管理とは「不要なファイルを安全に消す方法」です。そのことをバックアップと結びつけて考察したのが以前の記事です。
閑話休題。教科書的な参考書は下記だと思います:
Code Complete第2版〈上/下〉―完全なプログラミングを目指して
Steve McConnel
日経BPソフトプレス
スティーブ マコネル (単行本 – Mar 2005) の ‘Code Complete第2版〈上〉―完全なプログラミングを目指して’ を Amazon でチェック!
スティーブ マコネル (単行本 – Mar 2005) の ‘Code Complete第2版〈下〉―完全なプログラミングを目指して’ を Amazon でチェック!
いかにコーディングするべきか、という書法の問題だけでなく、ソフトウェア開発の生産性に関する研究成果が網羅されています。私は初版を読んで「よくここまで体系的にまとめてくれた」と思いました。初版は Visual Basic に具体的なコードの事例が偏っていたのですが、第二版は Java などのコード例が増えました。分冊になって手頃な厚さになりました。
ソフトウェア開発の定番教科書とは言えるでしょうが、ソフトウェア構成管理に絞った本ではないです。
この本の「構成管理の参考文献」に無償ダウンロードできる論文としてLittle Book of Configuration Managementが紹介されています。
「ソフトウェア構成管理」というタイトルで、私がむかし読んだ(教科書的とは言えない)下記の本は、ひねくれたアプローチではあるものの(元祖「アンチパターン」の続編として)なかなか面白く読めました。岩谷 宏さんの翻訳。絶版だそうです。
ソフトウェア構成管理の悪夢―アンチパターン
出版社: ソフトバンククリエイティブ (1999/10)
ISBN-10: 4797311304
ISBN-13: 978-4797311303
William J. Brown, Scott W. … の ‘ソフトウェア構成管理の悪夢―アンチパターン’ を Amazon でチェック!
日本の Amazon によれば類書で下記がおすすめだそうです。私は読んでいませんが、日本語のウィキペディア「ソフトウェア構成管理」の文献にあがっていますね。。
パターンによるソフトウェア構成管理
出版社: 翔泳社 (2006/10/24)
ISBN-10: 4798112593
ISBN-13: 978-4798112596
ステファン・P・バーチャック, ブレッド・アップルトン… の ‘パターンによるソフトウェア構成管理 (IT Architects’ Archive―ソフトウェア開発の課題)’ を Amazon でチェック!
関連製品(説明を読むと具体的な機能が理解できる?):