ã·ã³ãã«ïŒåé¢ïŒæ©èœãã©ã³ã
æ©èœãã©ã³ãã®äž»ãªã¢ã€ãã¢ã¯ãäœããã®æ©èœã®äœæ¥ãéå§ãããšãã«æ°ãããã©ã³ããäœæããããšã§ãã DVCSã§ã¯ãç¬èªã®ãªããžããªã§ãããè¡ããŸãããåãååãéäžåVCSã§æ©èœããŸãã
次ã®äžé£ã®å³ã§ç§ã®èãã説æããŸãã ãã®äžã§ãã¡ã€ã³ã®éçºã©ã€ã³ïŒãã©ã³ã¯ïŒã¯éã§ããŒã¯ããã2人ã®éçºè ã¯ç·ãšçŽ«ã§ããŒã¯ãããŠããŸãïŒReverend GreenãšProfessor PlumïŒã

ãã©ã³ãã®ããŒã«ã«ã³ãããã®æå®ãšããŠãæå®ãããè²ä»ãã®åè§åœ¢ã䜿çšããŸãã ãã©ã³ãéã®ç¢å°ã¯å䜵ã瀺ãããªã¬ã³ãžè²ã®é·æ¹åœ¢ã¯ããŒãžèªäœã匷調ããŠããŸãã ãã®äŸã§ã¯ãã¡ã€ã³è¡ã«æŽæ°ããããŸããããšãã°ãããã€ãã®ä¿®æ£ããããã°ããããŸãã ãããçºçãããšãéçºè ã¯ããããããŒã«ã«ãã©ã³ãã«ããŒãžããŸãã æéã®æèŠãåŸãããã«ãåéçºè ãèªåã®å€æŽã1æ¥ã«1åã³ãããããæ°æ¥éã®äœæ¥ã«ã€ããŠè©±ããŠãããšä»®å®ããŸãããã
ã³ãŒããæ©èœããããšã確èªããããã«ããã©ã³ãã§ãã«ããšãã¹ããå®è¡ã§ããŸãã ãã®èšäºã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãåã³ããããšããŒãžãšãšãã«ããããå®è¡ããããã©ã³ãã®èªåãã«ããšãã¹ããæ³å®ããŠããŸãã
æ©èœåå²ã®äž»ãªå©ç¹ã¯ãåéçºè ãèªåã®ã¿ã¹ã¯ã«åãçµãããšãã§ããåšå²ã§èµ·ããŠããããšããéé¢ã§ããããšã§ãã ã¡ã€ã³ã©ã€ã³ããã®å€æŽãèªåã®ããŒã¹ã§ããŒãžãããããéçºäžã®æ©èœã«å¹²æžããªãããšã確èªã§ããŸãã ããã«ãããã«ãããããŒã ã¯ãªãªãŒã¹ããæ°ããéçºãéžæããåŸã§æ®ããã®ãéžæã§ããŸãã ã°ãªãŒã³ç§åž«ãé ããå Žåããã©ã ææã®å€æŽãå«ãããŒãžã§ã³ã®ã¿ãæäŸã§ããŸãã ãŸãã¯ãéã«ãææãåžæã©ããã«æ©èœãããã©ããããããªãããã«ãææã®è¿œå ã延æããããšãã§ããŸãã ãã®å Žåãæ©èœããªãªãŒã¹ããæºåãæŽããŸã§ãææã«å€æŽãã¡ã€ã³ã©ã€ã³ã«ããŒãžããªãããã«äŸé Œããã ãã§ãã ãã®ã¢ãããŒãã«ãããéžæããæ©äŒãäžããããããŒã ã¯åãªãªãŒã¹ã®åã«ã©ã®æ©èœãããŒãžãããã決å®ããŸãã
ãã®ç»åã®é åã«ããããããããã®ã¢ãããŒãã«ã¯ç¹å®ã®åé¡ãæœãã§ããå ŽåããããŸãã

