¡@  Ãk©¥©M·¥­­½sµ{¡]XP¡^


¡@

Rock Climbing and Extreme Programming

Ye Yongqing
IT department, Europeloan Bank
Gulledelle 92
1200 Brussels, Belgium
+32 2 4020120

yongqing.ye@europeloan.com

½Ķ¡G¼BÚ]
2002
¦~7¤ë25¤é¬P´Á¥|

ºK­n

³o½g¤å³¹¥HÃk©¥¨Ó´y­z XP ªº¹ê²{¡A§@ªÌµo²{·¥­­½sµ{ªº³\¦h«ä·Q¡A«Ü¾A¦X©óÃk©¥¹B°Ê¡A¦Ó¥B§@ªÌ¦bÃk©¥¹B°Ê¤¤¡AÅé²{¤F³o¨Ç·Qªk¡C

ÃöÁä¦r

±Ð½m(Coach)¡AXP¡]·¥­­½sµ{¡^¡A´ú¸ÕÀu¥ý(Test First)¡A°t¹ï(Pair)¡A«O«ùí©w(Keep Stable)¡AÂл\²v(Coverage)¡A¨S¦³¥[¯Z(No overtime)¡C

¤º®e

¦b¥¬¾|¶ëº¸(Brussels)ªº¥«¤¤¤ß¡A¦³¤@¶¡«Ç¤ºÃk©¥³õ¡CÁöµM§Ú¸g±`·Q¥h¹Á¸Õ¡A¦]¬°§Ú¬Ý¨ì¹qµø¤W¡A¨º¨ÇÃk©¥ªÌ¥i¥H«Ü®e©ö¦aª¦¤W«Ü°ªªº©¥¾À ¡K¡A¦ý§Ú¥H«e«o±q¨Ó¨S¦³¥h¹L¡C¹ï©óÃk©¥¨Ó»¡¡A§Úµ´¹ï¬O­Ó·s¤â¡C

¤£ºÞ«ç¼Ë¡A§Ú·Q§Ú·|³ßÅw¥¦¡A¦Ó¥B§Ú·|±q¤¤±o¨ì«Ü¦h¼Ö½ì¡C 

Winston ¬O¤@¦ìÃk©¥±M®a¡F¥L¦³ 5 ¦~ªºÃk©¥¸gÅç¡A¥L«ØÄ³§Ú­Ì³o­Ó§«ô¤»¥hÃk©¥¡C§«ô¤»¨ì¤F¡A¦³ 4 ­Ó¤H°Ñ¥[³o¦¸¬¡°Ê¡AWinston¡B Massimo¡B Gifford ©M§Ú¡A°£¤F Winston ¥~¡A¨ä¥L 3 ¦ì³£¬OÃk©¥ªº·s¤â¡C§Ú­Ì³o¨Ç¤H³£¬O¦b¼Ú¬w¶U´Ú»È¦æ¡]EuropeLoan Bank¡^·d IT ªº¡C

¼Ú¬w¶U´Ú»È¦æ¬O¤@®a¦~»´¡B¥Rº¡¬¡¤O¡Aµo®i¨³³tªº¥þ²yºô¤W»È¦æ¡C¥¦©ó 1999 ¦~ 11 ¤ë¦b¥¬¾|¶ëº¸¦¨¥ß®É¡A¥u¦³¤T­Ó¤H¥H¤Î¤@¶¡¿ì¤½«Ç¡C³o®a¤½¥q¦¨ªø«D±`¨³³t¡G¥Ø«e¤w¦b 5 ­Ó°ê®a¶}®i·~°È¡A¨C­Ó°ê®a³£¦³¿ì¤½«Ç¡A¤j¬ù¦³ 50¦W¥ª¥k¡Aª½±µ©M«Dª½±µªº¶±­û¡A¥¦ªº¸êª÷¹F¨ì¤F 3 ¥ü¤ñ§Q®Éªk­¦(3,000,000 million BELGIUM FRANCS)¡C¼Ú¬w¶U´Ú»È¦æªº¥DÀç·~°È¡A¬O¥H·¥¨ãÄvª§¤Oªº§Q²v¡A´£¨Ñ¦í¦v©è©ã¶U´Ú¡C

¦]¬°§Ö³t¥Î¤á»Ý¨DÅܤơA·¥­­½sµ{ªº¤èªk¤w¸g¦¨¥\¹ê²{¤j·§¤@¦~¤F¡A§Ú­Ì³£«Ü³ßÅw·¥­­½sµ{¡AÁöµM¦³¨Ç¤H¤@¶}©l¹ï·¥­­½sµ{·P¨ì¦³ÂI©Ç¡C§Ú­Ì¤]³£«Ü³ßÅw¼gµ{¦¡¡A¼gµ{¦¡¬O¤@ºØ¼Ö½ì¡CWinston ¬O§Ú­Ìªº CTO¡A¦³®É­Ô¡A¥L¤]¬O§Ú­Ì¶}µo¹Î¶¤ªº±Ð½m¡C

¦bÃk©¥¤è­±¡AWinston¬O¤@¦ì«Ü¦nªº¾É®v©M±Ð½m¡C¥L¥ýµ¹§Ú­ÌÁ¿¤F¤@¨Ç°ò¥»ª¾ÃÑ¡G¨Ò¦p«ç»ò¥´ 8 ¦rµ²¡]tire 8¡^¡A«ç¼Ë¥­Ã­¦a©ñ÷¤l¡A·í¤H±¼¤U¨Ó¦a®É­Ô¡A«ç¼Ë§ì¦í«OÅ@÷¡CµM«á§Ú­Ì¦b¦a¤W°µ°t¹ï(pairs)½m²ß¡G¤@­Ó¤H°µÃkµnªÌ¡A¥t¤@­Ó«h¥R·í«OÅ@¡]blocker¡^¡CµM«á§Ú­Ì¥æ´«¨¤¦â(exchange pairs)¡A¦b¦a¤W¤@¹M¤S¤@¹M¦a½m²ß¡C§Ú­Ìµo²{§Ú­Ì³o»ò¦h¤H¥¿¦n¡A¤£¦h¤]¤£¤Ö¡AµL½×¬O¥æ´«¨¤¦âÁÙ¬O¥æ¬y·Qªk³£«Ü¦³®Ä²v¡C¦pªG§Ú­Ì½Ö§Ñ°O¤F¤°»ò¨Æ±¡¡A¹³«ç»ò¥´ 8 ¦rµ²¤§Ãþªº¡A§Ú­Ì´Nª½±µ°Ý¨ä¥L 3 ­Ó¤H¡A«Ü§Ö´N¥i¥H±o¨ì¤ÏÀ³¡]¥æ¬y«Ü¦n¡^¡C§Ú­Ìªá¤F¥b­Ó¤p®É°µ½m²ß¡C

 ²{¦b¡A§Ú­Ì¤w¸g¾Ç·|¤FÃk©¥ªº°ò¥»ª¾ÃÑ¡A¨ì¤F¯u¥¿¶}©l­nÃkª¦«Ç¤º©¥Àð(indoor-wall)ªº®É­Ô¤F¡C¦b­nÃkªº©¥Àð¤W¦³³\¦h¥ÛÀY¡A¥¦­Ì¦³¤£¦PªºÃC¦â©M½s¸¹¡G¨Ò¦p¡A3A ªº¥ÛÀY¬Oºñ¦âªº¡A4B ¬O¶À¦âªº¡A4C ¬O¬õ¦âªº¡A5A ¬Oµµ¦âªº¡CWinston §i¶D§Ú­ÌÃC¦â¥Nªí¤F¤£¦PªºÃø«×¯Å§O¡A·íµM¤F¡A§Ú­Ì­º¥ý¿ï¾Ü¤Fºñ¦â¡A§Ú­Ì­n±q³Ì²³æ©M³Ì®e©öªº¶}©l¡C

 ÃkµnªÌ©M«OÅ@ªÌ³£±N¹ï¤èªºÃ·¤l°µ¤F¥J²ÓªºÀˬd¡G¥´ªºµ²¬O¤£¬O¤@­ÓÂù8¦rµ²¡A¦w¥þ¦©¦³¨S¦³¦©¦n¡CµM«áÃkµnªÌª¦¤F¤j·§ 1 ¦Ì¡A¥L¬G·NºL¤U¨Ó¡A¥H´ú¸Õ«OÅ@ªÌ¬O§_¯à¦w¥þªº«OÅ@¥L¡C¹ï©ó¦w¥þ¨t²Î¡A§Ú­Ì°µ¤F¥þ­±ªº´ú¸Õ(test everything)¡A¦pªG¤@­Ó´ú¸Õ¥¢±Ñ¤F¡A§Ú­Ì¥²¶·¥ß¨è§â°ÝÃD¸Ñ¨M±¼¡C·í§Ú­Ì¶}©l´ÂÀ𳻪¦ªº®É­Ô¡A§Ú­Ì¥²¶·µ´¹ï½T«O¦w¥þ¨t²Î¥¿±`¤u§@¡C

 ²{¦bÃkµnªÌ¶}©lÃkµn¤F¡Cªì¯Å¤ô¥­¬Û·í®e©ö¡A§Ú­Ì¨S¶O¤°»ò«l¡A´Nª¦¨ì¤FÀ𳻡C§Ú­Ì¤Sª¦¤F¤@¦¸¡AµM«á¤¬´«¨¤¦â¡GÃkµnªÌ¨Ó°µ«OÅ@ªÌ¡A«OÅ@ªÌ¨Ó°µÃkµnªÌ¡C

 §Ú­Ì³£«æ©ó¹Á¸Õ§óÃøªº¯Å§O¡A¦]¦¹§Ú­Ì¨Ó¨ì¤F©¥À𪺥t¤@Ãä¡CMassimo ¥ýª¦¡A§Ú°µ«OÅ@¡C«Ü¤£©¯¡AMassimo ª¦¨ì¤@¥bºL¤F¤U¥h¡C¥L¤S¸Õ¤F¤@¦¸¡A¦ýÁÙ¬Oª¦¨ì¤F¤@¥b¡A´NºL¤F¤U¥h¡C§Ú«ØÄ³¦a»¡¡A¥L¤§©Ò¥HºL¤U¥hªº­ì¦]¡A¬O¦]¬°ª¦±o¤Ó§Ö¤F¡C

½ü¨ì§Ú¤F¡A§Ú¶}©l¤@¨B¤@¨B©¹¤Wª¦¡A³o­Ó¯Å§O­n¤ñ«e­±¨º­Óªì¯Å¤ô¥­Ãø¦h¤F¡C·íª¦¨ì¤@¥bªº®É­Ô¡A¦³¤@¶ô¥ÛÀY¤Ó¤p¤F¡A¨Ï§Ú¤£¯à«O«ù¥­¿Å¡A§ÚºL¤F¤U¨Ó¡C¦A¨Ó¤@¦¸¡A³o¤@¦¸§Ú¸£¤lùØ«O«ùµÛ³o¼Ë¤@­Ó©ÀÀY¡G§ÚÀ³¸ÓÁ`¬O«O«ù¤@ºØÃ­©wªºª¬ºA¡C·í§Ú­n¦V¤U¤@¶ô¥ÛÀY²¾°Ê®É¡A§Ú¥ý¸ÕµÛÄË¥X¤@°¦¤â¨Ó¡A¬Ý§Ú¬O¤£¬OÁÙ¯à«O«ùí©w¡A¦pªG¥i¥H¡A§Ú´N¥Î¨º°¦ÄË¥X¨Óªº¤â§ì¦í¤U¤@¶ô¥ÛÀY¡AµM«á¸ÕµÛ´£°_¤@°¦¸}¡C¦pªGÁÙ¯à«O«ùí©w¡A§Ú´N¥Î¨º°¦´£°_ªº¸}¡A½ò¦b¤U¤@¶ô¥ÛÀY¤W¡C§Ú¤@¦¸¤S¤@¦¸ªº¸Õ¡A¸ÕµÛºCºC²¾°Ê¡C¦³®É¡A·í§Ú¸ÕµÛÃP¶}¤@°¦¤â©Î¤@°¦¸}®É¡A§Ú¤£¯à«O«ùí©w¡A§Ú·|¥ß¨è·NÃѨì¡A¦b§Ú²¾°Êªº¹Lµ{¤¤¦³¤°»ò¿ù»~¡CµM«á¡A§Ú´N¥­Ã­ªº½Õ¾ã§Úªº¦ì¸m¡A¬Æ¦Ü§Ú·|¦V«á²¾°Ê¨ì¥ý«eªº¦ì¸m¡CÁ`¬O«O«ùí©wª¬ºAªº­ì«h¡A¨Ï§Ú¯à°÷¥­Ã­ªº²¾°Ê¡A¨Ã¥B¦b²¾°Ê¨ì¤U¤@¶ô¥ÛÀY¥H«e¡A¾¨¥i¯àªº°µ¤@¨Ç¸ÕÅç¡C

¦¹Á|¨Ï±o±Ð½m¹ï§Ú¯d¤U¤F²`¨èªº¦L¶H¡A¦]¬°³o¬O§Ú²Ä¤@¦¸Ãk©¥¡C

