4.1.2.2 工作流程中的并發性
有個朋友曾經問我在開發項目時什么時候讓你感到浪費時間,我想了想,說是“當我很忙,但項目成員卻無所事事的時候”。細想原因,歸根到底是工作流程的問題。為什么這樣說呢,傳統開發時,當項目經理與系統分析員進行業務需求和設計時,通常認為項目成員沒有什么可做的,在項目過程中,做一些系統更改時,認為程序員水平不夠,幫不上忙。于是乎,程序員似乎理所當然地休息一下,上上網,打打游戲。時間這樣被浪費了。
這個問題是我們在此規范強調的重點之一:工作的并發性。
下圖是實現工作并發的一種方式:
在工作中實現并發,是合理地安排項目開發的重要環節,以避免不必要的浪費,同時通過合理分配工作量的方式,減輕了傳統項目中項目經理的壓力。
4.1.3.項目管理制度
淡化個人的力量,突出團隊的協作
在項目開發過程中,麻煩的是個別‘高手’的要脅。這種‘高手’掌握了系統關鍵的部份,并且此時無人可替,非他不可,這時‘高手’借機要求加薪,升職。。。。。。
如何避免這種情況的出現呢?
我認為是細化工作量,不要象以前的開發中那樣,說某某,你負責某個模塊。而是盡量細化工作內容,基本上應細化到每工作日,如果細化到工作時則更好。同時建立相互依賴關系,實現開發上的并發,每一個程序員的工作延遲,將牽涉到幾個程序員的工作,這樣,其他程序員為了在工作日中完成工作,必須相互幫助。從而實現了團隊的協作。
做好項目總結
項目總結是非常必要的。在項目總結中要對項目或開發階段中出現的問題進行一一歸納。其中包括技術總結,工作總結,行為總結,從而促進項目人員的成長并能在下一個階段或下一項目中避免相應的問題。
技術總結主要是對開發中所出現的技術問題進行總結。一個程序員開發的程序在被測試員測試后,或被代碼復審人員檢查后,發現了問題,如廢代碼過多,調用錯誤的參數等,此時你不應立即打斷程序員的工作,因為那樣會打擾程序員現有工作的思路。在項目總結會上,可以把他寫的代碼公布給項目組人員共同閱覽,讓大家給他提意見,這樣使之有了進一步的提高。
工作總結是指在開發過程中出現的其他問題,有些人能力差,有些人能力強,能力差的總是拖大家的后腿,這樣導致眾多意見,這樣可以通用大家總結的方式,一來可以為項目管理人員重新安排工作量提供參考,二來也在以另一種方式對程序員進行激勵。
行為總結是指對項目開發中個人行為所出現的問題進行總結。如個別人出現了消極怠工現象,那樣大家來總結一下,如果是外界因素如家庭等的影響,則看項目組成員是否可以幫上忙,或者由項目管理人員進行工作安排的協調。如果是上面說的‘高手’故意擺譜,則把事情講清楚,由項目管理人員進行相應的處理。
流程管理
習慣于傳統開發模式的程序員可項目經理可能不愿意按照項目管理規范來做。認為這樣做麻煩,要寫的文檔無數。在實施的過程中往往按自已的一套來做,從而造成項目的拖延。所以說,對項目中的各個流程都有相應的機制來監督,RUP中所談到的流程管理是與開發相并行一個機構,但在目前的情況下,可能無法實現。那樣必須建立相應的機制來處理,以避免不必要的損失。
4.2 分步實施
由于我們現在還處在原始的項目管理階段,實現一步到位是非常困難的,所以采用分步方式實施:
第一步 :實現初步規范(針對項目組級)
實現項目階段、角色層次的初步劃分
將項目階段劃分四個大的階段(如第一章),以里程碑的各項指標(指標根據實際情況縮減)考核項目組。
將項目組人員劃分成不同角色(一個人可能是多個角色),明確分工,加強協作。(角色根據實際情況縮減,基本上是業務人員、架構設計師、系統分析員、項目經理、環境配置人員、數據庫設計人員、系統集成人員、程序員、測試員、復審員、文檔員、界面設計人員)
項目工作重心轉到分析設計部分
將工作重心轉移到分析設計來,分析設計分為兩個方面,一方面是對系統功能與架構等系統設計,另一方面是指將系統分析細化至功能及類一級,并寫出對類的要求,如參數,功能等。
規范工作流程
將工作流程劃分為業務需求、環境配置、分析設計、項目管理、實施。嚴格按照項目規范進行管理。