Posted on June 1, 2009 in Organic Web Design by pest1 Comment »

æž IT 這行一定會碰到技術和需求 (requirement) 相è¡çªçš„æ™‚候,有些來自業務部門的需求è¦å˜›æ˜¯å¤©é¦¬è¡Œç©ºã€ä¸ç„¶å°±æ˜¯ç–ŠåºŠæž¶å±‹ã€‚ä»¥æŠ€è¡“çš„è§’åº¦ä¾†èªªï¼Œå¾€å¾€ä¸æ˜¯åšä¸åˆ°ï¼Œè€Œæ˜¯å€¼ä¸å€¼å¾—åšçš„å•題。

學界訓練技術人æï¼Œæ˜¯æ•™å°Žå­¸ç”Ÿæ‰¾å‡ºå¥½çš„è§£ç­”ï¼Œå°±ç®—ä¸æ˜¯æœ€ä½³è§£ï¼Œè‡³å°‘ä¹Ÿæ‡‰è©²è¦æ‰¾å‡ºæ¬¡ä½³è§£ (suboptimal solution)。”Dirty-hack” 並ä¸åœ¨å­¸æ ¡æ•™å°Žçš„範疇內。å³ä¾¿é€²å…¥æ¥­ç•Œï¼Œæ‰€è¬‚的技術大師也往往是因為能夠æå‡ºæ¼‚亮的架構或是清楚的系統介é¢è€Œå—åˆ°å°Šæ•¬ï¼Œè€Œä¸æ˜¯å› ç‚º “總是能讓一個陳舊的系統還å¯ä»¥é‹è¡Œ” 而å—人稱é“。如果說 MBA 畢業生其實åªè¦å­¸æœƒåœ¨ä¸€ä¸Šä»»å°±å–Š “組織é‡çµ„” å°±å¯ä»¥ç•¢æ¥­ï¼Œé‚£è³‡æ·±ç³»çµ±æž¶æ§‹å¸«æˆ–許也åªéœ€è¦æœƒ “reboot”, “re-install” å’Œ “re-architect” å°±å¯ä»¥æ··å£é£¯åƒäº†ã€‚

坿˜¯åååšç”Ÿæ„是沒有è¦å‰‡çš„,需求 (requirement) æ˜¯æ²’æœ‰æ­¢ç›¡çš„ï¼Œæ°¸é æœƒæœ‰ä¸€å€‹æ–°çš„生æ„éœ€è¦ Dirty hackï¼Œæ°¸é æœƒæœ‰ä¸€å€‹æ–°å®¢æˆ¶æƒ³è¦è€Œç•¶åˆæ²’考慮到的需求。這也是跟åšä¸€å€‹æ‹‹æ£„å¼çš„網站最大的ä¸åŒï¼Œå› ç‚ºæ‹‹æ£„å¼çš„網站沒有維護的å•é¡Œã€æ²’有陳年的商業é‚è¼¯ã€æ²’有新需求注入。

å…ˆå‰æˆ‘èªç‚ºå¥½çš„æž¶æ§‹æ˜¯ç³»çµ±ç©©å®šæœ€é‡è¦çš„因素,但後來發ç¾ï¼Œå•†æ¥­ç¶²ç«™çš„程å¼ç¢¼å’Œå•†æ¥­é‚輯是切ä¸é–‹çš„,並沒有一個架構有辦法讓商業é‚輯自æˆä¸€æ ¼ã€‚除éžåšç”Ÿæ„的變化種類減少,ä¸ç„¶ç¶²ç«™çš„程å¼è¤‡é›œåº¦å°±ä¸å¯èƒ½æœƒæ¸›å°‘。一旦é‚è¼¯è¤‡é›œï¼Œå°±åªæœ‰èµ°å‘ dirty hack 一途。

æŸç¨®ç¨‹åº¦ä¸Šé€™ä¹Ÿè§£é‡‹äº†ç‚ºä»€éº¼å¤§å…¬å¸æ²’è¾¦æ³•åƒæ–°å‰µå°å…¬å¸ä¸€æ¨£å¿«é€Ÿç”¢ç”Ÿç¶²ç«™ï¼›æ‰£æŽ‰ç¹è¤‡çš„內部æµç¨‹ï¼Œç¨‹å¼è¨­è¨ˆå¸«è¦æ“”å¿ƒçš„ä¸æ˜¯ “我加了什麼新功能?”,而是 “我æžçˆ›äº†ä»€éº¼èˆŠåŠŸèƒ½?”

純技術性的想法是,拋棄舊的架構,在新的架構把所有æ±è¥¿é‡å¯«ã€‚ä¸éŽèµ°é€™æ¢è·¯è¦æˆåŠŸæ˜¯é›£ä¸ŠåŠ é›£ï¼Œæƒ³åƒä½ å¿…須抄寫一張已經被立å¯ç™½å¡—抹了å幾年的手寫è‰ç¨¿ï¼Œè¦æ€Žéº¼çŸ¥é“ç¾åœ¨å¯«åœ¨ä¸Šé¢çš„æ±è¥¿ï¼ŒçœŸçš„æ˜¯å®ƒè¡¨é¢ä¸Šçš„æ„æ€å‘¢?

釿–°æž¶æ§‹çš„å¦ä¸€å€‹å•題是,這段時間你的研發能é‡å°±è¢«ä½”æ»¿äº†ï¼›ä½ åœ¨åŽŸåœ°è¸æ­¥ï¼Œåªå¸Œæœ›æœªä¾†å¯ä»¥è·‘得比競爭者快 — 我希望你能活到那時候。

å°±å› ç‚ºé€™å…¶å¯¦ä¸¦ä¸æ˜¯å€‹ç°¡å–®çš„å•題,所以æ‰è®“能夠妥善處ç†é€™ç¨®å•題的公å¸èƒ½å¤ è„«ç©Žè€Œå‡ºå§ã€‚ä¸éŽï¼Œé€™æ¨£æ›´å¥½çŽ©ï¼Œä¸æ˜¯å—Ž?