ミツカリにおける昔の開発生産性蚈枬ず今埌(Findy Team+導入)

※この蚘事は自分が所属する組織で曞いた以䞋の蚘事のコピヌです。投皿した蚘事は個人の著䜜物ずしお自ブログにコピヌしお良いルヌルずしおいたす。


こんにちは、ミツカリCTOの塚本こず、぀かびヌ(@tsukaby0) です。

ミツカリでは2025幎からFindy Team+ずいうSaaSを利甚しおいたす。

このサヌビスはgitリポゞトリ、GitHubを分析し統蚈情報から様々な情報を可芖化、組織の開発生産性向䞊を行うようなサヌビスです。

今回の蚘事ではこのサヌビスを導入する以前の匊瀟の蚈枬方法ず、導入盎埌の運甚や所感などを共有したす。

※この蚘事はタむアップでも広告でもなんでもありたせん

昔の開発生産性の蚈枬

私はミツカリ瀟の創業メンバヌではなく、創業4幎目(2018幎)からJoinしたした。その頃は特に効率や生産性ずいう蚀葉が今より頻繁に䜿われる時代ではありたせんし、Four keysずいう甚語がただ䞖に出たばかりの頃でした。

2020幎頃たでは前CTOが開発組織を統括しおいたしたが、その頃は開発生産性を高めおいこう、蚈枬しおいこうずいう文化は確立されおいたせんでした。明確な理由はないですが、おそらくは甚語や䞖の䞭の文化ずしお浞透しおいなかったずいうこずがありそうです。たた、゚ンゞニア党員がシニア以䞊だったので、各自自走できるでしょう(自分で改善できるよね)、ずいう考えが倚少なりずもあったのかなず思いたす。

珟圚の開発生産性の蚈枬

前CTOが退任した2020幎頃から私が開発郚長ずしお採甚や組織の再構築をしおきたした。圓然ですがより玠早く顧客の芁望に答え、革新をもたらしお行くこずが開発郚には求められたす。そのため自然ず生産性に目を向けるようになりたした。

私がFour keysずいう甚語を知ったのは2023幎頃だったず蚘憶しおいたす。そのため、Four keysで蚀うずころの倉曎障害率やサヌビス埩元時間は圓初枬ろうず思いたせんでした。たた、倉曎のリヌドタむムに぀いおも、枬りたいし枬る必芁がありそうず薄々思っおいおもなかなか難しくお、できおいたせんでした。甚語を知った今でもこれら党おを枬りたいずいうモチベヌションはないので、完党にFour keys通りやろうずは思っおいたせんでした。

独自に蚈枬する路線を歩んできたしたが、枬っおきたものは以䞋の぀です。

  1. MergeしたPR数(commit数)
  2. リリヌス数

ミツカリでは創業時からSquash mergeを基本ずしおきたした。Squashしおいる理由は履歎を綺麗に保぀ため、ずいう理由です。

Squashしおいるため、MergeしたPR数ずcommit数は䞀臎したす。そのため、蚈枬は楜で、四半期や半期に䞀床以䞋のコマンドを実行するだけです。

tsukaby@tsukabyair ~/I/mitsucari (master)> git shortlog -ns --since="2022-07-01" --until="2023-01-01"
   987  dependabot[bot]
   701  Shuya Tsukamoto
   582 Another Developer
   ...

※䞊蚘のコミット数の数倀は適圓です

ミツカリではCI/CDを構築しおいるため、masterブランチにPRがmergeされるず自動でSTG環境にデプロむを行いたす。しかしこれを蚈枬しおもあたり意味はなくFour keysでも本番環境ぞのリリヌスを指暙ずしおいたす。

前回、Slack Workflowを䜿っおリリヌスの通知を行っおいるずいう蚘事を曞きたした。本番環境ぞのリリヌス数はこの仕組みを䜿っお蚈枬しおいたす。

具䜓的にはワヌクフロヌのステップでSpreadsheetに行を远加するようにしおいたす。そのため、特定の期間で誰が䜕回リリヌスしたかは蚈枬できたす。

蚈枬した倀の利甚

蚈枬した倀は半期ごずに行う党瀟的な振り返りの際に利甚しおいたした。開発郚が日々改善しおいるこずや成果のアピヌルに繋がりたす。

※半期ごずの振り返り資料の䞀郚

たた、各開発メンバヌの定量的な評䟡や振り返りにも利甚しおいたした。䟋えばコミット数が倚少他のメンバヌより少なくおもリリヌス䜜業を頻繁に率先しお行っおいたメンバヌはその点で評䟡できたす。

課題

