「プログラマが知るべき97のこと」の65個目のエピソードは、バージョン管理システムに関する話です。そろそろ都市伝説になってもいい気もしますが、バージョン管理システムが導入されていなかったり、導入していても適切に運用されていない開発現場は存在しています。自動的に履歴が残っているにも関わらずコードの削除を禁止しコメントアウトするルール、誰がいつ更新したかが解るメリットを捨てて共通のユーザ名での利用、システムテストが通り完成したコードしかコミットが許されないリポジトリ、バージョン管理システムを導入してながらソース(クラス)のリリースに関してリリース台帳と呼ばれるスプレッドシートと判子による管理など、それほど昔に経験した経験というわけではありません*1。 バージョン管理は、モダンなソフトウェア開発の3本柱の1本です。しかし、残り2本のユニットテストと自動化に関しては、バージョン管理ありきという側面