看了鳥毅寫的〈有沒有不會寫程式在做PM的?〉,剛好讓我想到一個問題-我們到底憑藉什麼知識來做專案呢?我發現這個問題的答案,或許可以幫助我們解答「有沒有不會寫程式卻在做系統分析或PM的?」的問題。
鳥毅認為:
即使是PMP,理論上來說是可以跨產業,但營建業和軟體業的Domain Knowledge天差地遠,若沒有相關的知識與經驗能夠勝任嗎?如果不知道混凝土初凝/中凝的時間如何規劃時程?不知道寫web page與web server差別的人能夠規劃正確的時程嗎?我很懷疑。
做軟體專案,要了解 software industry 的專業知識以協助我們規劃出合理的時程,這點是毫無疑義的。專案管理者擁有這些知識當然是最好,然而問題卻常出在是要找到懂得軟體開發又善於管理的人並不是一件很容易的事。如果找不到同時兼具工程技術與專案管理的專案經理,是不是專案就執行不下去了呢?我想事情並不是那麼悲觀。
沒有錯,專案經理需要靠軟體開發的經驗知識來規劃時程,但不要忘了專案規劃更需要 team buy-in。規劃缺少團隊成員的參與與互動,你的專案計劃就會不夠完整或有所遺漏。團隊的目的本來就是要整合綜效,所以專案經理收集團隊成員所提供的資訊,整合成專案計劃就是 project integration management。,才是有效率的專案規劃過程。什麼事都靠自己親力親為的專案經理,看起來,雖然專案沒有事可以難倒他,但卻浪費了大量的機會成本專案經理花費時間在小事情上面,其實是浪費了專案經理的寶貴時間。。
除了軟體開發的經驗知識外,軟體專案開發還需要業務上的領域知識,也就是使用者所提供的特殊領域應用的現場知識。系統分析的工作便是了解使用者的現場知識並交由系統設計及開發人員以軟體開發的經驗知識完成後續的開發工作。雖然理論上,系統分析可以不需要了解程式如何開發,但如果系統分析不了解這些經驗知識的話,系統設計與開發無法接續工作的風險就會提高。因此,尋找有軟體技術背景的人來從事系統分析可以降低這種風險,但它絕非必要,關鍵在於系統分析人員與設計及實作人員之間溝通有沒有問題。
所以,我們到底憑藉什麼知識做專案呢?我認為稱職的專案經理所憑藉的是運用專案管理的專業知識整合軟體開發經驗知識與使用者現場知識,而專案管理知識最難掌握的是人的問題。對於獨孤木下面這一段話,我一直都是很認同的。
知人善任,這一直都被當做是管理者的一個很重要的課題。如果管理者不需要知道怎麼樣處理突發的狀況,怎麼樣處理人的問題,也不需要瞭解實際的工作項目,其實你的工作應該用個有點智慧的電腦程式就可以取代了。 書上講的理論,拿到實際生活中,就是要做調整。現實從來都不會那麼美好
然而,這段話也說明了,要喝牛奶不一定要把整頭牛牽過來呀,然後去學習擠牛奶的技能;我們只要學會怎麼讓善於擠牛奶的人幫我們就行了呀。
Powered by ScribeFire.
自動引用通知: 同人的生活派對 » 軟體開發是工藝還是工程?