
ããã«ãªã«ãããæã®éçºçç£æ§èšæž¬ãšä»åŸ(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éãããããšã¯æã£ãŠããŸããã§ããã
ç¬èªã«èšæž¬ããè·¯ç·ãæ©ãã§ããŸããããæž¬ã£ãŠãããã®ã¯ä»¥äžã®ïŒã€ã§ãã
- MergeããPRæ°(commitæ°)
- ãªãªãŒã¹æ°
ããã«ãªã§ã¯åµæ¥æãã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ã«è¡ã远å ããããã«ããŠããŸãããã®ãããç¹å®ã®æéã§èª°ãäœåãªãªãŒã¹ãããã¯èšæž¬ã§ããŸãã
èšæž¬ããå€ã®å©çš
èšæž¬ããå€ã¯åæããšã«è¡ãå šç€Ÿçãªæ¯ãè¿ãã®éã«å©çšããŠããŸãããéçºéšãæ¥ã æ¹åããŠããããšãææã®ã¢ããŒã«ã«ç¹ãããŸãã

â»åæããšã®æ¯ãè¿ãè³æã®äžéš
ãŸããåéçºã¡ã³ããŒã®å®éçãªè©äŸ¡ãæ¯ãè¿ãã«ãå©çšããŠããŸãããäŸãã°ã³ãããæ°ãå€å°ä»ã®ã¡ã³ããŒããå°ãªããŠããªãªãŒã¹äœæ¥ãé »ç¹ã«çå ããŠè¡ã£ãŠããã¡ã³ããŒã¯ãã®ç¹ã§è©äŸ¡ã§ããŸãã
課é¡
ãã®ããæ¹ã«ã¯ä»¥äžã®èª²é¡ããããŸããã
- çç£æ§åäžã®ããã«ãã詳现ã«åæãè¡ããããããã®å€ã¯èŠããªã
- gitããåæããã®ã§ã¯ãªãGitHub APIããå€ãååŸããã°åæå¯èœã§ããããèªäœããã®ãé¢å
- ããŒã¿ãæåã§éããªããã°ãªããçµ±åãããŠããªã
- ã³ãããæ°ãšçç£æ§ã«çžé¢ã¯ãããšæãããå®å šã«ããã ãã§èšç®ã§ãããã®ã§ã¯ãªã (ã³ãããã«å¿ããŠçç£ãã䟡å€ã¯ç°ãªããªã©)
äŸãã°ããã«ãªã«ã¯ïŒæéã¬ãã¥ãŒã«ãŒã«ãšãããã®ããããŸããïŒæéãšããåºæºãèšããã®ã¯ç§ã§ãããå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ãšã³ãžãã¢ãåéããŠããŸããèå³ã®ããæ¹ã¯ãã²ãæ°è»œã«ãé£çµ¡ãã ããïŒ