éçºè ã¯æ©èœãåç¬ã§äœæ¥ã§ããŸãããããæç¹ã§ãäœæ¥ã®çµæãçµ±åããå¿ èŠããããŸãã ãã®äŸã§ã¯ãPlumææã¯ã¡ã€ã³ã©ã€ã³ããã®å€æŽã§ç°¡åã«æŽæ°ããŸãããã©ã³ãã§ã¯ã¡ã€ã³ã©ã€ã³ã®ãã¹ãŠã®å€æŽãæ¢ã«åãåã£ãŠããïŒãããŠãã«ãã«åæ ŒããŠããïŒãããããŒãžã¯ãããŸããã ãã ããã°ãªãŒã³ç§åž«ã«ãšã£ãŠãã¹ãŠãããã»ã©åçŽã§ã¯ãªãããã圌ã¯ãã¹ãŠã®å€æŽïŒG1-6ïŒããã©ã ææã®å€æŽïŒP1-5ïŒã«ããŒãžããå¿ èŠããããŸãã
ïŒãã®äŸã§ã¯ãå€ãã®DVCSãŠãŒã¶ãŒã¯ãæ©èœåå²ã®ãã®ãããªåçŽãªãããã«ç°¡åãªèª¬æã§ã¯å€ãã®è©³çŽ°ãæ¬ ããŠãããšæãããããããŸãããããè€éãªã¹ããŒã ã«ã€ããŠã¯åŸã§èª¬æããŸããïŒ
ããã¯å±éºãªããŒãžãªã®ã§ããã®ããŒãžé·æ¹åœ¢ã巚倧ã«ããŸããã åé¡ãªãå®è¡ã§ããéçºè ãçžäºäœçšãªãã«ã³ãŒãã®ããŸããŸãªéšåã§äœæ¥ãããããããŒãžãã¹ã ãŒãºã«è¡ãããå¯èœæ§ããããŸãã ãããã圌ãã¯çžäºäœçšããéšåã«åãçµãããšãã§ããããããå°çã¯åœŒããåŸ ã¡ãŸãã
æªå€¢ã¯å€ãã®åœ¢ããšãããšãã§ããéçºããŒã«ã¯ããã€ããæãããšãã§ããŸãã æãæšæºçãªãã®ã¯ã2人ã®éçºè ãåãããŒãã®åããã¡ã€ã«ã§äœæ¥ããŠãããšãã«ããœãŒã¹ã³ãŒããããŒãžããã®ãé£ããå ŽåããããŸãã çŸä»£ã®DVCSã¯ãã®ãããªåé¡ã«ããŸã察åŠããŸãããæã«ã¯éæ³ã®å©ãããªããã°ããã§ã¯ãªãããã§ãã Gitã¯ãè€éãªç«¶åãããŸãåŠçã§ããããŒã«ãšããŠè©å€ããããŸãã ãšãŠãè¯ãã®ã§ããã®è³ªåã¯ãã®èšäºã®ç¯å²å€ã§ãã
ããã«æ°ã«ãªãåé¡ã¯ãã»ãã³ãã£ãã¯ã®ç«¶åã§ãã æãåçŽãªäŸã¯ãPlumææãGreenç§åž«ããã®ã³ãŒãã§åŒã³åºãã¡ãœããã®ååãå€æŽããå Žåã§ãã ãªãã¡ã¯ã¿ãªã³ã°ããŒã«ã¯ãã³ãŒãå ã§ã®ã¿åé¡ãªãã¡ãœããã®ååãå€æŽããã®ã«åœ¹ç«ã¡ãŸãã ãããã£ãŠãG1-6ã«fooãåŒã³åºãæ°ããã³ãŒããå«ãŸããŠããå ŽåãPlumææã¯ãããèªèããŸããããã®å€æŽã¯ãã©ã³ãã«ãªãããã§ãã ç¬ãåè¬ãããŠããå Žæã®èªèã¯ã倧èŠæš¡ãªããŒãžã§ã®ã¿ç§ãã¡ã«æ¥ãŸãã
é¢æ°ã®ååã®å€æŽã¯ãã»ãã³ãã£ãã¯ã®ç«¶åã®æãæãããªäŸã§ãã å®éã«ã¯ã圌ãã¯ã¯ããã«ç§å¯ã«ããããšãã§ããŸãã ãã¹ãã¯ãããã解決ããéµãšãªããŸãããããå€ãã®ã³ãŒããããŒãžããå¿ èŠãããã»ã©ã競åã®å¯èœæ§ãé«ããªããããããä¿®æ£ããã®ãããé£ãããªããŸãã äžè¬çã«ãç¹ã«ã»ãã³ãã£ãã¯ã®ç«¶åã®ãªã¹ã¯ã¯ã倧èŠæš¡ãªå䜵ãæããããŸãã
倧èŠæš¡ãªå䜵ã®æãã®çµæã¯ããªãã¡ã¯ã¿ãªã³ã°ãžã®æµæã§ãã ã³ãŒãããããã«ä¿ã€ã«ã¯ã絶ãéãªãåªåãå¿ èŠã§ãããæåããããã«ã¯ã誰ãããããèŠããšãã«ãŽãããããã«ããªããã°ãªããŸããã ãã ããæ©èœãã©ã³ãã§ã®ãã®ãããªãªãã¡ã¯ã¿ãªã³ã°ã¯ãBig Scary Mergeãããã«å€§ããæªåãããéããåé¡ããããŸãã ãã®çµæãéçºè ã¯ç«ã®ãããªãªãã¡ã¯ã¿ãªã³ã°ãæããŠãããã³ãŒãã¯ããªãŒã¯ã§å€§ãããªããããŠããŸãã
äžèšã®åé¡ã§ã¯ãæ©èœã®åå²ãæªãèãã§ããäž»ãªçç±ãããããŸãã ããŒã ãå¥å šãªã³ãŒããç¶æããããã®ãªãã¡ã¯ã¿ãªã³ã°ãæããŠããç¬é-圌ãã¯åªé ãªåºå£ã®ãã£ã³ã¹ããªãé·ãããŒã¯ã«ãããŸãã
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³
ç¶ç¶çãªçµ±åã解決ããã®ã¯ãããã®åé¡ã§ãã CIã䜿çšãããšãã°ã©ãã¯æ¬¡ã®ããã«ãªããŸãã