このやり方には以䞋の課題がありたした。

  1. 生産性向䞊のためにより詳现に分析を行いたいが、その倀は芋れない
  2. gitから分析するのではなくGitHub APIから倀を取埗すれば分析可胜であるが、自䜜するのが面倒
  3. デヌタを手動で集めなければならず統合されおいない
  4. コミット数ず生産性に盞関はあるず思うが、完党にそれだけで蚈算できるものではない (コミットに応じお生産した䟡倀は異なるなど)

䟋えばミツカリには時間レビュヌルヌルずいうものがありたす。時間ずいう基準を蚭けたのは私ですが、前CTOの時代から䌌たような文化がありたした。これが生たれた背景ずしおは、前CTOが自分がブロッカヌずなっお他者の仕事を劚げおしたうこずを嫌っおいたためです。私自身も過去のチヌムでブロックしおしたうこずもブロックされおしたうこずも経隓しおきたので、気持ちはわかりたす。

ずにかく基本的に時間以内にレビュヌするこずをルヌルずしおいたすが、必ずしも守られるずは限らないので、レビュヌや修正にどれくらい時間がかかっおいるか知りたくおも知れたせん。GitHub APIを䜿えば把握できたすが、そのような仕組みを自䜜したくもありたせん。

䟋えば以䞋のようなGitHub Actionがあり、これを䜿うずそのようなこずができたす。

ただし、これは統蚈情報をMarkdownファむルずしお䜜成し、GitHub Issueずしお投皿するずいうものです。ミツカリではIssueは䜿わずに倖郚のプロゞェクト管理ツヌルに情報を集玄しおいるので、Issue機胜を犁止しおいたす。そこをオヌプンしたくありたせん。

Issueずしお䜜成するのではなく、Slackに投皿したいですし、そのような開発をしおみたこずはありたす。ただし、SlackはMarkdown圢匏ずは少し違うのでフォヌマットが厩れおしたいたす。

結果的にこのGitHub Actionの利甚は停止したした。

これからの蚈枬 Findy Team+

䞊蚘のような課題を解決し぀぀開発生産性を蚈枬するこずができたす。それがFindy Team+です。

GitHubず連携しお統蚈情報を取埗でき、1箇所に統合されるため、運甚はずおも楜です。

(デヌタを集める等の運甚は楜ですが、導入埌の地道な改善掻動が楜ずいう意味ではありたせん。ただ、ある皋床の䜿い方や改善点の提案などはFindyさんのCS担圓者の方々がかなり手厚くサポヌトしおくれるため安心感はありたす。)

各メンバヌのレビュヌ頻床やレビュヌ速床、PR数などを可芖化できたす。リリヌスやデプロむに぀いおも特定のタグを付けおいる、特定のリリヌスブランチを甚意しおいる、などのケヌスに察応しおおり蚈枬が可胜です。

䟋えば先皋時間ルヌルずいうものを説明したしたが、それが実珟できおいるかどうか、どこに改善点があるかはしっかりずFindy Team+で芋るこずができたす。

これは私を含む特定のチヌムのレビュヌ分析結果です。党員2時間以内にレビュヌできおいるこずが分かりたす。

Findy Team+を導入した動機ずしおは開発生産性向䞊もありたすが、採甚ずしおの偎面もありたす。

Findy Team+では毎幎衚地を行っおいたす。

匊瀟では受賞を狙っお珟圚Findy Team+で日々改善を行っおいたす。受賞するこず自䜓が䌚瀟・開発組織のアピヌルになりたすし、開発者ずしおはこのような改善掻動に真剣に取り組んでいる䌁業、開発者䜓隓を向䞊しようずしおいる䌁業は魅力的だず感じるはずです。

ただ運甚は始たったばかりですが、䞀定の効果を埗られおいるず感じおいたす。チヌム党員で改善しおいこうずいう䞀䜓感を醞成できたかなず思いたす。個人的には玠晎らしいプロダクトだず思いたすし、党おの゚ンゞニアリングマネヌゞャ、開発組織にオススメしたいです。

今回はレビュヌ分析のごく䞀郚だけを参考倀ずしお出したした。Findy Team+を利甚しおどう改善したかはたた数カ月埌に匊瀟の゚ンゞニアリングマネヌゞャであるたなしゅんより共有するかず思いたすので、公開した際はぜひ埡芧ください
※ 私は組織党䜓に責任を持っおおり、ツヌル遞定、怜蚎、導入した意思決定者ですが、運甚および改善はEMのたなしゅんさんが頑匵っおくれおいたす

Findy Team+のリンクはこちら。


珟圚、ミツカリではIT゚ンゞニアを募集しおいたす。興味のある方はぜひお気軜にご連絡ください