§Ú¦¨¥\ªº¨ì¹F¤FÀ𳻡A§Úı±o¦³¨Ç²Ö¡C·í§ÚºCºCªº¤U¨ì¦a­±®É¡A§Ú¦Y¤F¨Ç²¢ÂI¡A³Ü¤FÂI¥i¼Ö¡AµM«á§¤¦b¦a¤W¶}©l¥ð®§¡C§Ú¨Ã¨S¦³ª¦¤W³ÌÃø¯Å§OªºÀ£¤O¡A§Ú¥u¬O¦b¨É¨üÃk©¥ªº¼Ö½ì¡C

·í§ÚÅé¤O«ì´_¥H«á¡A§Ú¸Õ¤F¤@¤U¨º­Ó³ÌÃøªº¯Å§O¡C®@¡A¯u¬O¤ÓÃø¤F¡K¡K §Ú¥uª¦¤F¤@¦Ì´NºL¤F¤U¨Ó¡C¦A¸Õ¤@¦¸¡A¦ýÁÙ¬OºL¤F¤U¨Ó¡C·í§Ú¹Á¸Õ²Ä¤T¦¸ªº®É­Ô¡A±Ð½m¨Ó°µ¤F¤@¤U«ü¾É¡A¦ý§Ú¤@¶}©lÁÙ¬O¥¢±Ñ¤F¡C

