バージョン管理システム、使っていますか?

開発の現場で大きく2種類の声を聞くことが多い。

ひとつは、「バージョン管理は必須で、プロジェクトが始まったらすぐにリポジトリを作成する」という利用者の声。

もうひとつが「まったく使ったことがない」「使いたいけど、教育が・・・」「自分でバージョン管理(フォルダに日付・・・)」などの利用したことがない人の声。

自分が話を聞いたり、見たりした開発の現場では、特にエンタープライズ系の開発においてバージョン管理システムを導入していないところが多かった気がする。

バージョン管理システムとは

バージョン管理システムとは、プログラムを開発するとき、主にプログラムの版(バージョン)を管理するためのツールである。ファイルの階層構造全体はリポジトリと呼ばれる場所(サーバ)に置かれ、ファイルやフォルダに対するすべての追加、変更、削除を記録する。ファイルの中身に対する変更だけでなく、ファイル名、フォルダ名に対する変更も記録する。

リポジトリに記録された履歴は、古いバージョンのソースコードを参照したり、取り出したりすることができる。 これによって、過去のソースコードに対する修正内容、障害対応時の変更理由、リリース後に発生した不具合の調査など開発者にとってとても便利な機能である。

主なバージョン管理システムは、CVS,Subversion,git などのオープンソースから製品版まで多くの種類がある。

最近では、CVS,Subversionといった中央のリポジトリで管理する仕組みから、SVKgit(Linuxカーネルの開発で使用) など分散バージョン管理がはやっているようだ。

プログラム開発で縁の下の力持ち的に力を発揮するバージョン管理システムであるが、どのようなツールでも言えることであるが

  • 利用目的
  • 運用とルール

を決めておくことが重要である。

以前のブログ記事で「バグトラッキングシステムのワークフロー」について説明したが、新機能開発の時/障害対応の時とワークフローを決めておくことが重要である。 バージョン管理システムとバグトラッキングシステムを密に連携させて管理することで、ものすごい恩恵を受けることが出来ると思う。

バージョン管理とバグトラッキング(BTS)

バージョン管理とバグトラッキング(BTS)

「導入するためには上司を納得させないと・・・」「チームメンバーの教育コストが・・・」など障壁はあるかもしれないが、その障壁を乗り越えて余りあるメリットがある。 開発現場のリーダーや開発チームに提案してみようと考えている人はぜひ導入に向けて頑張って欲しいと思う。

参考になるサイト:

Comments are closed.