對於國內大多數軟體公司,一人身兼多職是很常見的事情,當然我也不反對,完全沒有異議。一人身兼專案經理和架構師更是普遍的,所以只拿專案經理與架構師兩個職位做個案例分析。
每當我帶新人的時候,我都會首先問他們一句“你瞭解哪些技術,對什麼感興趣,以後想幹什嗎?”,瞭解到這些,我才能更好的把相關知識點暴露在他們面前,至於他們能擷取多少,我也不會多加提點,一切都點到為止,我是個“無良導師”嘛。新人的起步很重要,無論是對企業,對團隊,還是對他們個人來說,特別是剛從學校出來的童鞋,築基好壞直接影響他們一生。
工作中,我們要分清專案經理與架構師的職責和看事物的顆粒度。專案經理與架構師都得做到對全域的把控,只不過一個從資源撫平層次,一個從技術調配層次。現今,國內一些企業對專案經理要求過於簡單,他們認為專案經理需要有很深的技術功底,有個幾年工作經驗就可以,架構師要求同上。不要笑,很多招聘網站職位要求都是這樣,好多企業此時都在演繹。我曾今參加過這樣一個項目,專案經理自身技術很強,項目業務一般,但那個項目大家維護得很累,比預期拖延了一半的工期,客戶滿意度很差。
究其原因:1、項目過程管理很差,原始碼有丟失,編碼規格各不相同,修複bug很困難,基本是重新設計;
2、項目沒有合理測試,商務邏輯基本沒測;
3、項目沒有基準,沒有驗收標準,客戶可以任意變動需求;
4、項目前期成本控制不當,維護成本急劇上升。
其實對於個人來說,我們要有明確的職業規劃。我為那個專案經理感到可惜,他的技術很強,但他放棄了他的強項。資源與技術的調配都不是一個簡單的過程。專案經理需要對團隊人員性格做到了如指掌,對客戶業務做到胸有成竹,對組織成本做到合理控制,對過程風險做到及時防控,這最基本的事情做好才能正確調配資源。架構師需要有很深的技術功底,對相關領域應該耳熟能詳,這樣才能把客戶業務融入到技術中,用熟悉的技術表達客戶業務。分清兩者的職責,做好各自的職責,我們才能把項目做得更好。上面我也說過,我不反對專案經理與架構師可以由同一個人擔當,對於資源缺少的企業,我能夠理解,但是這樣對這個擔當者的要求就非常之高、非常之嚴格,他要隨時切換自己的思維,從不同維度思考問題。專案經理與架構師抉擇,對企業專案至關重要。記得做過的一次關於車道管理的整合項目,使用者情境是:“在現有高速公路啟動並執行收費系統上,加入對貨車計重收費的業務,不能影響原有的業務”。對於這種業務變更情境,大家項目中都常見。當時的專案經理是勇哥,架構師是東哥,他們管理與技術分工很明確,那段時間也是我技術轉折點。現在我工作的好多經驗都是借鑒他們的。 車道管理採用領域驅動設計開發,各個模組領域模型邊界都很清晰,加入計重業務對現有模型基本沒有改動,很少出現牽一髮而動全身的情況。交付時,全省收費站試運行三天便正式應用。
專案經理與架構師,其實好比籃球隊的教練與隊長。祝大家在比賽中折桂,在比賽外開心每一天。
我的目標是:架構師,首席! ——Aaron.Pan 2013/05/19