§Ú­n¨D±Ð½m¿Ë¦Ûª¦¤@¦¸¡A³o¼Ë§Ú¥i¥H±q¥L¨­¤W¾Ç¨ì¤@¨Ç§Þ¥©¡C

§Úµo²{¥L¥ý¹ï³o©¥Àð¬Ý¤F´X¬íÄÁ¡A¥Lªº²´·úºCºCªº±q¦a­±±½¨ìÀ𳻡AµM«á¤~¶}©lª¦¡A¥L«Ü®e©ö¡A¦Ó¥B«Ü§Öªº´Nª¦¨ì¤FÀ𳻡C§Úµo²{¦b§ÚºL¤U¨Óªº¦a¤è¡A¥L§Q¥Î¤F¤@¶ô«Ü¤pªº¥ÛÀY¡A¦ý§Ú¦bª¦ªº®É­Ô«o¨Sµo²{¡A§Ú¸ß°Ý¥L«ç»ò¨º»ò®e©ö´Nª¦¤W¥h¤F¡C±Ð½m§i¶D§ÚÀ³¸Ó°µ¤@­Ó²³æªº­pµe¡]¦b½s½X¥H«e°µ¤@­Ó²³æªº³]­p¡^¡C

§ÚÅ¥±q¤F¥Lªº«ØÄ³¡A§Ú¤]¬Ý¤F¬Ý¨º­±Àð¡A¸ÕµÛ°µ­Ó²³æªº­pµe¡C§Ú¸ÕµÛ½T©w¤F¤@±ø³Ì¦nªº¸ô½u¡AÁÙ§ä¨ì¤@¨Ç«ÜÃøµo²{ªº¤p¥ÛÀY¡C

µM«á§Ú¶}©lª¦¤F¡CÁ@¡A§Úª¦¹L­è¤~ºL¤U¨Óªº¦a¤è¡C§Ú¸ÕµÛ¦A©¹¤Wª¦¡A¦ý¯uªº¬O¤ÓÃø¤F¡A§Úª¦¨ì¨â¦Ìªº®É­ÔºL¤F¤U¨Ó¡C§Ú¤S¸Õ¤F¤@¦¸¡A¦ýÁÙ¬OºL¤F¤U¨Ó¡C

