冗談じゃねーよ、まったくもー
ホームページを作成しているわけですが、いろんな手法があって、いろんな便利グッズがあって・・・という夢を抱いた結果、ものすごく効率の悪いことをしていたことに最近気がついたので、その日記。
ホームページなどの情報資産って移り変わりが激しいので、バージョン管理という手法で管理することが多いです。情報資産ってのはものすごい勢いで改変されるし、自分でも改変するんだけど、毎回毎回過去の記憶を呼び起こしながら、「どこまで作ったけ?」とか「あれ、どうだったけ?」と考えている時間が増えてくるわけですね。つまり、過去のバージョンと手軽に比較できるツールというのが開発されたわけです。
でね・・
そのバージョン管理ツールというのが2大勢力ありまして・・・
- サブバージョン
- GIT
さてさて、時はSONYが赤字経営でPS2の立て直しを図っていた頃、バージョン管理といえば、手軽にできるサブバージョンだったんです。何より手軽に使えるGUIツールというのがありまして、バージョン管理なにそれおいしいの?と指くわえるだけでも、その便利さに感動したんです。今では当たり前ですけどね。過去のバージョンをDIFれるっていうだけで、重宝しましたよ。しかも、過去のバージョンに戻したいってのも簡単にできてしまうわけ。だから、心置きなくチャレンジできるんですね(失敗したら過去に保存したバージョンに戻せば良い)だけなんで。
ところがどっこい
SONYがPS2の値下げ戦略に成功し、アメリカ軍が軍用スパコン作成するために300台のPS2をお買い上げした頃ですが、GITが流行し始めます。世の中の情報資産のバージョン管理がGITに変わっていったわけです。それがそんなに問題かって?問題なんです。同じバージョン管理を目的にしているのに、仕組みが全く違う。NINTENDOと湯川専務くらい違う。そもそもGITすげーって各IT雑誌とかネット上では言われていても、使い勝手(マウスで操作できない、できても日本語対応してない、UTF-8にしたら文字化けするなど)が非常に悪かったわけですね。
サブバージョンとGITの違い
サブバージョンってのは、開発者の資産をサーバー一カ所に集めて一元管理しましょうという理想を掲げたツールです。
さて、一見すると便利そうなツールですが、これもITあるあるなですけどね、ひとたびツールを導入するとそのツールに管理する人(振り回される人)ってのが出てくるわけです。この場合は、資産管理者(ビルド管理)と言います。各開発者は好き勝手に自分が作ったプログラムをコミットするわけですが、それを目を見張るようにして眺めている管理者が必要になるんですね。でも、開発者からすると管理者ってのはモニターを眺めているだけの人なんです。
ところがですね、資産管理者というのはあらゆる情報資産(C#、HTML,JavaScript、SQLなどなど)のビルドチェックや、若干の動作確認、それから本番機にデプロイするための手順作成をしなければ行けない上に、本番機をいじる人なので、ひとたびミスをするとめちゃくちゃ怒られるというですね、理不尽な目にあうわけですね。でも開発者からすると管理者ってのはモニターみてるだけの立場に見えるんです(1日3回くらい情報資産コピーしてビルドしてるだけでしょくらいの感じだし、言われてみれば否定もできない)。
というわけで、下手すると新人が資産管理なんてやらされるわけですが、めちゃくちゃスキルの必要な仕事。有能な上司であれば、有能な人を資産管理にあてがいたいわけですが、そこまで有能な人は開発者に回したいわけですね・・・。
で、少し仕組みの話をすると、サブバージョンは一カ所に情報資産に集まるので、各バージョンに唯一の連番が振られるんですね。連番なので、数字が大きい方が新しい資産で数字が小さい方が古い資産となるわけです。そんなこともあって、過去のバージョンに戻したり、他の情報資産と整合性を保つために新しい資産がコミットされるのを待ってみたりってのが、一覧でぱっと見でわかるという大きなメリットもありました。
一方、GITというのはビットコインでおなじみブロックチェーンという仕組みで情報資産のコミット履歴を管理します。簡単に言うと、すげーランダムな採番方式で情報資産が管理されるわけですので、番号だけ見ても古いのか新しいのかわかりません。
言い方を変えると、「なんぼ履歴いうても「古い」「新しい」はどうでもええ。情報資産同士の整合性を保ったまま各開発者がそれぞれ管理せい」という方式になるわけです。
一番発狂したのが開発者です。まず、GIT出始めの頃はマウス操作でできなかった。つまり、GITのコマンドを覚えないとダメだった。各開発者のPCにリポジトリというのを作らないといけないわけですが、サブバージョン時代に資産管理者に白い目を向けていた人たちがなじめるわけもなく・・と。
よく言われるのが、GITは分散管理です、ブロックチェーンという仕組みを使ってるのでなんかすごいです!ということなんですが、現場は混乱しますね(大笑)。ではな~んで流行したんでしょうね。
理由の1つとして、GITとという仕組みを使ったWEBサイトのGITHUBでしょう。GITHUBのWEBサイトに登録かなんかすると、自分が趣味で作ったようなプログラムから、世界で重宝されるプログラムまで全世界に公開(宣伝)できるようになるんですね。GITHUBのサイト管理者からすると、GITほどいいものは無いんです。だって、「情報資産同士の整合性を保ったまま各開発者がそれぞれ管理せい」というスタンスですから。開発者の自己責任でプログラムを公開してちょうだいね~~となるんですね。で、GITHUBの権威が大きくなってくると、GITHUBに登録されているプログラムを使用したい人が、GITコマンドを使ってダウンロードするようになってくると・・・。
それをですね、な~んも知らんくせに偉そうにこれからはGITの時代だ!!と言って、むりやりGITを使わせていた人たちってのはあったま悪いな~と思っていたわけです。
冗談じゃねーよ、まったくもー2
というわけで、自分がホームページ作る時は、使い勝手のよいサブバージョンでいいやと思って使っていたわけですが・・・
資産管理とホームページのデプロイの両方やるのってめちゃめんどくさい。やってることは、パソコンで作ったホームページの情報資産のコピーなわけですが、サブバージョン用にコピー(コミット)して公開するためにデプロイ(FTPなりSCPでコピー)という、どう考えても2度手間をしないといけなかったわけです。
続き>>