バージョン管理を考える
バージョン管理システムとは、コンピュータ上の情報の変更を管理し、それぞれの変更に目印をつけ、変更前に戻れたり、変更を取り消したりすることができるものです。
たとえば
Linux のコマンド操作で、
mvコマンドを失敗してやりなおしたい場合がありませんでしたか?
そんなときに、バージョン管理システムを使えば、コマンドを打つ前に戻ることができます。 操作をやりなおしたい、過去に戻って違う道を選択したい。そんな後悔がなくなるツールがバージョン管理です。
バージョン管理ができるようになると、各段に 「出来る人」 になれます。
失敗をなかったことに出来るからです。
そして、バージョン管理ができると、他の人との情報共有もスムーズに行うことができるようになります。
つまりバージョン管理ができると、ちょーかっこいいです 😄
バージョンを管理するための仕組みとしてCVSやSubversionやGitがあります。
具体的に今回使うバージョン管理システムは、Git と GitHub :octocat: です。
ツールを触る前に まずは、4つのグループワークを通してバージョン管理脳にマインドセットしましょう。
キーワード
- 情報
 - 変更
 - 情報と変更の履歴
 - 情報と変更の共有
 
以上のキーワードについて考えることが、バージョン管理脳になるコツです。
情報とは何か
世の中には、様々な情報があります。どういった情報が身の回りにあるか、考えてみましょう。
👀 グループワーク ( 作業 5 min + 発表 1min )
- グループで「今回の研修にまつわる情報」についてブレーンストーミングする。
 
- リーダが内容を取りまとめながら行ってください。
 - 研修にまつわる情報の例
- 研修のスケジュール
 - 講師のプロフィール
 - 研修資料
 
 
- グループで、ブレーンストーミングした内容を発表してください。かぶってもいいです。
 
グループワークの目的は、バージョン管理対象である「情報」について注目することにあります。バージョン管理脳になる準備です。
変更とはなにか
「情報」は「変更」されます。変わらないものは、なかなかありません。
では、「変更」について考えてみましょう。
👀 グループワーク ( 作業 5 min + 発表 1min )
- グループで「情報の変更」についてブレーンストーミングする。研修の内容だけじゃなくてもいいです。
 
- リーダが内容を取りまとめながら行ってください。
 - 例
- スケジュールの変更
 - 研修資料の変更
 
 - グループで、ブレーンストーミングした内容を発表してください。
 
グループワークの目的は、バージョン管理対象である「変更」について注目することにあります。これもバージョン管理脳になる準備です。
情報と変更の履歴
次に「情報とその変更履歴」に注目します。
👀 グループワーク ( 作業 5 min + 発表 1min )
- グループで「管理される必要のある変更履歴」についてブレーンストーミングして下さい。「履歴が管理」されない場合どうなるかも一緒に。
 
- 例
- 銀行の入出金
- 管理されないといつどんな振り込みがあったかわからない。
 
 
 - 銀行の入出金
 
- ブレーンストーミング で洗い出した「管理される必要のある変更履歴」について「管理方法」を考えて下さい。
 
- 例
- 銀行の入出金
- 通帳記帳
 
 
 - 銀行の入出金
 
情報と変更の共有
最後に「情報とその変更を共有する」というところに注目します。これができればバージョン管理の達人としての心構え準備が完了します。
👀 グループワーク ( 作業 5 min + 発表 1min )
- グループで「共有する必要のある変更」についてブレーンストーミングして下さい。「共有」されない場合どなるかも一緒に。
 
- 例
- メールアドレスの変更
- 他の人が連絡出来なくなる。
 
 - 飲み会会場の変更
- 誰も来なくなる
 
 
 - メールアドレスの変更
 
- ブレーンストーミング で洗い出した「共有する必要のある変更」について「共有方法」を考えてさい。( 1グループ 2分 )
 
- 例
- メールアドレスの変更
- 電話張にある連絡先に一斉送信
 
 - 飲み会会場の変更
- 一人一人に電話で口頭で伝える
 - 一人一人にメールで情報の変更内容を送信する
 
 
 - メールアドレスの変更
 
まとめ
何かが変わって、物事が進みますね。
その中でも情報化社会が進むこの社会で、情報の変更を管理することはとても大事なことです。
情報がいつ、どう変わったのか。
情報とその変更を管理することをバージョン管理といいます。
今回扱うバーション管理システム Git と GitHub :octocat: です。
主にプログラムコードやそのファイルのバージョンを管理します。
余談
とある仕様書の例
- 仕様書ver2_20150401.xls
 - 仕様書ver2.xls
 - 仕様書ver2(最新).xls
 - 仕様書ver2(修正前).xls
 - 仕様書ver2(修正後).xls
 - 仕様書ver2(修正後)(2).xls
 
「ど、どれが最新ですか。。」
大事な仕様書が、こんな風に管理されていたら、がっかりですね。