「Getting Git Right 〜 きっとできる Git セミナー」に行ってきた

9/30に行ってきた

感想

Git自体は以前から自分でちょこちょこと触っていたこともあり、仕組み自体は知っていた。
しかし、それを導入するメリットについてはイマイチ実感が湧いていなかった。
→結局のところ実際のチーム開発で使ってみないことにはなんとも言えんなぁ、と思っていた。
 
だが本セミナーではGit導入のメリットを噛み砕いて説明してくれたことで、「なぜGitを使うべきなのか」というところが自分の中で腹落ちした。
そりゃぁ皆使うはずだし、使わないところは置いて行かれるでしょう。
 
逆にそもそもGitって何よ?いう人は難しかったのではと思ったが、
最後のアトラシアン製品によるデモだけで十分な説得力があったのではないだろうか。
(Git云々ではなく現在の開発スピード感のあるべき姿として)
 
デモの動画↓
 
アトラシアンは想像するに、
製品開発チームが自分たちの負を自社製品で改善しているのだから、
そりゃあ説得力のある製品に仕上がるなと。
お金取れる製品ですね、ほんとに。

発見したこと

ローカル(リポジトリ)のメリット

1人で使ってると、オフラインで使えて便利?くらいにしか思っていなかったけど、
SVNの通信を冷静に考えてみると、いちいち同期とって、差分比較して。。それだけでも憂鬱だわ。
コミットのハードルが高すぎる。
 
でローカルリポジトリと話はそれるんだが、やっぱりソースコードはWeb上で参照できるようにしとかないかんよ。
コードレビュー依頼が別ブランチでチェックアウトしなきゃいけないとか泣ける。。(´;ω;`)ブワッ
スタッシュよさ気でした。
 
あとSVNだとレビュー対象が分かりづらくなりがち(リビジョンとかマージとか)だけど、プルリク単位でひとまとめにされてると見やすそう。

ブランチ駆動開発

すべてのフィーチャーに対してブランチを切れ!っつーことですな。
まず案件や課題を局所化して、確実にやっつける。
マネージメントや計画にかける時間って必要だけど無駄だから。。できるだけ少なくすべき。

安全性

全部ローカルにあるからサーバクラッシュしても大丈夫とかなんという逆転的発想。。
すべての開発マシンがバックアップになる。

履歴管理

結局多人数開発の場合、誰が・いつ・何のためにコミットしたかの情報が非常に重要。
でもSVNはtrunk回帰のブランチ運用を行う限り、履歴のトレースコストが高まる(通信も必要)。
正直、それだけでもメリットは大きい。

プルリクエストによるコードレビュー

これは実際に運用している知り合いもGit導入メリットとしてあげてた。
大体ワークフローって必然になっていないとやらなくなるんで、仕立てとして組み込みやすくなってるのはでかい。

まとめ

イベントをなくせってことなんだよね。きっと。
エンジニアリングは頭脳労働なんだからルーチンワークにかける時間はどんどん減らせと。
 
Gitが優れてるからGitを使うんじゃないんだよ。
今市場で勝てるサービス開発を行うにはスピードとクリエイティブなことにかける時間が必要で、
その一つの解がSVNではなくGit、ということなのではないかと。
 
リリース・マージ・コミット・デプロイ。。今のWebサービスにそんなことにかけてる時間はないのです。
「何を作るか」「どう作るか」に時間をかけよう。
既存のワークフロー云々じゃなくて新しいワークフローにしないとお話にならないってことなんだと思う。

おまけ

Gitを導入することによる痛みは間違いなく発生するし、導入後も色んなところでひずみが発生する可能性は高い。
でも、少なくともそれは未来を向いている課題/愚痴で、健全な姿だろうと。
 
Git使いたいなー。