gitとは何なのか・データ分析者の視点と心理的ハードル

Saturday, September 18, 2021

仮想通貨に関することだけでなく仕事に関することも書いていくことにしました ^^

エンジニアになりたい!という人が見ることになるであろう「Git」って使えるようになるまで結構大変なんですが頑張って使う必要あるの?という人も多いかと思います。

もちろん何をつくっているのかとかどういった開発文化があるのかなどによって変わってきます。

この記事ではソフトウェアよりもどちらかというとデータ分析とかの視点からGitがなんなのか、使う意味あるのか、心理的な難しさといったことを書いていきます ^^

gitとは

gitはいわゆるバージョンコントロールをするためのツールです。

仕事をしていてよくあるのが

  • report_v1.docx (Last Modified: 2021/08/01)
  • report_v1.1.docx (Last Modified: 2021/08/15)
  • report_v2.docx (Last Modified: 2021/08/30)
  • report_v2_new.docx (Last Modified: 2021/09/02)
  • report_v2_new_latest.docx (Last Modified: 2021/09/10)
  • report_v2.1.docx (Last Modified: 2021/09/08)

こんな状況です(v2.1よりv2_new_latestのほうが更新日が新しいのがミソ)。

gitは主にプログラムのコードに使いますが、文書などのドキュメントにも使います。

  • どれが最新なのか
  • 前のバージョンから何がどう変わったのか
  • いつだれが変えたのか

というようなことを記録していつでも確認できる、そして必要なら特定のバージョンに戻る、というようなことを手助けしてくれるのがgitです。

たとえば

OldNew
a = b + 1a = b + 2

のようにコードのどの部分がどう変わったかをわかりやすく比較してくれます。僕はgitを知らなかった頃はnotepad+のファイル比較機能を使ってました・・・

文書ならとくにバグとかを起こさないのでいいんですが、コードとなると成果物への影響が出てしまうのでバージョン管理は結構重要な課題です。

とくに複数人で開発するとなると同時にいろんな箇所で修正がされていくのでそれを人力で管理するのがほぼ不可能になってきます >_<

gitをデータ分析プロジェクトで使う理由

データ分析ならどんなデータをどう加工してそれにどんな処理をしてこの結果をだしたのか、という一連の流れがとても重要。

実際のプロジェクトでは何度も工程が修正されたり、実験的に新しい工程を試したけど元に戻したりとなかなか煩雑になりやすいのです(Excelが解読不能になるのはあるある)

なのでgitをデータ分析プロジェクトにも活用することで、しっかりと分析工程をバージョン管理し、分析結果の再現性をもたせて、修正や管理をしやすくすることができます(理想)

もちろんそんなに簡単じゃないです。データ分析といっても多くの業界ではExcelでがちゃがちゃやることが多くなりがち。

そしてgitはもともとソフトウェア開発向けにつくられたものなので、かゆいところに手が届かないとか、下手したら逆効果になったりもします。

個人的にはgitを使うためのスキルよりもgitを使うために強いられる働き方・文化的な変化が大きな障壁なんじゃないかと思ってます。

gitを使うために必要な働き方の変化

gitを実際に使うとなるとインストールしたり設定したりコマンド打ったりするんですが、それらはやってるうちに覚えます。

僕がgitを使うようになってから個人的に感じた問題点というか難しい部分は、「いろんな情報がオープンになる」ことです。

どういうことかというと、プロジェクトの他のメンバーに自分がいつなにをしたのかが丸見えになる、ということです。

たとえば分析のためのコードを書いたとしてそれをgitにセーブすると、他の人が見ることができます(いくつか対策はありますが)。なのでとくに経験が浅めのメンバーとかはいろんなことが気になってなかなかgitを使ってくれない:

  • 理解度の低さが露呈する
  • 汚いコードをみられたくない
  • 頭悪いと思われる

などなど、心理的にかなりハードルが高くなります。

普段のExcelとかローカルファイルだけでつくるならいいんですが、Githubとかにアップすると他の人に見られるから抵抗がある、というのは自然な感覚だと思います。

僕の同僚でも人によってはお構いなしにどんどんコミット(gitにセーブすること)してく人もいましたが、多くの場合にはやはり抵抗を感じるみたいです。

僕はこれがgitを浸透させる一番の課題なのでは?とか思ってます。

gitを導入するにあたって

僕はITではなくシミュレーションとかをやっているチームで働いてますが、ほとんどの人はgitを使ったことがなく、働き方も少々トラディショナルな感じです。

部署内ではgitを導入していこう!という感じなんですが、やはり先ほど言った心理的なハードルのせいでなかなかコミットしてくれない状況です >_<

gitを使っていくためには以下のような働き方・文化的な変化が求められると思っています。

  • ミスや間違いがあっても個人を攻撃せずにみんなで一緒に解決していく
  • いかに初歩的な質問でも快く・嫌そうな態度をみせずに答えて一緒に学んでいく
  • 相手の行動や決定をただ否定せずにどうしたらもっとよくなるかというアプローチをとる

いわゆる「心理的安全性」とかいうやつですね。たしかGoogleだかが提唱してた気がします ^^

まるで子育てみたいですがもし自分が新人だったとしたらこういった環境じゃないと気軽にgitは使えないですね >_<

まとめ

以上gitについて超ざっくり紹介して、どうやったらIT以外の業界にもっとgitを導入できるようになるのか書きました。

僕自身まだまだ勉強中ですが、ブログで書いていくことでまた理解が深まればいいなとか思ってます。

それでは ^^

あっちなみにこのブログもgitで管理してます ^^


記事をシェア・Likeしてくれると ^_^ です!


comments powered by Disqus