githubに変えてプロジェクトの本質を学んだ話
今さら感がすごいですがやっぱgithubは良かったよ!!
って話です。
ちょうど一年前、私は権力の強い上司にgithubの素晴らしさや導入するべきと適当な理論をおしつけて全サービス移行した。
「githubにするとうちのエンジニアの価値あがりますよ!!」
「プルリクってやばないすか?自動テストからのデプロイいけるんすよ」
まぁ私が使い方やらツールやらgitflow(うちはgithubflowでなくgitflowにした)やら全部調べてやったんだけど、いろいろ問題はあった(ほとんど使い方がわからねぇ系の不満。いやググれや
プルリクも強制してsvnのコミット無双無法地帯状態から脱却出来たけどスピードが遅くなるとかマージ出来ないとかsubmoduleなんぞや?みたいなのが多すぎてうちのエンジニアには向いてなかったのかな?と思い始めてた。
そのとき会社で大事件が起きてその事件の犯人(ボキャブラリーないんで言い方悪い)は辞めてしまった。
「なんでこんなの組んだの?」
「いやありえないでしょ」
「普通に向いてないよこれ」
みたいな話が出てきていてもいられなくなったのだろう。
svnだからってわけじゃないけど「出来ました!!」がプログラムの成果になってその過程はどんな手段でもいい(レビューしてないし)ので責任が一人に集中してしまう。
それって最悪でエンジニアのモチベーションは下がるし、バグ怖くて影響ないないコード(よくSIerが書くやつ)を書いたり、新しい技術は得体しれないからやりたくねーだったり何も成長しない。それがgithubのプルリクでこいつ少なくとも見てんだからこいつも責任あるよね?感が出て通常やりたくない作業とか嫌がらずにやってくれたり、こんな特殊な書き方してやろー(主に私がやる)とかで「こんな書き方出来んの?」とかで技術共有出来たりとかかなり良くなった。いわゆる老害を安心させる一つの手段にも使える。
まぁここまでふざけて書いたけど、チームでやる仕事である限りある程度の責任転嫁は必要になるということ。githubじゃなきゃダメってことはないけど、その機能を使ってプロジェクトを最適化することはアプリケーションのあり方だと思う。「責任はみんなでおってね!!」って言っても伝わらんしね、仕組み化大事。
プロジェクトを最適化するのは仕組みでもなく技術でもなく人間関係だったことをgitから学んだ。
ps:まだフリーランスになってない笑