§Ú©ñ±ó¤F¡A§Ú»Ý­n§ó¦hªºÅé¤O¡C§Ú¤£À³¸Ó§â¦Û¤v·d±o«Ü²Ö¡A©Ò¥H§Ú­ÌÂ÷¶}¤FÃk©¥³õ¡C

·í§ÚÂ÷¶}ªº®É­Ô¡A§Ú·Pı§ÚÀ³¸Ó¥i¥Hª¦¤W¨º­Ó³ÌÃøªº¯Å§O¡C§Ú¤§©Ò¥H¥¢±Ñ¡A¬O¦]¬°§Ú¨S¦³¨¬°÷ªº¸gÅç¡A¨S¦³¼ôª¾¤@¨ÇÀ³¸Ó¿í´`ªº¼Ò¦¡(patterns)¡C§Ú¦³«i®ð¡A·í§ÚÂ÷¶}ªº®É­Ô¡A¨Ã¨S¦³·P¨ì¬Û·í²Ö¡A¦]¬°§Ú¨S¦³©µªøÃk©¥ªº®É¶¡¡A§Ú·PıÃk©¥¬O¨º»òªº¦³½ì¡C

·í§Ú¦^®a¥H«á¡A§Ú¦^ÅU¤F¤@¤U³o¦¸Ãk©¥ªº¸g¾ú¡C§Ú·Q§Ú¬O¯uªº³ßÅw¥¦¡A©Ò¥H¬°¤F¯àª¦¹L³ÌÃøªº¯Å§O¡A§Ú¥²¶·§V¤O¾Ç²ß¤@¨Ç§Þ¥©¡]³]­p¼Ò¦¡¡^¡A´N¹³¤@­Ó»È¹õ­^¶¯©Ò°µªº¨º¼Ë¡C§ÚÁÙı±oÃk©¥¤£¶È¶È¬OÃk©¥¡A¹ê»Ú¤W¡A¥¦¬O¤@ºØ¹Î¶¤ªº¦X§@¡]team work¡^¡A§Ú­ÌÀ³¸Ó¦³¨¬°÷ªº­pµe¡AÀ´±o¨¬°÷ªº§Þ¥©¡A¦³±j§§ªº¦Ù¦×¡A¤@­Ó¦nªº±Ð½m©M¤@­Ó¦nªº·fÀÉ¡C³o¯uªº´N¹³³nÅéµo®i¹Lµ{¡A§Ú­ÌÀ³¸Ó¦³¤@ºØ¦nªº«ü¾É¤èªk¡A¦nªº­pµe¡A¦nªº¸gÅç¡A¦Ó¥B­nÀ´±o¤@¨Ç³]­p¼Ò¦¡(design patterns)¡C

¡@