Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

SIerでGit導入するのに華麗に失敗した話。

tl;dr


今年の6月からPythonでデータ解析や機械学習使って面白いことやるぜ!ってプロジェクトにアサインされたのだけれど、珍しくプロジェクトの立ち上げ時期に入ることができたのでいろいろやろうと動いていた。その一つにGit導入があって、これは僕が声を上げる前から既にGitでやろう!という流れがあり、プライベートでGit使っている僕がGit導入を推し進める形となった。が、失敗した話。

僕のGitスキル


はっきり言って、そんなにない。プライベートでGithub使っているのでGit使ってはいるけれど、だいたい一人で使っているので基本、add, commit, pushしか使わない。その他のコマンドを使うこともあれど、Git使って多人数で並行して開発していく経験はあまりなかったし、いざ仕事で使おうとなった時にさっと開発フローを提示出来るほど僕はGitの知識もスキルも持ち合わせていなかった。会社の同期相手にGit勉強会を開いたことがあって、人に概念的な話や基本的なコマンドは話すことができるが、じゃあ開発環境整備できるかって言うと別の話であった。

なにをやったか


まずAWS EC2にGitoliteの環境を作った。Gitoliteは非常に簡単にGit環境を作れるツールで、ユーザの管理がとても楽に出来ちゃうツール

github.com

こいつでさくっと環境を作って、開発チームの人に実際に使っていってもらった。アジャイル開発が既にスタートしていたので「使い方はとりあえずググりながら使ってみて」といった感じでとりあえず運用に乗せた。そして次はGitの運用フローを作ろうと思った。

運用フローの挫折


タイトルに挫折と書いたのでお分かりだと思うけれど、僕が運用フローを作れなかったのが破綻の原因だった。なぜ作れなかったかというと、この時期に設計が始まって僕が運用フローを作る方に手が回せなくなったからだ。Androidアプリを作るフロントエンドは違う会社の人たちがやっていたのだけれど、Pythonのバックエンドは僕がだいたい設計を担当していた。しかも恥ずかしいことに、これまでの2年というキャリアの中でまともに設計を経験したことがなかったため、吐きそうになりながら設計をしていた。また、これまで既存踏襲の答えがある程度ある上でのシステムを担当していた人間だったので、新規開発の設計はなかなかに苦労したという背景がある。
つまり僕はここで開発環境に思いを馳せる時間を失ってしまったのだった。ここで運用フロー設計の放置が確定した。
そこからは基本設計-詳細設計-製造までをギリギリの状態でやっていたため、結局Gitの運用フローについて触る機会はなく、とある問題が発生する。

SVNに変えたい。。」

バックエンド側は僕と協力会社のベテランエンジニアの人とあと数人で作っていたのだけれど、途中でこのベテランエンジニアの人から「SVNに変えたい。。」という声が上がった。というのも、この人はGitを使ったことがなく(というか僕以外Git使ったことのある人はいなかった)、競合やその他いろいろでGitに怒られたりした時に都度都度ぐぐってやっていくことに開発スピードが出ないという不満があった。これは導入時期なのでしょうがないことだけれど、当時の開発スケジュール的には常にギリギリの状態でコーディングを進めていたので、スピードが出ずにバージョン管理で時間を取られることは死活問題であった。また、エディタはEclipseで統一されていたのだけれど、GitとEclipseの組み合わせがイマイチであったため、これまで使い続けていたSVNに戻したいという声が上がることとなった。

Gitおじさんになれなかった


結果、さくっとSVNに鞍替えすることとなった。そのあとは慣れていたSVNということもあり開発はスピードを取り戻していき、それ以降特にバージョン管理で悩むということは少なくなった。

僕はGitおじさんになれなかった。
正直自分のGit知識が足りなかったということと余裕が無かったということもあり、開発メンバーで発生していたGit問題を解決することができなかった。また、前述しているが、運用フローを整備できずに開発がスタートしたために残念な結果となったのだと思う。当初はGitの使い方について勉強会を開こうとしてたりいろいろ考えてたんだけどね。それも叶わず泡となり消えた。実はGitHubも導入しようと動いていた時期があったのだけれど、これはお金がかかるよねということもあり、ネットワークの問題もあり、そして何よりスケジュールの問題があり、導入を断念したというものもある。失敗し過ぎで泣けてくる。

けどやっぱりGitおじさんになりたい


GitからSVNに変えた時、今回は慣れているSVNにして、次期でGit導入しようという話にもなっていたので、再挑戦しようとしている。
今開発は各処理単位で担当者を振って開発を進めていたため、同じモジュールを複数人が並行して開発するなんてことは基本起こり得ず、Gitの旨味がないのではとも言われたことがある。これについてそうだね、という感じなのだけれど、僕の構想ではGitを使うことで旨味が出てくるというものが既にある。一番実現したいことは、開発が完全分離されているフロントエンドとバックエンドの開発統合がある。ここは特にGithubやGitlabなどを使って進めていきたいなぁという想いがあり、虎視眈々ともう一回Gitおじさんの位置を狙っていこうと考えている。

まとめ


要するに僕にスキルがなかったため失敗したんだよ、開発フロー整えるのって難しいよね、けど諦めないよ、って話でした。

Remove all ads