何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

バージョン管理がない世界

日経SYSTEMという雑誌に「新3種の神器を導入しよう」という記事がある。 調査で分かった!ITの現場「新3種の神器」 - 新3種の神器を導入しよう:ITpro また、この記事をまとめたムックも販売された。 ec.nikkeibp.co.jp

ここで三種の神器とされているのはRedmine、Jenkins、Chefの3つで言わなくてもご存知かもしれないがそれぞれプロジェクト管理、継続的インテグレーション、環境構築ツールの1つである。神器の中にはバージョン管理ツールが存在しないのである。 考えられるのは、既にバージョン管理ツールなど当たり前のように導入されていて、直面している問題は導入したものの使いこなせないとか、Gitだと柔軟すぎてぐちゃぐちゃになるとか、Subversionだとブランチ切りづらいなどのバージョン管理の枠内で収まる低レベルの悩みやどのように他のツールと組み合わせたら効率がよいかとか、顧客に価値を云々といった高レベルの悩みであろう。

私が直面している悩みは、現場にバージョン管理ツールが導入されていないことである。 未だにSubversionを使っているとかそういう話ではない。

私はプロジェクトの仕様書(Word)を元に作った試験項目書(Excel方眼紙)に試験の結果を書き込んだり、新たな試験を追加するといった業務に従事している。 仕様書は幾度も更新されているが、修正箇所はWordのフォントを変える機能を有効活用して赤字で書かれている。仕様書のバージョンはファイル名に掲載されているがどれが最新のものなのかは人に聞かないとわからない。だれがいつ更新しているのかもはっきりしない。試験は膨大な量を目視で確認する。試験項目書を埋めていると最新版の仕様書なるものがメールで送られてくる。

現場にバージョン管理ツールが導入されていないが、非公式にGitを入れて管理をしている。ExcelファイルはDiffを取るのが困難でバイナリファイルがコンフリクトした場合解決が困難であるので試験項目書の更新は慎重にやらざるを得ない。完了したら、commit、pushしたのち、メールで送る。メーラーにCcだったりToだったりで誰かの成果が送られてくるが最新かどうか、何が違うのかは一見してはわからない。

『チーム開発実践入門』に、こんな一節がある。

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

仮にあなたの上司や、あなたの組織がバージョン管理についての理解が浅く、旧態依然とした管理をしていたとしたら、それはテクノロジーのキャッチアップを怠った結果なのです。そのことをまず理解して、あなたからその文化を変えられるように努力をしてください。

なるほど、まずは文化を変えられるように努力をするべきなのか。なかなか困難な道になりそうである。 時間と売り上げ、クレームの有無にしか興味が無い状況でどうすればよいのだろうか。 基礎がないのに砂上の楼閣を建てようとするこの世界で、僕は何が出来るのだろうか。