バージョン管理がない世界¶
2015-06-13 公開
バージョン管理は記憶力とファイル名、Diffは人力で色を変えるという地獄で働いているXaroさん
— Xaro (@CardinalXaro) 2015年6月12日
以前、日経SYSTEMSという雑誌に「新3種の神器を導入しよう」という記事があった。 ここで三種の神器とされているのはRedmine、Jenkins、Chefの3つで、それぞれプロジェクト管理、継続的インテグレーション、環境構築のツールである。 三種の神器にはバージョン管理ツールが含まれていない。 記事上で想定されているのは、バージョン管理ツール自体はすでに当然のように導入されている現場であり、そのような現場の課題は「導入したものの使いこなせない」「Gitは柔軟すぎて混乱を招く」「Subversionはブランチを切りづらい」といったバージョン管理の枠内に収まる低レベルの悩みや、ほかのツールとどう組み合わせれば効率がよいか、顧客にどう価値を提供するかといった高レベルの悩みなのだろう。
私が直面している悩みは、現場にバージョン管理ツールが導入されていないことだ。 いまだにSubversionを使っているという話ではない。
私は、プロジェクトの仕様書(Word)をもとに作成した試験項目書(Excel方眼紙)に試験結果を書き込んだり、新たな試験を追加したりする業務に従事している。 仕様書は何度も更新されているが、修正箇所はWordのフォント変更機能で赤字にして記載されている。仕様書のバージョンはファイル名に記載されているものの、どれが最新かは人に聞かないとわからない。誰がいつ更新したのかもはっきりしない。試験は膨大な量を目視で確認する。試験項目書を埋めていると、「最新版の仕様書」なるものがメールで送られてくる。
現場にバージョン管理ツールは導入されていないが、私は非公式にGitを導入して管理している。Excelファイルは差分の取得が困難で、バイナリファイルがコンフリクトした場合の解決も難しいため、試験項目書の更新は慎重に行わざるを得ない。完了したらcommit、pushしたのちにメールで送る。メーラーにCcだったりToだったりで誰かの成果が送られてくるが、最新かどうか、何が違うのかは一見してわからない。
『チーム開発実践入門』に、こんな一節がある。
仮にあなたの上司や、あなたの組織がバージョン管理についての理解が浅く、旧態依然とした管理をしていたとしたら、それはテクノロジーのキャッチアップを怠った結果なのです。そのことをまず理解して、あなたからその文化を変えられるように努力をしてください。
なるほど、まずは文化を変えられるよう努力すべきなのか。なかなか困難な道になりそうである。 時間と売り上げ、クレームの有無にしか興味がない状況で、どうすればよいのだろうか。 基礎がないのに砂上の楼閣を建てようとするこの世界で、私は何ができるのだろうか。