軟體專案經理最應該關心的 14 件事

張恂發表於2010-07-15
本文的最新版在 http://www.zhangxun.com/entry.aspx?sname=TaijiAgile&section=pmconcerns


軟體專案經理的首要職責是確保專案的成功。如何保障專案的成功?有些事情和關鍵詞對於軟體專案經理來說非常重要。

不同的行業,不同的企業或組織,不同的專案,PM 的關注點可能各有不同。以下,列出一些我們認為最重要的幾件事情或方面。


1. People - 人類

首先是人和。

與任何其他行業的工程專案一樣,沒有和諧的人際關係,軟體專案也是不可能成功的。


1.1 Customers and Users - 搞好客戶和使用者關係

滿足客戶和使用者的需求是第一位的。客戶不滿意,不高興了,專案還有可能成功嗎?

所以,自始至終地搞好客戶關係和使用者關係,就顯得尤為重要。

很多客戶並不是 IT/軟體方面的行家,他們誤以為軟體開發和蓋房子、造汽車差不多。如何更好地 Engage the customer,得到客戶與使用者的理解和密切配合?這是一個難題。


1.2 The Team - 團隊

沒有哪個 PM 不希望自己擁有一支優秀的團隊。


1.3 Collaborate with Communication - 合作與溝通

完成一個專案,有時往往需要依靠外部的力量,與各方面的干係人(如其他部門和團隊、供應商、合作伙伴等等)進行密切而有效的合作與溝通。


1.4 Culture, Goals and Values - 文化、目標與價值觀

企業文化、團隊文化非常重要。

太極軟體工程認為 CMT:文化決定管理,管理決定技術。

如果所有利益攸關者都擁有共同的目標和價值觀,那麼專案就容易成功。


1.5 Politics and Economics - 政治經濟學

正如任何企業的管理者,每個 PM 都應該懂一點政治經濟學。如果 PM 缺乏政治頭腦和經濟頭腦,那麼他不可能在這個位置上坐久坐穩。


2. Reuse First - 重用(或複用)優先!

很遺憾,過去 10 多年,人們談論了很多過程改進、流程管理與質量管理,卻很少談及系統地重用(Systematic Reuse)。

重用不是銀彈,卻是金彈!

如何才能讓必需做的工作減到最少?


3. Process and Methodology - 選擇最適合的專案過程/流程與方法論

流程管理和改進是過去 20 年來全球管理界和工程界的一個持續關注熱點,軟體過程也不例外。

一個軟體企業、專案團隊遇到的大多數問題和煩惱與 Process 問題直接或間接有關。所以,首先要把工藝流程理清楚。是重點,還是輕點?

到底軟體開發的最佳流程什麼樣?什麼是軟體開發和管理的最佳方法?

我的專案團隊到底應該採用什麼樣的過程和方法論?


4. Models and Documentation - 模型與文件

怎麼才能更有效地進行溝通?

口頭溝通很不可靠,最好形成書面的文件,白紙黑字,有據可查。

圖形建模既是人類的一項本能,也是一種非常重要的溝通手段。


5. Risks - 風險

風險管理是軟體專案管理的第一管理。

PM 具有風險意識,每週每月維護一張 Risk List,是風險管理的一種最佳實踐。


6. Requirements (Functional and Non-Functional) and Scope - 需求(功能與非功能)與範圍

需求(To do what)位於軟體開發因果鏈的上游,需求定義不穩定、不全面、質量不高,往往會導致下游工作如估算和計劃、設計、程式設計、測試等等出現一系列錯誤,從而導致軟體專案的返工、超支和超期。

所以,PM 用心抓好需求工作這個牛鼻子,專案就已經成功一半了。


7. Plan, Review and Adapt - 計劃、評審與調整

做計劃,寫很多的管理文件和報告,是 PM 的首要職責?

做好計劃對於 PM 來說,的確是一件非常重要的工作。誰都希望料事如神,一切盡在計劃、掌握和管控之中。這樣的專案做起來自然很爽了。

可事實是,在複雜的軟體開發專案之中,套用一句俗話:永遠不變的是變化,而且宇宙定律告訴我們:運動與變化是永恆的,靜止與不變是相對的。

在對待計劃這個問題上,傳統方法與敏捷方法有著顯著不同。傳統方法更強調事先完美的計劃,敏捷方法更強調及時的反饋、評審和調整。把兩者有機地結合起來,就能讓我們立於不敗之地。(太極)


8. Time (Timing), Schedule and Progress - 時間、排程與進度

天時,歷來是個熱點與核心問題。

客戶和領導們最關心的往往是:這個系統到底什麼時候才能真正交付?

目前已知最好的保證進度、確保按時交付的軟體開發方法是:迭代式(Iterative)。


9. Testing and Verifying the Quality - 測試與質量

軟體質量一旦出了問題,會給專案帶來很大的麻煩。


10. Measurements and Metrics - 度量指標

如何減少拍腦袋決策?

量化,拿出科學資料來。

度量指標並不是越多越好,夠用就好。


11. Architecture and Design - 系統/軟體架構與設計

太極軟體工程認為,架構設計是軟體設計的主要內容和主要矛盾,架構的質量決定了軟體系統的質量。

PM 應該與團隊中的架構師緊密合作,儘早消除軟體架構的技術風險。


12. Reduce Cost - 降低成本

專案經理一定要會算賬。

時間成本是一種主要的隱性成本。


13. Optimize Management - 優化管理

何謂管理?

管理動作:Planning, Estimating,Controlling & Monitoring, Leading, Reviewing, Adapting, Coaching and Serving - 計劃、估算、監控、領導、評審、調整,教練與服務 ...

不同的價值觀,不同的哲學,導致不同的管理理念和方法。


14. Keep Learning, Accumulating Knowledge and Experience - 堅持知識與經驗的學習和積累

一位有經驗的 PM 會非常留意個人管理知識和經驗的不斷學習、更新與積累。

Values, Principles, Patterns and Practices (VP3) - 價值觀、原則、模式與實踐做法

建議參照 VP3 結構來組織知識和經驗。

...


做一名普通、平凡和平庸的軟體專案經理比較容易,做一名優秀的軟體專案經理很難。

您認為哪些事情和關鍵詞對於 IT/軟體專案經理來說最重要?

請拍磚、補充。

[ 本帖最後由 張恂 於 2010-7-15 15:25 編輯 ]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13633641/viewspace-668091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章