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´Á¥|
ºKn
³o½g¤å³¹¥HÃk©¥¨Ó´yz
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¥¿¶}©lnÃkª¦«Ç¤º©¥Àð(indoor-wall)ªº®ÉÔ¤F¡C¦bnÃ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ӯŧOn¤ñ«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¦Ó¥BnÀ´±o¤@¨Ç³]p¼Ò¦¡(design
patterns)¡C
¡@
|