Gitアドベントカレンダー10日目です。
10日目で区切りもいいので少しネタ臭い内容を。
攻め文句
「継続的リリースを支える運用フローに、gitflowは最適」
現場でgitを押す理由としては、ほんとにコレに付きます。学習コストを差し置いてでも導入したい、という点にまずコレが挙がるんじゃないでしょうか?
機能ブランチとチケット駆動開発の流れ、それにSVNのチェリーピックを露骨に危険&手間とアピールしていけばgitの重要性は認識してもらえるはず。
「世界中で採用されているgithubで、ソーシャルライクな社内開発コミュニケーションを」
お金に余裕のあるところでは、是非ともgithub enterpriseを検討してもらいましょう。開発はコミュニケーション命、的な話でコミュニケーションの重要性を説くといいと思います。
開発者としても、Web上でソーシャル的にコードレビューなどを行えるのは非常に助かるものです。
いきなり費用が...というのもアレなので、あくまで将来像の一つとして提示する程度が現実的かと思います。
「オープンソースコミュニティを支える技術として、プラットフォームを問わない利便性」
この辺りはいささか微妙なところですが、まぁWindowsでも最近は大分使えるようになってきたみたいなので。
技術分からない上層部でもオープンソースとか言うとなんかビビッと反応シてくれるような人種もいるようです。
守り
「でも新しい技術覚えるのは、現場の負担が高そうで…」
まぁ間違いなく来る文句です。このあたりへの返しは、言われる前に自分で予防線貼っておきたいものです。
学習コストに対する返しとしては、
- 動作が軽快
- マージが賢い
- 中央リポジトリの管理が楽
- 継続的にリリースを行う場合にはgitflowの利点を
などを利点として挙げる感じでしょうか。SVNがぶっ壊れたタイミングとかで話を持ち出すといい感じに通るかもしれません。
「勉強するのとか大変そうだし、めんどくさい…」
現場からの文句も湧いてくるかもしれません。定期的にGIT勉強会を開くのがいいでしょう。社内Wikiなどにいろいろ学習サイトのリンクを貼ったりしておくのもいいかもしれません。
このあたりも事前に導入フローとして組み込んで提示しておけば上の人は安心するみたいです。何事も先手必勝です。
保身
この辺大事。言い出しっぺはなんかあった時に責任問われかねないので。
SVNとの違い
セキュリティ周りの違いはかなり重要。
SSHとか中央サーバのrootパス管理とか適当にしてるところだとまずいかも。
Gitosisとか入れる余裕があるならいいのだけれども。
所詮はツール
所詮はツールですので、GITを導入した所で劇的に何かが変わるというわけではないです。
品質管理なんてものは根本は運用の問題ですので、GITを導入して楽になる「可能性」はあっても、運用体制を合わせて変えていかなければ何も変わらならないです。
何も変わらないどころか無駄に「学習コスト」の支払いをして、そのままおじゃんという可能性も。
SVNでやってた以上の事を求めない
GITに移行したら劇的に改善する、みたいな勘違いでよくあるパターン。何か無理が出た時は「SVNでそれできてたかな?」みたいな事を良く考えましょう。
運用を改善するのは必要な命題ですが、「改善できない」をGITのせいにされるのはたまったもんじゃないです。
あとやっぱりなんでもかんでも技術に求め過ぎない事。運用でカバー出来る所は運用でカバーしてもらうのが一番楽です。
あとがき
継続的開発を行う企業ではGIT移行は確かに魅力的ですが、そうでない企業ではできるだけ慎重になりたいところです。
あと、SVN=GIT相互運用みたいなパターンはなし崩し的にコケる可能性が高いので、タイミング見計らってガラッと変えてしまった方がいいです。
クロスコミット支援ツールとか導入できるなら別ですけど。
まぁ何にしてもそういうGIT関連ツールを扱い慣れてるとやっぱり強いです。社内でそういう人材いればいいんですけどねぇ…
以上、SVN=GIT移行の現場から、でした。
# Qiitaでやる内容じゃねぇなぁと後から反省しました…