對于短期的Web小型項目, 無論是開發(fā)周期、成本,還是技術上都有很大的風險。然而許多人對此認識不足, 導致項目失敗,或是產(chǎn)品發(fā)布日期一拖再拖、成本大幅上升,或是匆忙發(fā)布后漏洞百出。 本文從項目管理的角度說明,即使在小型項目中,項目經(jīng)理也不能將項目全權委托給技術主管, 而應當建立合適的體制,從幾個方面對項目進行控制,這樣才能保證項目的順利進行。
通常的項目體制不適合短期開發(fā)
在大型機上花費幾年的時間構建大型系統(tǒng)時,項目經(jīng)理通常僅負責一個項目, 手下也聚集著許多軟件工程師。在需求定義階段,項目經(jīng)理直接與客戶進行交涉, 在需求定義中發(fā)揮著領導的作用。
這種體制本來十分理想,但對于開發(fā)期間只有幾周到幾個月的小型Web系統(tǒng)來說, 卻不盡人意。團隊的實際情況是,項目經(jīng)理和技術主管通常會兼任數(shù)個項目, 設計、編碼的工作全部交給年輕的工程師或合作方的工程師們。 這時,項目經(jīng)理的一部分職責通常會交給技術主管分擔。
職責、分工不明確
開發(fā)Web系統(tǒng)時,客戶企業(yè)經(jīng)常會要求使用EJB、XML、Web Service等較新的技術。 項目經(jīng)理為了滿足客戶企業(yè)在技術上的要求,不得不依賴于技術主管。 另外,項目經(jīng)理通常要照看多個項目,因此與之相比,技術主管接觸客戶的機會更多一些。
這樣,在Web開發(fā)中技術主管的職責范圍變得非常廣泛。因此,項目經(jīng)理和技術主管的 職責分工很容易變得模糊不清。絕大多數(shù)情況下,職責分工問題不僅沒能形成書面文檔, 甚至連簡單的協(xié)議都做不到。極端的例子是“除了錢的問題,其他全部委托給技術主管”。
這種現(xiàn)象并不鮮見,但是在大規(guī)模項目中,通常會有足夠多的時間和人力來規(guī)避風險, 因此即使發(fā)生問題,也總有辦法解決掉。但是小規(guī)模、短期的Web項目中,由于職責分工不明確 而導致項目內部的意見不一、決策效率低下等,是項目失敗的直接原因。
項目經(jīng)理無法掌握項目的狀況
讓我們具體地看一看,在項目重要的任務之一——需求定義中,職責分工不明確會造成怎樣的問題。
在Web系統(tǒng)開發(fā)中,客戶企業(yè)經(jīng)常會在開發(fā)途中增加、改變需求,因此完整的需求在項目初期很難確定。 再加上項目經(jīng)理要兼任多個項目,無暇顧及每個項目的需求定義,只得將其全權委托給技術主管。
這種條件下,技術主管僅從技術的觀點來接受客戶的要求,導致項目超過預算、超過預定工期的可能性非常大。 另外,項目經(jīng)理無法詳細把握需求定義,因此無法把握項目的狀況,導致項目的范圍失控。 終結果必然是,當問題的征兆出現(xiàn)時,根本無法采取任何對策,如與客戶交涉“先實現(xiàn)優(yōu)先的功能,其他無關緊要的功能下次再實現(xiàn)”等。
想象一下,技術主管完全根據(jù)自己的判斷來回答客戶企業(yè)的重要問題時會出現(xiàn)什么后果。 項目經(jīng)理和技術主管的意見一致時尚可,意見不一致時,必然會招致客戶的混亂。 此外,項目經(jīng)理對技術主管過于依賴,會導致不好的結果。例如,帶著“他會做好的”、 “這件事兒是他的責任”的想法,通過郵件給技術主管分配任務,其結果通常是該做的事情 沒人負責。