ããã«ã¯ããã«å€ãã®ããŒãžããããŸãããããŒãžã¯ããã£ãã«ãªããã³åäœã§è¡ããããå°ããã€é »ç¹ã«è¡ãæ¹ããããã®ã®1ã€ã§ãã ãã®çµæãPlumææãGreenç§åž«ãäŸåããã³ãŒãã®äžéšãå€æŽããå Žåãç§ãã¡ã®ç·ã®ååã¯P1-2ããŒãžã§ãã£ãšæ©ãçºèŠããã§ãããã çŸæç¹ã§ã¯ãïŒåã®äŸã®ããã«ïŒG1-6ã§ã¯ãªãããããã®å€æŽã«å¯Ÿå¿ããããã«G1-2ãå€æŽããå¿ èŠããããŸãã
CIã¯ã倧èŠæš¡ãªããŒãžã®åé¡ãäžåããã®ã«å¹æçã§ãããéèŠãªéä¿¡ã¡ã«ããºã ã§ããããŸãã ãã®ã·ããªãªã§ã¯ããã©ã ææãG1ãçµ±åããã°ãªãŒã³ç§åž«ãææã®ã©ã€ãã©ãªã䜿çšããŠããããšãèªèãããšãæœåšçãªç«¶åãçºçããŸãã ãã®åŸããã©ã ææã¯ã°ãªãŒã³ç§åž«ãèŠã€ããããšãã§ããäžç·ã«åœŒãã®æ©èœã®çžäºäœçšã«ã€ããŠè°è«ããããšãã§ããŸãã ãããããProfessional Pumæ©èœã«ã¯ãReverend Greenæ©èœãšããŸããããªãããã€ãã®å€æŽãå¿ èŠã§ãã äžç·ã«ã圌ãã¯åœŒãã®ä»äºã劚ããªããã¯ããã«è¯ãèšèšäžã®æ±ºå®ãäžãããšãã§ããŸãã ãã©ã³ããåé¢ãããšãéçºè ã¯åé¡ãæåŸã®ç¬éãŸã§ç¥ãããšãã§ããªããªããŸããæåŸã®ç¬éãåé¡ã解決ããã®ã«æé ãã«ãªãããšããããããŸãã éä¿¡ã¯ãœãããŠã§ã¢éçºã®éèŠãªèŠçŽ ã®1ã€ã§ãããCIã®äž»ãªæ©èœã®1ã€ã¯ãããä¿é²ããããšã§ãã
ã»ãšãã©ã®å Žåãæ©èœã®åå²ã«ã¯CIãžã®ç°ãªãã¢ãããŒããããããšã«èšåããããšãéèŠã§ãã CIã®ååã®1ã€ã¯ã誰ããæ¯æ¥ã¡ã€ã³ã©ã€ã³ã«ã³ãããããããšã§ãããããã£ãŠãæ©èœãã©ã³ãã1æ¥ä»¥äžååšããå ŽåãCIããéåžžã«é ãäœãã«å€ãããŸãã ãã«ããCIãµãŒããŒãåãã©ã³ããããã³ãã¹ãŠã®ã³ãããã§å®è¡ããããããCIã䜿çšããŠãããšäººã ãèšãã®ãèããŸããã ããã¯ç¶ç¶çãªãã«ãã§ãããåªããŠããŸããã çµ±åãããŠããªããããCIã§ã¯ãããŸããã
ç¡å·®å¥ãªçµ±å
å ã»ã©æ¬åŒ§ã§è¿°ã¹ãããã«ãåå²ãæ©èœãããæ¹æ³ã¯ä»ã«ããããŸãã ã€ãã¬ãŒã·ã§ã³ã®æåã«ãã©ã ææãšã°ãªãŒã³ç§åž«ãäžç·ã«éŠãè±ããªç·è¶ãéžé ãã圌ãã®ä»äºã«ã€ããŠè©±ãåã£ããšããŸãããã 圌ãã¯ãã¿ã¹ã¯ã®äžã«çžäºäœçšããéšåãããããšã«æ°ä»ãã次ã®ããã«çžäºã«çµ±åããããšã決å®ããŸãã

