qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          項目估算與計劃不是一般的難(上)

           摘要:

            估算、計劃、計劃跟蹤是項目管理的主要工作,難度之高超乎你想象!光靠學習項目管理理論難以管好項目,而往往真能管好項目的都是那些在具體項目中打滾出來的實干人士。本文將會讓你全面學習項目估算、計劃、計劃跟蹤的知識,體驗實際項目管理的難度,學到提高項目管理水平的一些方法。本文有點長,麻煩你慢慢閱讀了!

            大綱:

            1、從建筑工程說起
            2、估算要估啥?
            3、估算如何做出來?
            4、計劃有什么內容?
            5、計劃是如何做出來的?
            6、如何跟蹤計劃?
            7、優秀項目經理是怎樣煉成的?

            正文:

            從建筑工程說起

            大家都喜歡用建筑工程與軟件工程做比較,但我們常常所說的建筑工程只是指建筑施工部分,而不是一個完整的建設項目。我們常常將施工項目管理與軟件項目管理進行比較,這是不合適的。

            一個完整的建設項目,由甲方提出需求,設計院根據需求設計出圖紙,再由造價公司進行估價,然后公開招標,最后由建筑公司承擔建設。相對于軟件項目,建筑工程有以下特點:

            1、從需求到竣工,經歷需求、設計、估價、建設等環節,每個環節由不同專業的公司或人員完成。

            2、每個環節簽署不同的合同,每個環節對應不同的乙方。而軟件項目從需求到開發完成,基本上是簽署一個合同,只有一個乙方。

            3、整個過程可以認為是瀑布型的,需求和設計會在前期確定,后期基本上不會變動。而軟件項目就沒有這么理想了,需求和設計不斷在變。

            4、建筑工程只會采用最成熟的技術,可行性和設計方案要經過反復論證,你看看港珠澳大橋就論證了好多年了。而軟件項目往往要采用不成熟的技術,邊設計邊嘗試。

            5、建筑工程的估算是在需求與設計都確定的基礎上估算的。而軟件項目不確定的東西太多,估算無法一次成型。

            軟件項目管理可能是最復雜的一種項目管理,因為軟件項目具備這樣的特點:

            1)需求、設計不明確。

            2)項目組需要在需求設計不明確的基礎上,承擔需求、設計、編碼、實施等全部工作。

            如果你是這樣項目的項目經理,對你來說是多么大的挑戰啊!

            建筑行業發展了這么多年,整個建設工程的各個環節已經有很多專業的公司,有很多設計院、造價公司、建筑公司等。而軟件行業,幾乎很少見到專業的需求分析公司、軟件設計公司。這既是軟件行業的特點決定的,也是甲方習慣決定的。我們公司在一些項目嘗試和客戶簽署兩份合同,第一份合同只做需求的工作,而第二份合同則完成實現與編碼,但客戶往往不會接受。

            軟件項目管理難歸難,但我們還是要去面對的,我們應該如何應對軟件項目的估算與計劃呢?

            估算要估啥?

            很多人問如何才能做好估算?這個問題是問如何正確做事情的問題,而實際上要回答好這個問題,先要回答估算要估算什么內容的問題,也就是什么是正確的事情問題。

            對于估算要區分以下幾種情況:

            1、甲方對項目的估算

            甲方想做某個系統,會根據自己對系統的估計以及自己的預算估計出一個價錢。甲方往往不能準確對項目進行估算,項目的價錢往往是來自預算,而所有甲方都是想在有限的預算內辦更多的事情。很多項目需要招標,其實重要目的就是希望找出性價比最高的軟件公司。

           2、乙方在投標階段對項目的估算

            作為軟件公司,要判斷該項目需要多少的成本,然后稍微“放大”成本作為投標價,這樣公司才能有利可圖。

            然則現實情況很殘酷:

            1)需求大多數是不明確的,甚至甲方對項目的期望都沒有想清楚,這樣軟件公司無從估算。

            2)很多招標其實甲方都“隱含”一個預算價,如果軟件公司的報價超出這個價錢,你就別想中標了。而這個預算價往往會小于軟件公司對項目的估算,讓你難以決定這項目做還是不做好!

            這個階段的估算是最難做的,除了考慮項目實際工作量,還要考慮項目是否要賺錢、客戶關系等因素。

            在我們公司,對于已經產品化的項目,估價比較容易,這其實是一個積累的過程。而對于全新的以前沒有多少經驗的項目,估價其實也是很難做得很好的,我們往往是由項目經驗與技術經驗都實力雄厚的總經理來“拍腦袋”拍出來的。所謂“拍腦袋”,其實不代表亂猜,是以雄厚的經驗和強大的知識為前提的。

            3、項目組開展項目時對項目的估算

            當我們要真刀真槍開干時,項目組需要對項目的實際工作量有充分的認識,并以此為基礎來做好項目工作。

            我們常常所說的項目估算問題,就是指這第三種情況,后文我們將重點講述這種情況。

            項目估算到底要估什么呢?

            項目的成本包括:人工費、差旅費、業務費用、招待費用、采購費用。

            人工費:

            包括項目組各人的薪金,以及公司運作分攤到項目組各人頭上的運作成本。公司運作成本包括非項目組人員的人工、場地設備費用、水電通訊費用、人員培訓招聘費用、人員閑適成本、研究失敗時的成本、商務活動的成本等。

            一般來說,項目組只需要估算出實際的項目工時就可以了,工時再乘以一個折合的人工成本單價就是項目的人工成本了。

            差旅費:項目組成員因項目出差的交通費、住宿費、通訊費、差旅補貼等。

            業務費用:公司領導、銷售人員與客戶進行商務談判、聯絡所花費的費用,例如送禮、回扣等的費用。這筆費用往往還很大呢,不過項目組一般不需要估算這部分費用。

            招待費用:項目組成員因工作需要,和客戶相關人員吃飯、娛樂的相關費用。例如:需求調研期間和客戶吃飯;項目實施階段因推動驗收和客戶一起加班,加班后請客戶吃飯。這筆費用一般不會很大,一頓飯一般就是幾十到一百多元,一個項目也不會請很多次吃飯。

            采購費用:采購項目所需的軟硬費用,如數據庫平臺、服務器等,如果項目部分內容要外包出去,那還要包括外包的費用。有時候這筆費用會比較巨大,但這些費用都很容易估計。

            以上費用最難估計的就是人工費,人工費我們以工作量來考慮,下文開始我們重點講解項目工作量的估算。

            如何估計項目的工作量呢?

            簡單地說,我們需要將項目的所有工作進行分解,直到每個分解后的工作都能估計出具體的所需時間來。

            那項目的“所有工作”包含什么呢?回答這個問題其實就是回答“估算要估啥?”這個問題了。

            一般情況下,項目工作包括以下內容:

            1、項目前期工作。

            包括商務談判、技術方案準備、投標準備、前期需求調研、前期技術研究等工作。當你接手項目的時候,這些工作往往已經做了,你估算項目工作量時,不要忘記這些已經花費的工作量。

          2、商務方面的工作。

            從客戶開始有意向做這個項目,一直到項目驗收、維護,整個過程中都會貫穿商務活動。前期的商務活動有商務談判、投標準備、合同簽署等,而簽訂合同后的商務活動有項目請款和催款、促進驗收等。某些商務活動屬于灰色地帶,如請客、送禮等,這些往往是花費巨大的。一般來說我們不需要估算灰色地帶的商務活動,灰色地帶的商務活動公司的高層會考慮的了,但我們需要對正常的商務活動進行估算。

            3、需求調研方面的工作。

            需求調研是一個“反復”的過程,一般來說能在前期確定80%已經是很了不起的成績。

            需求調研的工作量一般由三部分組成:前期調研的工作量,后期需求細化的工作量,后期需求變更的工作量。

            前期調研的工作包括:項目組內部討論、確認,與客戶討論、確認需求,編寫需求規格說明書及組織評審等工作。

            需求細化是指對之前已確定需求的進一步具體化、優化或輕微調整,如:界面細節的確認、各業務概念的具體化等。需求細化一般是可預見可估計的。

            需求變更是指對之前已確認需求的“否定”,變更的原因主要有兩種情況:一是之前需求調研工作沒有能做好,理解錯客戶的真正意圖或者是遺漏重要的需求;二是客戶業務情況發生變化,與之前情況已經不同。第一種情況應該盡量避免,而第二種情況一般是難以估計的。需求變更時需重新估算,和客戶簽訂需求變更協議。

            我們一般會充分估計前期需求調研工作量以及需求細化工作量,對于需求變更則暫不考慮,因為一旦變更我們會和客戶確認需求變更的費用。但有些項目有很特殊,項目報價中預留了少量的需求變更費用,這時估算中就需要適當考慮需求變更了。

            4、軟件設計方面的工作。

            不少項目為了“趕”進度,設計文檔很少,然則項目真的很簡單、不需要仔細考慮設計的情況是非常少的!

            軟件設計工作包括:

            1)系統架構設計。

            2)技術方案選擇。

            3)關鍵模塊設計。

            4)數據庫設計。

            5)用戶體驗設計。

            以上內容具體項目可以有所取舍,但不可能全部都不用考慮。

            另外不要忘記了以下兩方面的工作:

            1)各類設計工作產品的討論、確認、評審工作。

            2)設計細化與優化工作。設計是需要持續改進的,不要忘記這些工作。

            5、編碼方面的工作。

            要注意不要遺漏代碼返工、代碼評審、代碼調試、修復缺陷的工作量。

            需求、設計沒有做好,編碼質量不過關,這些會嚴重增加代碼返工、代碼調試、修復缺陷的工作量。代碼首次完成的時間如果是100小時,那么后面代碼調試、修復缺陷等所需要的時間可能是200小時以上,往往我們估算時只考慮了前面的100小時。

            6、測試方面的工作。

            測試工作包括測試計劃、測試用例、測試文檔評審、測試環境準備、測試數據準備、執行測試、回歸測試等內容。

            軟件測試一般要經歷多輪,我們估算往往只考慮了第一輪,就好象軟件只需要測試一回就不用再測試了。而測試環境準備、測試數據準備這些工作也很容易在估算時“忘記”了。

          7、實施方面的工作。

            實施工作包括實施計劃、實施方案的準備,編寫管理員手冊、用戶手冊,熟悉系統,搭建實施環境并進行演練,在客戶現場安裝、部署、調試系統,培訓客戶,協助系統上線,推動驗收等工作。

            我們公司通常的做法是:

            1)系統在客戶處部署后,會推動客戶進行初步驗收,初驗標準是系統的所有功能跑就可以了。初驗成功,客戶需要支付相應的項目款項。

            2)初驗后要協助客戶讓系統正式上線,讓客戶真正用上這套系統,推動最終驗收。

            影響終驗主要有兩個因素,一個是客戶在使用系統過程中會提出各式各樣的問題,如果在需求范圍內應該都予以滿足;而另外一個影響因素是客戶會因為各種各樣的原因推遲使用系統,或者是使用不充分,讓項目終驗遙遙無期。估算時需要充分考慮這兩個影響因素。

            8、維護方面的工作。

            項目終驗后,一般都要提供半年到一年的維護服務,維護器后項目還會有最后一筆款項。

            維護期比較長,事情繁雜,一個不小心就很容易估算不足。

            維護的工作一般有:

            1)用戶培訓;

            2)協助客戶錄入資料;

            3)修復被破壞的數據以及數據庫;

            4)修改客戶或內部發現的軟件缺陷;

            5)代碼重構,提高部分程序的性能與可靠性;

            6)修改一些界面文字或顯示風格;

            7)回答客戶反饋的一些安裝與操作疑難問題;

            8)提供合同中所要求的其它特殊軟件維護服務。

            在維護期,往往還需要發布數個小版本來解決客戶的問題。

            9、項目管理方面的工作。

            項目管理工作主要有編制項目計劃、持續更新項目計劃、跟蹤計劃執行、各種工作協調、指導項目組成員完成工作等等。

            項目管理工作量一般占整個項目工作量的10-20%,項目不明確的東西越多、項目組成員水平越不足、項目組成員之間工作磨合度越不好,管理工作量就越大。

            項目管理在項目進行整個過程都需要持續進行,一般來說前期工作量會比較大,版本發布前后階段工作量也會比較大。項目管理前期工作抓得緊抓得好,會大大減輕后期的工作量。

           10、配置管理方面的工作。

            什么叫配置管理?簡單說就是對工作產品的管理,包括對各類文檔、各種記錄、代碼、數據庫、腳本、安裝程序、組件等等的管理。

            軟件生產過程的工作產品可分為兩類:中間產物和最終產物。

            中間產物有:

            1)工程類:需求文檔、設計文檔、測試方案、代碼、數據庫腳本、數據庫、測試腳本等。

            2)管理類:開發計劃、測試計劃、培訓計劃、采購計劃、實施計劃等。

            3)記錄類:會議記錄、郵件、缺陷等。

            最終產物是指最終會交付給客戶的東西,一般有:組件、安裝程序、數據庫、用戶手冊、管理員手冊等。

            針對不同的工作產品應采取不同的針對性管理辦法,很多公司會制定單獨的配置管理計劃。

            11、質量保證方面的工作。

            嚴格來說,質量保證是靠項目組全體來保證的,這里所說的質量保證是“狹義”的質量保證,是指:要確保項目組按照既定的規定、過程、標準來工作,需按照既定的格式要求產出相應工作產品。

            對于以上十一點,實際項目估算中往往出現這樣的問題:

            1)忘記包含項目前期工作的工作量。

            2)沒有考慮商務、維護、配置管理、質量保證方面的工作。

            3)需求調研、軟件設計、編碼、測試、實施方面的工作估計過少。

            4)項目管理方面的工作量估計不足。





          posted on 2011-11-23 17:30 順其自然EVO 閱讀(190) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜兰市| 双江| 西华县| 邵武市| 黑龙江省| 陆丰市| 新民市| 连平县| 永丰县| 宁远县| 河西区| 柘荣县| 赫章县| 丁青县| 绿春县| 金塔县| 宜兰市| 哈巴河县| 旅游| 腾冲县| 旺苍县| 柘城县| 万安县| 娱乐| 定安县| 集安市| 佛坪县| 平舆县| 澳门| 称多县| 肃北| 陆川县| 安图县| 乡城县| 怀仁县| 临邑县| 游戏| 霍林郭勒市| 曲阜市| 龙里县| 镇原县|