曾負責過幾個嵌入式產(chǎn)品的項目,雖然因為各方面的原因,就如在項目里既是軟件工程師,又是項目負責人,既要負責軟件代碼的設(shè)計編寫調(diào)試,還要協(xié)助硬件工程師完成原理圖的設(shè)計,甚至還要和客戶溝通需求和報告進展以及聯(lián)系供應商等。其中有一個項目客戶還是個外國人,最終成果并不是很好。但是反思了幾次失敗的項目管理,我總結(jié)了很多原因,其中有個人能力和態(tài)度問題,也有技術(shù)資源和管理體制的不足與缺陷對整個項目的進展所造成的不利影響。經(jīng)過反復的總結(jié)思考和再學習,總結(jié)歸納出了一個IT項目開展的基本流程。
明確需求
明確需求是一件很重要的事件,在項目開展之前必須了解通過這個項目所要達到目標。很多項目最終就是死在前期需求溝通不明確,項目進行中胡亂改需求上。針對公司和產(chǎn)品性質(zhì),需求的來源往往有幾種:產(chǎn)品經(jīng)理,上級領(lǐng)導,客戶,用戶。在他們提出需求時,需要跟他們溝通確定需求,把需求分類,做成詳細具體的需求列表(在需求來源本身不夠詳細具體的情況下,可以根據(jù)公司現(xiàn)有的技術(shù)積累和資源成本來指定需求完成的指標),將需求列表附帶簡要說明用郵件(方便日后查驗校對)的方式發(fā)送提出需求的一方確認。
需求分析
在明確需求后,就需要對需求進行分析,分析主要從三個方面展開:技術(shù)可行性,資源成本,局限性。
- 技術(shù)可行性
技術(shù)可行性分為兩種,一種是實際技術(shù),就是存在的技術(shù)但是未被公司所獲得的,比如項目需要使用一款新的系列或新的廠商的MCU,又或者項目中需要使用到新的嵌入式系統(tǒng)或者軟件架構(gòu)。這部分技術(shù)來源一般通過MCU供應商獲得支持,或者從網(wǎng)絡(luò)獲取資料,但是無論是哪種方式都會增加公司內(nèi)部研發(fā)人員的學習成本,從而增加時間成本。這也是一般純粹的方案公司不輕易換軟硬件平臺的原因。一種是屬于公司技術(shù)資源已經(jīng)積累的技術(shù),像對這類技術(shù)的使用不會額外占用公司研發(fā)人員過多的學習時間。所以技術(shù)積累對一個科技公司而言是一件很重要的事,但是技術(shù)積累,并不是說,曾經(jīng)使用過這類技術(shù),就當公司已經(jīng)實現(xiàn)對這種技術(shù)的積累。就好比一個模塊代碼而言,如果無法實現(xiàn)搞內(nèi)聚低耦合,沒有經(jīng)過多次測試優(yōu)化,形成標準的API接口。方便調(diào)用甚至移植,就很難稱它為一個標準合格的技術(shù)積累。真正的技術(shù)積累應該是被公司所掌握,而不是被某個研發(fā)人員所掌握。
其實通過額外的學習時間去掌握新的實際技術(shù),可以使公司獲得更多的技術(shù)積累。為項目研發(fā)提供多一種解決需求的可能。就看如何去權(quán)衡其中利弊了。
- 資源成本
資源成本主要包括時間成本,人力成本,財務成本,還有管理成本。項目負責人需要評估好項目所需消耗的時間和所需調(diào)用人員和資金,以及管理層之間參與此項目的成本。
- 局限性
局限性是對技術(shù)可行性和資源成本與公司現(xiàn)有的技術(shù)資源和可用資源進行一個比較總結(jié)。
需求評估報告
當對整體的需求分析完成后,需要寫一份需求評估報告,其中包括需求概括,就是描述需要實現(xiàn)怎樣的需求。還有技術(shù)分析,該使用什么樣的技術(shù)完成該需求。對項目中需要使用的資源和公司的可使用資源進行核查比較總結(jié)。對項目中可能存在風險進行預估,例如人員調(diào)動,需求變化,資源變動等。
啟動項目
當取得上級領(lǐng)導審核需求評估報告,并項目啟動書上簽字批準后,就開始啟動項目了。項目啟動后,需要依次完成以下各項工作
- 組織人員
將項目中需要使用的人力資源分配進項目組中,如果是嵌入式產(chǎn)品應該包括:硬件工程師,軟件工程師,調(diào)試人員,測試人員。
硬件工程師負責原理圖的設(shè)計,并layout,外發(fā)PCB打樣貼片。
軟件工程師負責程序代碼的設(shè)計,并在PCB樣板中實現(xiàn)功能。
調(diào)試人員負責樣機裝配,并協(xié)助軟件工程師,通過修改軟件代碼參數(shù)和硬件電氣參數(shù)的方式,使樣機達到最佳的性能效果。
測試人員根據(jù)測試文檔,對樣機的功能指標進行測試,并反饋給項目負責人,項目負責人根據(jù)反饋問題的性質(zhì),安排相應的項目組成員跟進解決。
- 功能拆分
一個需求往往是由數(shù)個甚至是數(shù)百數(shù)千個基本功能組合而成的,項目負責人需要和技術(shù)負責人溝通,將需求按功能點進行拆分。當功能拆分完成后,就可以交由項目組的軟硬件負責人選擇適合的軟硬件解決方案。
- 任務分發(fā)
當功能拆分完成后,就可以把一個個功能實現(xiàn)轉(zhuǎn)化成任務,下發(fā)給項目組成員去完成,在任務下發(fā)過程中需要明確指定的是任務的負責人員,任務的開始和完成時間,以及任務的驗收標準。另外還需要注意的是任務的前承后繼關(guān)系。例如在大部分項目中,測試任務都是在其他任務完成提交的前提下進行的,所以其他任務屬于測試任務的前承,而測試任務屬于后繼任務。
- 項目前期報告
項目的前期報告需要包含項目的整體計劃:如啟動日期,中間節(jié)點目標,結(jié)束日期;以及人員安排:每個項目組成員的目標任務,計劃工時,所需要的資源。最后需要附上項目計劃的圖形報表:任務流程圖,時間計劃甘特圖,資源分配圖。
- 項目中期節(jié)點
在項目進行過程中,需要對項目的進度進行有效的跟蹤和促進。掌握和記錄那些任務是已完成的,那些任務是未完成的,有哪些任務是超前或者滯后的,超前和滯后的原因是什么。另外就是資源使用情況的核查,已經(jīng)使用的資源,可使用的資源,實際消耗的資源的定時清算,有可能的情況下,為項目爭取更多的資源。
- 項目收尾
當項目結(jié)束的時候,需要將最終的成果對上級領(lǐng)導,產(chǎn)品經(jīng)理或者客戶進行展示和總結(jié)。對消耗的資源進行核算,最后是對項目開展過程中遇到的一些問題和出現(xiàn)的情況總結(jié)歸納,對項目組成員的表現(xiàn)進行評價考核。