ãã®ã¢ãããŒãã§ã¯ãæåã®äŸã®ããã«ãæåŸã«ã¡ã€ã³ã©ã€ã³ãšããŒãžããŸããã倧ããªæãããŒãžãåé¿ããããã«äºãã«ããŒãžããããšããããããŸãã æ©èœã®åå²ã®äž»ãªå©ç¹ã¯åé¢ã§ãããšããèãæ¹ã§ãã ãã©ã³ããéé¢ãããšãç¥èã®ç¯å²å€ã§äžå£ãªç«¶åããšã¹ã«ã¬ãŒããããªã¹ã¯ããããŸãã ãããŠãå€ç«ã¯å¹»èŠã§ãããé ããæ©ããçã¿ã䌎ããŸãã
ãããããã®ããåŽåéçŽçãªçµ±åã¯CIã®äžåœ¢æ ãªã®ã§ããããããããšããŸã£ããç°ãªãç£ã§ããããïŒ ç¹°ãè¿ããŸãããCIã®éèŠãªç¹åŸŽã¯ã誰ããæ¯æ¥ã¡ã€ã³ã©ã€ã³ãšçµ±åããŠããããšã§ãã æ©èœãã©ã³ãéã®çµ±åïŒç§ã¯ããªãã®èš±å¯ããç¡å·®å¥çµ±åãïŒPIïŒãšåŒã³ãŸãïŒã«ã¯ãã¡ã€ã³ã©ã€ã³ã¯å«ãŸããŸããã ãã®éãã¯éåžžã«éèŠã ãšæããŸãã
CIã¯ãäž»ã«ã³ãããã®ãã³ã«ãªãªãŒã¹åè£è ãçãæ段ãšèããŠããŸãã CIã·ã¹ãã ãšå±éããã»ã¹ã®ã¿ã¹ã¯ã¯ãçŸåšã®ãªãªãŒã¹åè£çã®å¶äœæºåãåè«ããããšã§ãã ãã®ã¢ãã«ã«ã¯ãå šäœåã®çŸåšã®ç¶æ ãè¡šãããçš®ã®åºæ¬çãªéçºã©ã€ã³ãå¿ èŠã§ãã
- ãã€ãã»ãã¡ãŒãªãŒ
ã©ã³ãã çµ±åãšç¶ç¶ççµ±å
ããã§ããPIãCIãšç°ãªãå Žåãã©ã®å Žåã«PIã¯CIããåªããŠããŸããïŒ
CIã䜿çšãããšãããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããŠå€æŽãéžæçã«è¡ãããšãã§ããªããªããŸãã åéçºè ã¯ã¡ã€ã³ã©ã€ã³ã«åœ±é¿ãäžããããããã¹ãŠã®æ©èœãã¡ã€ã³ã©ã€ã³ã§æé·ããŸãã CIã§ã¯ãã¡ã€ã³ã©ã€ã³ã¯åžžã«æ£åžžã§ããå¿ èŠããããçè«äžïŒãããŠå®éã«ã¯å€ãã®å ŽåïŒãåã³ãããåŸã«è§£æŸã§ããŸãã åå®æã®æ©èœããŸãã¯ãªãªãŒã¹ããªãæ©èœã䜿çšãããšãã·ã¹ãã å šäœã®æ©èœãæãªãããšã¯ãããŸããããã¡ãã¥ãŒã«æ°ããã¢ã€ãã ãå«ããªããªã©ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããé衚瀺ã«ããããã«äœããã®å€è£ ãå¿ èŠã«ãªããŸãã
ãã®ãããªå ŽåãPIã¯äžéã®äœããæäŸã§ãããããã°ãªãŒã³ç§åž«ã¯ãã©ã ææã®å€æŽããã€åãå ¥ããããéžæã§ããŸãã PlumææãP2ã®ã«ãŒãã«APIã«å€æŽãå ããå Žåãã°ãªãŒã³ç§åž«ã¯P1-2ãã€ã³ããŒãã§ããŸãããPlumææãäœæ¥ãçµäºããŠã¡ã€ã³ãã©ã³ãã«ããŒãžãããŸã§æ®ããæ®ãããšãã§ããŸãã
ãã ããäžè¬çã«ãVCSã䜿çšããŠãªãªãŒã¹çšã®æ©èœãååŸããããšã¯è¯ãèãã ãšã¯æããŸããã
æ©èœã®åå²ã¯è²§ãã人ã ã®ããã®ã¢ãžã¥ãŒã«åŒã¢ãŒããã¯ãã£ã§ãããæ©èœãæé/å±éã§ç°¡åã«çœ®ãæããããšãã§ããã·ã¹ãã ãæ§ç¯ãã代ããã«ã人ã ã¯æåã§ããŒãžããããšã§ãã®ã¡ã«ããºã ã®ãœãŒã¹ç®¡çã«ãã€ã³ãããŸãã
- ãã³ãããŒã
æ§æãå€æŽããŠæ©èœããªã³ãŸãã¯ãªãã«ã§ããããã«ããœãããŠã§ã¢ãèšèšããããšã奜ã¿ãŸãã ããã«ã¯ã FeatureTogglesãšBranchByAbstractionã® 2ã€ã®äŸ¿å©ãªãã¯ããã¯ããããŸãã ã¢ãžã¥ãŒã«ã«åå²ããæ¹æ³ãšæ¹æ³ãããã³ãããã®ãªãã·ã§ã³ãå¶åŸ¡ããæ¹æ³ã«ã€ããŠããã«èããå¿ èŠããããŸãããVCSã«äŸåããŠããå Žåãããçµæãã¯ããã«æ£ç¢ºã§ãããšããçµè«ã«éããŸããã
PIã§æãæ°ã«ãããã®ã¯ãããŒã ã®ã³ãã¥ãã±ãŒã·ã§ã³èœåã«ãããããŠããããšã§ãã CIã§ã¯ãã¡ã€ã³ã©ã€ã³ãéä¿¡ãã€ã³ããšããŠæ©èœããŸãã ãã©ã ææãšã°ãªãŒã³ç§åž«ãäžåºŠã話ããªãã£ããšããŠãã圌ãã¯ãã®åœ¢æã®æ¥ã«å¯Ÿç«ãèŠã€ããã§ãããã PIã§ã¯ãçžäºäœçšããã³ãŒãã«åãçµãã§ããããšã«æ³šæããå¿ èŠããããŸãã åžžã«æŽæ°ãããã¡ã€ã³ã©ã€ã³ã¯ã圌ããã¹ãŠã®äººãšçµ±åããŠããããšãå šå¡ã«ä¿èšŒããã®ã«åœ¹ç«ã¡ãŸãã誰ãäœãããŠããã®ããç¥ãå¿ èŠã¯ãããŸããã
PIã¯ãªãŒãã³ãœãŒã¹ããçãŸãããã®ã§ãããããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ããŒã¹ãããã»ã©éããªãããšããã®èŠå ãããããŸããã ãã«ã¿ã€ã ã®ä»äºã§ã¯ããããžã§ã¯ãã§1æ¥äœæéãåããŸãã ããã«ãããæ©èœãåªå ããŠäœæ¥ããããšãã§ããŸãã ãªãŒãã³ãœãŒã¹ã§ã¯ãå€ãã®å Žåã人ã ã¯ããã§1æéãããã«æ°æ¥å¯ä»ããŸãã æ©èœã®å®è¡ã«ã¯1人ã®éçºè ã®å®è¡ã«å€ãã®æéãããããŸãããå€ãã®ç©ºãæéãããä»ã®éçºè ã¯ãå€æŽã蚱容å¯èœãªå質ã«æ©ããããšãã§ããŸãã ãã®ãããªç¶æ³ã§ã¯ãéžæçãªã¢ãããŒããããéèŠã«ãªãå ŽåããããŸãã
䜿çšããããŒã«ã¯ãéžæããæŠç¥ã«äŸåããªãããšãèªèããããšãéèŠã§ãã å€ãã¯DVCSãæ©èœã®åå²ã«é¢é£ä»ããŠããŸãããCIã§ã䜿çšã§ããŸãã å¿ èŠãªã®ã¯ããã©ã³ãã®1ã€ãã¡ã€ã³ã©ã€ã³ãšããŠããŒã¯ããããšã ãã§ãã 誰ããæ¯æ¥ãã®ãã©ã³ãã«ãã«ã¢ã³ãããã·ã¥ããå Žåãæãåºæ¬çãªã©ã€ã³ããããŸãã å®éãããçµ±å¶ãããããŒã ã§ã¯ãéäžåVCSãããCIãããžã§ã¯ãã«DVCSã䜿çšããŸãã çµ±å¶ã®ãšããŠããªãããŒã ã§ã¯ãDVCSã䜿çšãããšãäžå åãããVCSãšãã©ã³ãã£ã³ã°ã®è€éããã¡ã€ã³ã©ã€ã³ãžã®é »ç¹ãªã³ãããã«è¿œã蟌ãŸãããšãã«ã人ã ãé·åœãã©ã³ãã«æŒãããã®ã§ã¯ãªãããšå¿é ããŸãã
PS ãã®èšäº ã¯ç¿»èš³è ããã VCSã䜿çšããã¢ãããŒããžã®è³ªåãç 究 ãã ããã«ä¿ããŸããããããã§ãåå²ã®ãæ£ããã䜿çšã®è©³çŽ°ãªèª¬æãæ¢ãå§ããäžèšã®ç¿»èš³ãããããã¹ãã«åºäŒããŸããã ç§ã¯è³ªã®é«ã翻蚳è ã®ãµããããã€ããã¯ãããŸããããéçºè ãžã®ãã£ãŒãã«å ¥ãããªãŒãã³ãœãŒã¹ã®ã¢ãããŒãïŒãã©ãŒã¯ïŒã®å察ã«ã€ããŠèããçç±ãäžãããã ãã§ãã æ£ã§æããªãã§ã建èšçã«æ¹å€ããŠãã ãããããã¯ç§ããããããã®ã¯åããŠã§ã:-) ã