83
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Lancers(ランサーズ)Advent Calendar 2019

Day 21

ランサーズ創業時から今まで12年分のコミットをビジュアライズしてみた

Last updated at Posted at 2019-12-22

はじめに

ランサーズ AdventCalendar 21日目担当の @sayanet です。

ふだんはtoBの LancersEnterprise プロダクトの開発チームリーダーとして、プロジェクトマネジメントを行っています。最近プロダクトマネジメントもはじめました。

ハイ、さっそく本題にはいります!
私がランサーズに入社したのは2014年4月で、その頃はまだメンバーは50名に満たない規模でした。
今回、上場という節目においてここまでの軌跡をなにかの形で残しておきたいなと思い、主に Lancers の開発を行っているリポジトリで創業から今までの約12年(2008-2019)にわたるすべてのコミットをビジュアライズしてみました。
今回は公開用として、創業者兄弟である秋好社長&聡さんと著者以外はイニシャルにしています。

つくりかた

1. コミットログの取得

git shortlogを利用してユーザーごとのコミット数を取得します。

例えば今月のコミットをユーザーごとにリストアップしたい場合はこんなかんじです。

git shortlog -sn --no-merges --since='date +%Y/%m/01' --until='date +%Y/%m/%d'

オプション説明
-s: ユーザー毎にサマライズ
-n: コミット数多い順にソート
--no-merges: マージコミットは除外
--since: 対象期間いつから
--until: 対象期間いつまで

出力結果
コミット数合計とユーザー名が表示されます
image.png

さてさて、今回は年ごとにサマった述べコミット数がほしいので、創業から今年まで年単位でループをまわします。
それぞれの年に過去合計値をセットしたいのでsinceオプションは2008年固定にしておくのがミソ。


for ($year=2008; $year<=2019; $year++) {
    echo $year . "\n";
    $command = sprintf("git shortlog -sn --no-merges --since='2008/01/01' --until='%d/12/31'", $year, $year);
    system($command);
}

2. データを整形する

1で取得したユーザーごとのコミット数をスプレッドシートに貼り付けて整形。年とユーザー名をマトリクス表で表現していきます。

こちらがベースとなるデータ。年とユーザー名を結合させて下ごしらえ。
※ yosuke->秋好社長、satoshi->聡さん です。他の方はマスキング
image.png

年とユーザー名をもとにVLOOKUP使ってマトリクス表のシートにプロット。

image.png
ここで予期せぬ事態。同一人物でもコミット時のユーザー名が異なることが多々あり、名寄せするのが大変でした。仕組み化するならメアドを使って名寄せするとかうまいことやりたい。

さて、ここまでできればデータ整形完了!
このタイミングでユーザー名をイニシャル化にしています。

3. ビジュアライズする

ビジュアライズにはFlourishのBar chart raceを使いました。
https://app.flourish.studio/@flourish/bar-chart-race/9

Dataにスプレッドシートの内容をそのまま貼ればOKというお手軽さ。職種で色分けしたかったのでカテゴリー追加しています。

Previewモードで件数や速さなど表示の設定ができます。
動きを確認しながら調整できてトテモ便利 :angel_tone2:

image.png

デキアガリ\(^o^)/

image.png

APIも公開されていて捗りそうです :bar_chart:
https://app.flourish.studio/@flourish/bar-chart-race/9#api

まとめ

後半のデザイナーT.Tさんの伸びがすごかったです。コミット数が多い方は総じて仕事のスピードが早いなという印象。ちなみにT.Tさんからはプログラマーはプログラムを書くな! 有能なプログラマーはプログラムを書かないリンクをそっと渡されましたがそれもまたひとつの謙虚スタイル。リスペクト。

エンジニア出身の社長が今でもTOP17に残っているのを見て、ほんとうに創業時はめちゃくちゃエンジニアフルコミットだったんだなと思ったり、私が入社した2015年頃にメンバーが一気に増えてベンチャーの勢いを感じたり、最近入社したメンバーがガンガンコミット伸ばしていることに気づけたりとなかなかの感慨深さがありました。

もちろん、コミットの単位は時期や実装者・チームによって異なるし、fix:typoなどもあるため多いからよいとは一概にいえませんが、純粋にこれだけコミットしたのすごいな〜という意味合いで見ています。

ソースコードは日々刷新されますがコミットに込めた気持ちとビジョンが受け継がれて今のランサーズがあるんだなと再認識。日々の積み重ねって偉大ですね。

年末なので、一年の振り返りとして月ごとに出してみても面白そうだし、毎日眺めてがんばったなーとムフフするのも楽しそう。

それではみなさん、良いエンジニアライフを!

83
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
83
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?