Upgrade to Pro — share decks privately, control downloads, hide ads and more …

git変更の可視化 #TechLunch

git変更の可視化 #TechLunch

git変更の可視化
2013/07/24 (水) @ Livesense TechLunch
発表者:松永 一郎

E60aa4f80303f3f386898546ddb3686a?s=128

Livesense Inc.
PRO

April 21, 2014
Tweet

Transcript

  1. 帰って来た、 みんなが使うべきOSの オルグ FreeBSD可愛いよFreeBSD

  2. 毎度毎度プレゼンテーションがそっけなくてすいま せん。 デザイン力皆無、質実剛健って事で許して下さい。

  3. おぼえていますか? さて、 今Qのシステム開発部のドグマを

  4. そうですね。 Growth最大化: commit & deliver ですね。

  5. ということで当初の予定を 変更して、

  6. commit&deliverの 見える化 それっぽいtoolを作ってみた。 gamification?

  7. commit & deliverの見える化 livesene システム開発部のエロいエラい人の御言 葉で エンジニアは 基本的には 手を動かしてなんぼ がありますね。

  8. エンジニアの仕事は • エンドユーザーとの調整 • チームのとりまとめ • 調査 などもあり、codeをどれだけ書いたかのみでは計 れないけれど、それも一つの指針になるんじゃな かろうか?

  9. まー本来のcommit&deliverとは意味が違うけど、 • どんだけcodeを書いて(commit) ◦ codeを書いた量 • どんだけ機能を実現してきたか(deliver) ◦ pull req.をこなした量

    という解釈を一旦強引にさせてもらいます。
  10. という事でcodeへの影響具合をdb化してみた 軸として • commit情報 • commit時の各fileの変更具合 • pull reqによるmerge情報 をdbに入れてみた。

    なんかOSSで既にありそうだけど車輪の再発 明たのしいれす
  11. ちょっと工夫した所 • 対象repositoryとかbranchとか無視するべきfile とかはymlで外出しにして、柔軟性はある程度 確保。 ◦ mail addressのalias設定が出来る ◦ 複数のbranchを追える

    ◦ 集計対象外(例えば3rdなlibや自動生成fileやlogなど)を 設定出来る • dbの作成とdb作成と集計(表示)処理は分離。
  12. 表示もとりあえず作ってみた とりあえず、直近一年の月毎の • こなしたpull req.ランキング • 変更行数ランキング • commitコメントの平均行数ランキング を作ってみた。

    http://git-statistics.matsunaga.local.livesense.jp/tallies
  13. 他に集計軸として • 個人を軸に毎月の成果を可視化して自分の生 産量を把握してみるとか。 • commitする際の変更file数からcommitの粒度 を出してみるとか(git流に整形してからpull req. 出してたら集計出来ないけどね) •

    commit毎の変更行数からの集計じゃなくて、 pull req.毎の変更行数で出してみるとか(これ ちょっと面倒だし、今のdbのままでは多分無理) • とかとか。
  14. いいわけ 本当はhtmlで吐いてconfluenceにblogとして投げ ようかと思ってたけど、表示する方が実装が面倒 臭くなさげなんで、viewを一応書いてみた。 まー本当にひどい見栄えですが、気にしないで下 さい。

  15. 最後に • 出来るだけ正確に値を取ろうとはしているけど、色々な要因 で正確では無い。 なので、あくまで目安としてね。 ◦ たとえば、gitはmvはdelete/newで実装されているので、 変更行が膨らみやすい。refactoringとかしているとガッ ツリ増える。 ◦

    各projectでignore_pathsを調整してもらえると嬉しいな • 色々遅いので誰かtuningしてたもれ。 • 他の集計、誰か追加して。 • 各repositoryは、エイヤで追加してて、よくわかってないん で、各projectの人、ymlを修正してpull req.くれるとうれしい です。そんなわけでcospaとか派遣とか入ってないし。
  16. 本当に最後に。 作っといてなんだけど、 手を動かすの重要だけど、一番重要なのは健全な プロダクトで利益出す事なので、あくまで参考値と して捉えてね。