Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

Gitおじさん、リベンジ.

Git SIer Python

以前、SIerな職場にGitを導入して華麗に失敗したというエントリを書いた。
今回はそのリベンジした結果について書こうと思う。

tl;dr


前回はSVN派のGit反対勢力の懇願もあってGit導入に失敗したが、今回は開発チームではなく弊社のプロパ相手に導入を進めたらいい感じに導入出来たという話。(僕の所属するようなSIerでは開発チームの下流部隊の多くは下請け企業で構成されていて、弊社プロパは上流工程に位置していることが多い)

前回の反省


Git導入に失敗した理由としては以下のような理由があった。

  • Gitを学習する時間がなかった
  • コンフリクトの結構痒いところに手が届くエンジニアが当時はいなかった
  • SVNで何年も開発している人で構成されていた

結局のところそれらを吸収できなかった僕の力量不足なんだけど、当時の僕は初めてのゼロベースからの開発を担当したということと、設計のほとんどを僕が書いてコーディング量も結構あったので他の人のGit問題を解決する余裕は全く無かったというところがあった。要は僕の力量不足なんだけど。

今回のGit導入の背景


導入というと大げさなんだけど、今回は弊社のプロパ向けにGitを浸透させるという目的で活動した。弊社のプロパの場合、基本的にプログラミングを業務でやらないのでバージョン管理についても特にこだわりはなく、すんなりとGit使えるようになるんじゃないかという考えがあった。また、去年の年末あたりからになるが、僕のいるチームはデータ解析チームとして動き出したこともあり、「全員Pythonを書けるようになろう」というお達しがボスから下の人間に通達されたので、プログラミングを推進するような勉強会などの活動をうにゃうにゃやっていたという背景がある。Gitはそこに無理やり組み込んで推し進めた。

GitLabの導入


ボスから「プロパ全員、Python書けるようにするにはどうしたらいいか」みたいな相談を受けてからまずやったことは、GitHubライクなコード共有プラットフォームのGitLabの構築だった。

github.com

構築といってもAWS上のEC2にぶち込んだだけなんだけど、特に誰の許可を得るとかなく勝手に立てて「GitLab、立てたよー」とアナウンスした。(こういうことを勝手に独断でやっても文句を言われることはないというのは、何かを進めるにおいて重要なことだと思う。)
GitLabの目的としては二つあって、一つは"コードの共有"ともう一つは"ナレッジ共有のためのスペースとしての提供"だった。コードの共有については、これからプログラミングを推めていこうという動きの中で、教材としてのサンプルコードの受け渡しや書ける人のコードを簡単に読める環境という意味でも必要なものだと思って立てた。あとナレッジの共有については、僕の職場はこれが全く出来ていなかったので、GitLabのIssueにでも溜めていけばいいんじゃないかという考えで利用することにした。
GitLabをアナウンスしたあと、僕がちまちまとルール作りをしたり、導入フローをWikiに書いたりと地道な活動をしていたんだけど、やっぱり最初はあまり使われなくて、僕と一つ上の先輩の二人が遊びで書いたコードを共有したり、プライベートプロジェクトを作ってあーだこーだするためのみに利用されていて、二人だけで盛り上がるなかなか切ない期間が続いた。いつ他の人が入ってくるかなぁと静観していたが、一向に入ってくる気配がなかったので、次の一手を打った。

Python/Git勉強会の開催


ボスから「プログラミング出来るようになれ」とお達しが下っても、なかなかすぐにガリガリとコード書くかと言われるとそんな機会は簡単には作れない。GitLabを立てたからといって、コードを書かない人には無縁とも言えるツールなので、まずはプログラミングを書くようになってもらって、その過程でGitを使ってもらおうということにした。まずは開発環境を作ることから、ということで、Python/Gitの環境準備編という形でハンズオン式の勉強会を開催した。参加者を心配したが僕の担当にいるメンバーはほぼ全員参加した。
環境準備としてやったことは、PythonはAnacondaを入れてJupyter-Notebookを使えるようになる、ということと、SourceTreeを入れてGitLabとの疎通が出来るようになる、という2テーマを行った。そして環境準備が整ったら実際にデータ解析をしてみようということで、「IPythonデータサイエンスクックブック」のデータ解析の章にある「ロジャーフェデラーダブルフォルト率を可視化する」というトピックをJupyter上で行った。

github.com

結局第一回目は環境準備で潰れてしまったので(すんなりと終わると思っていたけどやっぱり環境準備はいろいろあった)、二回目を設けて全員のPythonを書く環境づくりを終わらせた。その中で簡単にGitの概念の説明や必要最低限のコマンドの紹介などを行い、GitLab上に立てた勉強会プロジェクトにPushするまでをゴールとして、プロパのほとんどにGitを扱えるようになってもらった。その後は今でも絶賛やっていることなんだけど、上記のクックブックの各章の輪読会を毎週担当を変えて行っている。データ解析とPythonをコードを書きながら学び、GitLabにどんどん教材とサンプルコードを溜めていこうという試みになる。

Conclusion: Gitおじさんとして


とりあえずプロパはGitの触りを使えるようになったと思う。ここから先は各々次第なので僕はノータッチの予定だが、コードを書く機会も増えてきたので自然といろんなGitコマンドを覚えていくんじゃないかと思っている。いずれはSVN派の開発チームにも導入して完全にGitに移行したいと考えているが、それはまた虎視眈々と機会を狙っていこうと思う。
GitおじさんとしてGitLabを導入できたし、ぼちぼち周りの人がGitを使うようになってきたので、ちゃんとGitおじさんになれたんじゃないかと感じている。たとえば僕のチームだとGitLabのIssueをベースにIssue駆動開発というスタイルでアジャイル開発を行っているが、これもGitおじさんとしての成果の一つじゃないかと思ったりしている。とはいえ、まだまだ使ってくれていない人が多いので、今後もGitおじさんとして啓蒙活動に勤しんでいきたい。

現場からは以上です。

Remove all ads