若您ä¸é¡˜æ„收到rogersnotes,請點按æ¤è™•進行退訂:http://www.pmsuccess.net/subscriber.asp 或直接回覆本信件通知我們為您處ç†ã€‚
ç•¶ä»£çš„æ•æ·å¼è»Ÿé«”專案管ç†
一ã€è»Ÿé«”專案的特性
把軟體專案和其他形å¼çš„å°ˆæ¡ˆåšæ¯”è¼ƒï¼Œæ˜¯å¦æœ‰å…¶ç¨ç‰¹çš„åœ°æ–¹ï¼Ÿè»Ÿé«”å·¥ç¨‹ç•Œçš„é ‚å°–å¤§å¸«ï¼Œè»Ÿé«”å°ˆæ¡ˆç®¡ç†ç¶“典著作「人月神話:軟體專案管ç†ä¹‹é“ã€ä¸€æ›¸çš„作者-Federick P. Brooks, Jr.,指出軟體專案包å«äº†å››å¤§ç¨ç‰¹æ€§ï¼Œé€™äº›ç‰¹æ€§ä½¿è»Ÿé«”專案和一般專案ä¸åŒï¼Œä¹Ÿå› æ¤å¢žåŠ è»Ÿé«”å°ˆæ¡ˆç®¡ç†çš„困難度。這四大特性分別為:1.軟體的ä¸å¯è¦‹æ€§ï¼Œ2.軟體的複雜性,3.軟體的一致性,4.軟體的易變性。æ£å› 為軟體的這些特性,使軟體開發的管ç†é¢¨éšªç›¸å°å¢žåŠ è¨±å¤šã€‚éŽå޻幾å年,許多軟體專案管ç†çš„æ¥ç•Œç¶“é©—éƒ½å‘Šè¨´æˆ‘å€‘ï¼Œæ£ç¢ºçš„æ‡‰ç”¨å°ˆæ¡ˆç®¡ç†æ‰‹æ³•æ˜¯è»Ÿé«”å°ˆæ¡ˆç®¡ç†æˆåŠŸçš„ä¸äºŒæ³•門。
éŽå޻幾å年來,世界上許多優秀軟體團隊éµå¾ªå‚³çµ±çš„軟體開發模å¼(例如「瀑布å¼ã€ç‰),並æˆåŠŸçš„çµåˆå°ˆæ¡ˆç®¡ç†æ‰‹æ³•ï¼Œé †åˆ©å®Œæˆäº†è¨±å¤šå¤§ã€ä¸ã€å°åž‹è»Ÿé«”專案,進而使得專案管ç†ã€è»Ÿé«”工程(Software Engineering)和系統分æžèˆ‡è¨è¨ˆç‰èª²ç¨‹é ˜åŸŸï¼Œæˆç‚ºæˆåŠŸçš„è»Ÿé«”é–‹ç™¼å¾žæ¥è€…æ‰€å¿…é ˆè¦æœ‰çš„訓練。儘管æˆåŠŸç¶“é©—å¤šï¼Œä½†æ˜¯ï¼Œå¤±æ•—çš„è»Ÿé«”å°ˆæ¡ˆï¼Œä¹Ÿæ˜¯æ‰€åœ¨å¤šæœ‰ï¼Œè»Ÿé«”å°ˆæ¡ˆç®¡ç†çš„æ–¹æ³•ä»ä¸æ–·æ¼”進。
二ã€ç¾ä»Šé¢è‡¨çš„æŒ‘戰
而ç¾ä»Šçš„ç¶“æ¿Ÿç’°å¢ƒï¼Œæ›´æ¨™ç¤ºè‘—å¸‚å ´å¿«é€Ÿè®ŠåŒ–ã€æ¶ˆè²»è€…éœ€æ±‚ä¸æ–·æ¼”變的特性。å„種產æ¥ç•Œä¸ï¼Œéƒ½ä¸æ™‚出ç¾çœ‹ä¸è¦‹çš„æ½›åœ¨ç«¶çˆè€…,æ£è™Žè¦–眈眈,隨時想å–ä»£ç¾æœ‰çš„å„ªå‹¢è€…ã€‚å› æ¤ï¼Œè»Ÿé«”專案管ç†èˆ‡è»Ÿé«”開發從æ¥äººå“¡å¿…é ˆæ™‚å¸¸ä¿æŒæ•æ·(Agile)的特性,也就是在實務上,軟體專案管ç†è€…è¦å®šç¾©å‡ºéˆæ´»(maneuverable)ã€é©æ€§(adaptive) ã€ç²¾å¯¦(lean)çš„å„個專案æµç¨‹(process),é…åˆPM手法,開發並ç¶è·é«˜å“質的軟體,以滿足顧客需求,並回應ç¾ä»Šç«¶çˆçš„商æ¥è¶¨å‹¢ï¼Œä¸¦ä¸”å¢žåŠ è‡ªèº«æˆåŠŸæ©Ÿæœƒå’Œç«¶çˆå„ªå‹¢ã€‚
ä¸‰ã€æ•æ·(Agile)的起æº
ã€Œæ•æ·ã€æ˜¯æè¿°é–‹ç™¼ä¸¦ä¸Šå¸‚è»Ÿé«”çš„ä¸€å¥—åŽŸå‰‡å’Œå¯¦å‹™ã€‚æ•æ·é€™ä¸€æ¦‚念的主è¦åŸºæœ¬ç²¾ç¥žï¼Œå…¶å¯¦æ—©å·²ç¶“å˜åœ¨æ–¼è»Ÿé«”專案管ç†ç•Œç›¸ç•¶é•·çš„一段時間。從1950年代以來,美國國防部(DoD)å’ŒNASA就已經廣泛使用å復與漸增(iterative and incremental development, IDD)這種彈性的方法開發軟體專案。å³ä½¿æ˜¯Dr. Winston Royce 在1970年首度介紹知å的傳統「瀑布å¼ã€è»Ÿé«”專案方法的論文ä¸ï¼Œä¹Ÿç”¨ç›¸ç•¶ç¯‡å¹…的介紹åè¦†å¼æ‰‹æ³•ã€èˆ‡å®¢æˆ¶å…¨ç¨‹åƒèˆ‡çš„é‡è¦æ€§ï¼Œä¸¦å»ºè°:é‡è¦–與使用兩者是改善傳統「瀑布å¼ã€å¯èƒ½ç¼ºå¤±çš„æ¥µå¯è¡Œæ–¹æ³•。
1986年,竹內弘高(Takeuchi)和野ä¸è£•次郎(Nonaka)發表「New Product Development Gameã€ç™½ç𮿛¸ï¼Œé¦–度æå‡ºçš„以「專注ã€è·¨åŠŸèƒ½æ€§éƒ¨é–€ã€è‡ªè¡Œçµ„建的團隊(rugby approach)ã€åŽŸå‰‡ï¼Œé€™æ£æ˜¯æ•æ·å¼çš„å¦ä¸€é …原則。日後,這本白皮書æˆç‚ºæ•æ·è»Ÿé«”開發法ä¸ï¼ŒScrum 法的基礎。
2003年,Mary and Tom Poppendieck 在「Lean Software Development: An Agile Toolkitã€ä¸€æ›¸ï¼Œå¼·èª¿é€éŽç²¾å¯¦(Lean)çš„æŒçºŒæ”¹é€² (æŒçºŒå®Œå–„) ã€æ¶ˆé™¤æµªè²»ï¼Œç¬¬ä¸€æ¬¡å°±ä½¿å“質é”åˆ°è¦æ±‚,並åªç”¢ç”Ÿå®¢æˆ¶æ‰€è¦çš„產å“(ä¸é金)çš„é‡è¦æ€§ã€‚這些觀點和貢ç»ï¼Œéƒ½å½±éŸ¿ä¸¦ä¿ƒæˆäº†ç¾ä»Šå»£å—é‡è¦–çš„æ•æ·æ–¹æ³•。
å››ã€è»Ÿé«”開發與管ç†çš„æ–°é‡Œç¨‹ç¢‘--æ•æ·å®£è¨€(Agile Software development)
2001年,Kent Beck ç‰17ä½è»Ÿé«”å°ˆæ¥äººå£«ï¼Œçµ„æˆäº†Agile Alliance(æ•æ·ç¤¾ç¾¤),並且發表了Manifesto for Agile Software Development(æ•æ·å®£è¨€),強調軟體專案開發:
- å€‹äººèˆ‡äº’å‹•é‡æ–¼æµç¨‹èˆ‡å·¥å…· (Individuals and interactions over Processes and tools),
- å¯ç”¨çš„è»Ÿé«”é‡æ–¼æ–‡ä»¶çš„詳盡 (Working software over Comprehensive documentation),
- 與客戶的åˆä½œé‡æ–¼åˆç´„çš„å”商 (Customer collaboration over Contract negotiation),
- å›žæ‡‰è®ŠåŒ–é‡æ–¼éµå¾ªè¨ˆåŠƒ (Responding to change over Following a plan)。
宣言ä¸é‚„包括以下原則:
- åŠæ—©ä¸¦æŒçºŒåœ°äº¤ä»˜æœ‰åƒ¹å€¼çš„軟體以滿足客戶需求。
- 樂於é¢å°æ”¹è®Šçš„需求。
- 經常交付å¯ç”¨çš„è»Ÿé«”ï¼Œé »çŽ‡å¯ä»¥å¾žæ•¸é€±åˆ°æ•¸å€‹æœˆï¼Œä»¥è¼ƒçŸæ™‚間間隔為佳。
- 專案全程ä¸ï¼Œæ¥å‹™äººå“¡èˆ‡é–‹ç™¼è€…å¿…é ˆå¯†åˆ‡çš„ä¸€èµ·åˆä½œã€‚
- å°ˆæ¡ˆåœ˜éšŠç”±ç©æ¥µçš„個人來組æˆã€‚
- é¢å°é¢çš„æºé€šæ˜¯åœ˜éšŠå°å¤–傳éžè³‡è¨Šï¼ŒåŠåœ˜éšŠæˆå“¡ä¹‹é–“æœ€ä½³çš„æºé€šæ–¹æ³•。
- 專案進度的最é‡è¦çš„è¡¡é‡æ¨™çš„æ˜¯å¯ç”¨çš„軟體。
- æå€¡æŒçºŒçš„é–‹ç™¼ï¼Œä¸¦ä¸æ–·åœ°ç¶æŒç©©å®šçš„æ¥èª¿ã€‚
- æŒçºŒè¿½æ±‚技術的精進與優良的è¨è¨ˆã€‚
- 力求精簡,ä¸åšä¸éœ€è¦çš„工作 (按:這æ£ç¬¦åˆPM強調得ä¸é金觀點)。
- 團隊是自我組建形æˆçš„。
- å®šæœŸé©æ€§èª¿æ•´é¢å°å¤–ç•Œæ°¸ä¸æ¢æ¯çš„æ”¹è®Šã€‚
新一代軟體開發方法---æ•æ·è»Ÿé«”開發與管ç†ï¼Œè‡ªå®£è¨€ç™¼ä½ˆå¾Œï¼Œå¼•èµ·æ¥ç•Œå»£æ³›é—œæ³¨å’Œè¿´éŸ¿ã€‚ç›¸å°æ–¼ã€Œéžæ•æ·ã€ï¼Œã€Œæ•æ·ã€æ›´å¼·èª¿è»Ÿé«”é–‹ç™¼çš„é©æ€§è¦åŠƒ(adaptive planning,如 PMBOKæåˆ°çš„æ¹§æµªæ³•峿˜¯ä¸€ä¾‹)ã€æ¼”進å¼ç™¼å±•(evolutionary development) ã€è·¨åŠŸèƒ½éƒ¨é–€(cross-functional)而自我組建型(self-organizing)的團隊ã€é¢å°é¢çš„æºé€šï¼ˆæ¯”æ›¸é¢çš„æºé€šæ›´æœ‰æ•ˆï¼‰ã€æ—©æœŸäº¤ä»˜(early delivery) ã€æŒçºŒæ”¹é€²(continuous improvement)çš„é‡è¦ï¼Œä¸¦é¼“å‹µå¿«é€Ÿä¸”å½ˆæ€§çš„å›žæ‡‰å¤–åœ¨ä¸æ–·ç™¼ç”Ÿçš„æ”¹è®Šã€‚
äº”ã€æ¥ç•Œå¸¸è¦‹çš„æ•æ·å¼è»Ÿé«”專案管ç†
新近廣泛被é‹ç”¨çš„æ•æ·å¼è»Ÿé«”å°ˆæ¡ˆç®¡ç†æ–¹æ³•包括:
- Scrum: “Scrum”一å—,得åä¾†è‡ªæ©„æ¬–çƒæ¯”è³½ä¸ï¼Œç«¶è³½çƒéšŠçš„一種動作。Scrumé€™å€‹æ•æ·å¼è»Ÿé«”å°ˆæ¡ˆç®¡ç†æ–¹æ³•的主è¦å‰µå»ºè€…包括:竹內弘高(Takeuchi)ã€é‡Žä¸è£•次郎(Nonaka)〠Ken Schwaberã€èˆ‡ Jeff Sutherlandç‰ã€‚
Scrum是é‹ç”¨å覆(疊代)èˆ‡å¢žé‡æ³•(iterative and incremental)çš„ä¸€ç¨®æ•æ·å¼è»Ÿé«”é–‹ç™¼çš„ç®¡ç†æ–¹æ³•。在作法上,Scrum定義了一組軟體æµç¨‹æ¨¡å¼(software process patterns)ï¼Œè€Œå…¶ä¸æ¯ä¸€å€‹å€‹åˆ¥çš„software process pattern,都由一組開發活動組æˆã€‚é–‹ç™¼æ´»å‹•çš„çµ„æˆæˆåˆ†ï¼ŒåŒ…括:
- 專案需求優先åºçš„Backlog,
- 一系列稱為Sprints 的工作單元,
- 團隊å°å…§èˆ‡å°å¤–çš„æ—¥å¸¸çŸæœŸæºé€šæœƒè°--Scrum meetings,和
- æŒçºŒç”¢å‡ºçš„è»Ÿé«”äº¤ä»˜æˆæžœï¼Œç¨±ç‚º Demos。
å¯¦å‹™å·²ç¶“è‰æ˜Žï¼Œé‹ç”¨Scrum法在時程緊迫ã€éœ€æ±‚æŒçºŒä¸æ–·æ”¹è®Šã€åŠå…·ä¼æ¥é—œéµæ€§(business criticality)的專案開發上,已ç²å¾—相當多顯著的æˆåŠŸå¯¦ä¾‹
Extreme Programming: Extreme programming (XP)一詞由Kent Beck æ‰€å‰µé€ ã€‚å’Œå‚³çµ±æ–¹æ³•ä¸åŒçš„æ˜¯ï¼šé€™ç¨®æ–¹æ³•樂於é¢å°é–‹ç™¼éŽç¨‹ä¸ï¼Œå®¢æˆ¶ä¸æ–·æå‡ºæ”¹è®Šçš„需求,並經常交付å¯ç”¨çš„軟體,而藉由新的交付軟體,開發者å¯ä»¥ç´å…¥å®¢æˆ¶ä¸æ–·è®Šæ›´ä¸¦å¢žåŠ çš„éœ€æ±‚ã€‚æ¤å¤–XP鼓勵æºé€šã€å›žé¥‹ã€ç°¡å–®åŒ–ã€å°Šé‡ã€èˆ‡å‹‡æ°£ç‰åƒ¹å€¼è§€ï¼Œä½œæ³•上也採å–雙人組編寫程å¼(coding in pairs)以利åŒå„•審查(peer review)ï¼Œè»Ÿé«”æ¸¬è©¦ä¹Ÿé ˆæŽ¡å–®å…ƒæ¸¬è©¦(Unit Testing)的型å¼ã€‚
據調查,XPç›®å‰ä¹Ÿæ˜¯æœ€è¢«æ¥ç•Œå»£æ³›æŽ¡ç”¨çš„æ•æ·å¼æ–¹æ³•之一。
é™¤äº†ä¸Šè¿°å…©ç¨®æ•æ·å¼æ–¹æ³•外,著åçš„æ•æ·å¼æ–¹æ³•é‚„åŒ…æ‹¬ææ´²æµè¡Œçš„DSDM(Dynamic Systems Development Method)ï¼Œå¼·èª¿äººè€Œéžæµç¨‹çš„ Crystal Clear Methodsã€Lean Software Developmentã€Feature Driven Development(FDD)〠Agile Modelingã€Agile Unified Process (AUP) ç‰ç‰ã€‚
å…ã€çµè«–
軟體開發與軟體管ç†ä¸€ç›´åœ¨å°‹æ‰¾è¬éˆä¸¹ï¼Œå¸Œæœ›æœ‰ä¸€å‹žæ°¸é€¸å…¼é¡§å®Œç¾Žå“質ã€ç¬¦åˆæ™‚程ã€ä¸è¶…æ”¯æˆæœ¬çš„è»Ÿé«”é–‹ç™¼èˆ‡ç®¡ç†æŠ€è¡“ï¼Œä½†æ˜¯å¯èƒ½æ£å¦‚軟體專案管ç†å¤§å¸« Federick P. Brooks 在 軟體工程的經典論文「No Silver Bullet — Essence and Accidents of Software Engineeringã€èªªçš„ï¼Œæ²’æœ‰ä»»ä½•ä¸€é …æŠ€è¡“æˆ–æ–¹æ³•å¯ä½¿è»Ÿé«”工程的生產力在åå¹´å…§æé«˜åå€(和硬體的進æ¥ç¨‹åº¦å®Œå…¨ä¸åŒ)。
PMIçš„PMBOKæŒ‡å—æä¾›äº†æœ€å„ªè‰¯çš„å°ˆæ¡ˆç®¡ç†å¯¦å‹™çš„æ¨™æº–。在軟體實務界,ä¸ç®¡éŽåŽ»æŽ¡ç”¨å‚³çµ±çš„æ–¹æ³•(如瀑布å¼),或新近的å„ç¨®æ•æ·å¼æ–¹æ³•,都應具備çµåˆäº”大æµç¨‹ã€å大知è˜é ˜åŸŸçš„åœ‹éš›æ¨™ç«¿çš„å°ˆæ¡ˆç®¡ç†æž¶æ§‹ï¼Œæ‰æ˜¯è»Ÿé«”開發與專案管ç†å¾—æˆåŠŸçŽ‹é“。
作者:宋泰官,PMP
作者簡介:
宋泰官,美國德州大å¸(UTA)å·¥æ¥å·¥ç¨‹åšå£«ï¼Œè³‡è¨Šç§‘å¸ç¢©å£«ï¼Œå°å¤§å¸å£«ï¼Œç›®å‰ä»»æ•™æ–¼å—開科技大å¸è³‡è¨Šç®¡ç†å¸ç³»ï¼Œæ–¼2012å¹´8月29æ—¥æˆç‚ºPMPã€‚åœ¨å¸æ ¡æ•™æŽˆç¶²é è¨è¨ˆã€å°ˆæ¡ˆç®¡ç†ã€ç³»çµ±åˆ†æžèˆ‡è¨è¨ˆç‰èª²ç¨‹ï¼ŒæœŸå¾…未來在教å¸èˆ‡ç ”究的工作上,æŒçºŒè»Ÿé«”與專案管ç†çŸ¥è˜é ˜åŸŸçš„æŽ¢ç´¢èˆ‡æ‡‰ç”¨ã€‚