張孌
隨著我公司雜貨生產規模的不斷擴大,如何將庫場計劃與生產作業有機的結合起來,合理有效的利用有限的庫場資源,提高庫場的利用率和周轉速度,已經成為公司雜貨生產再上新臺階必須考慮的重要因素。為了解決這一問題,公司迫切需要一套軟件為庫場計劃提供實時的庫場信息,作為統籌計劃的指導依據。經過一年多的調查研究,公司決定自主開發一套符合公司實際生產需要的“件雜貨生產管理系統”(簡稱GCPMS系統),并確定了該系統以貨運生產管理為切入點,以庫場管理為核心,以市場部、倉庫為重點,充分發揮信息技術的優勢,具有結構簡單、實用、高效、靈活、易操作等特點。
項目確立之初,我們與市場部、倉庫等系統使用部門充分溝通,確定了系統的主要功能和目標,以庫存管理為核心,開發計劃指令、場地安排、生產組織、電子工班、庫存管理、出入記錄、報表系統等功能。
項目從2007年6月開始,上級主管領導要求從程序開發直到運行不要超過6個月的時間,由于部門人手不足,如果進度安排落空,會導致項目的成本增加,軟件質量和交付進度無法保證。因此在項目真正實施前,我們就確定了以進行有效的項目估算、產生高質量的系統和按時完成程序開發為目標的軟件項目管理策略。集團公司之前推廣過兩套不同的雜貨系統,并且我們與業務部門之間關聯較為密切,對于目前要開發系統的項目任務和目標有較清楚的認識,并能快速地建立任務之間的相互關系,項目的重點和難點抓得比較準確。我們可以較準確地估算各個任務的工作量,分配人員和其他資源,制定進度時序。
在此項目中我們采取了以下主要措施和方法:
一、在軟件計劃和需求分析階段,綜合考慮利用可復用資源,合理估算項目工作量,準確度量任務權重,成功降低軟件生產成本
在本系統的定義階段,我們把估算項目工作量作為此階段的主要度量元素,通過綜合考慮利用可復用資源,準確核算任務權重,從而盡量精確地估算出項目工作量,將項目的開發周期盡可能限制在可實現的最短時間內,以達到提高軟件質量,保證開發進度的目的。
在制定項目進度計劃時,我們以項目范圍管理為基礎,針對項目范圍的內容要求,有針對性的安排項目活動,首先列出項目活動清單,確定項目活動之間的依賴關系,從企業資源庫中選擇資源分配到項目活動中,然后根據資源的配置情況估計各項目活動所需的工期,從而得到整個項目的進度時間表。
我們在項目工作量及技術難度的估算上遵循面向對象技術原則。
在系統開發過程中我們采用了面向對象的分析、設計等一系列面向對象技術,在系統工作量估算方面根據功能點進行。將每個功能模塊逐步分解,順次求精,直至基本模塊為止。我們參考了以前集團推廣的程序的設計思想和技術資料,對于某些模塊的分析和設計,我們沿用了前述系統的設計思路。我們詳細分析了軟件項目的范圍,根據軟件各部分的功能,給出為實現每一軟件功能所必須執行的一系列軟件工程任務,如需求分析、設計、編碼和測試等,比照以前相似程序的工作量,估算出GCPMS的大致工作量。
根據以上分析我們制定了一個詳細的項目進度表并定義了相應的里程碑,制定了關鍵活動,限定了項目要在六個月的時間內全部完成,科學合理地制定了工作計劃。
二、在軟件設計編碼階段,注重人員安排,確保產品質量
在考慮各種軟件開發資源時,我們首要考慮的就是人員。在安排開發活動時必須考慮在開發過程各階段中對各種人員的需要。在軟件項目設計編碼階段,我們把人員調配確定為此階段的主要度量元素,按照人員自身能力狀況合理安排,保證了軟件產品的高質量。
本系統在軟件需求分析和設計階段,有兩名公司的高級工程師參與對軟件系統進行定義。他們利用自己豐富的實踐經驗,為系統提出了許多可行的能夠高效實現預定任務的方案,同時在技術難度相對大一點的部分由他們從設計方面把關。而在項目實施階段他們也負責指導相關人員對關鍵任務的理解,并隨時監控程序員在具體編碼中是否真正實現了他們的設計思想。這一系列的工作安排,確保了我們的軟件產品在關鍵技術問題上從未出錯。尤其是高級工程師們設計的系統核心部分一一庫存管理和電子工班,后來在程序運行的時候得到了相關部門的好評。根據進度表中各個里程碑的劃分,管理人員可以方便地度量每個編程人員的實際工作情況,參照進度表,同時按照工作時間安排進行軟件測試和驗收,從而確保開發的進度和軟件的質量。
三、在軟件開發全過程,隨時掌握項目進行情況,必要時調整進度表
在為項目開發制定的詳細進度表中,確切地定義了每一項任務的工作量、開始時間、持續時間和結束時間。我們讓開發小組的每一位成員認真了解自己所承擔任務的時間表,并根據自己的任務制定相應的工作計劃。
工作日志是了解每個小組成員工作情況的很好的方式,我們要求每個小組成員對自己的工作都要做工作日志,對自己每天的工作做詳細記錄。每周對自己的工作進展做出結論,向項目組匯報。為了使件雜貨生產管理信息系統項目能夠順利完成開發任務,我們要求參與此項目開發的人員在當日工作結束后都要按照實際工作情況填寫它。例如,一個開發人員今天的工作是對某個功能模塊進行編程,在日志文檔中會包含:開發的模塊名稱、開發目標、使用的方案、新建或修改的文件名稱、遇到的困難、解決的方法以及計劃的完成情況等。同時每周要對自己的工作進展做出結論,如:某某任務已完成80%,能夠按照計劃時限完成本項任務,并向項目組匯報。
開發小組的每個成員都要對自己做出的結論負責,這樣管理人員就可以做到隨時了解項目進度,為調整項目計劃提供客觀基礎。項目小組會在每個里程碑處以會議的形式對本階段的工作進行確認、總結,對本階段的進展情況做出結論,并決定是否調整下一階段的進度計劃。
本系統在整個項目開發過程中,由于總體工作量估算基本準確,關鍵任務及人員使用定位合理,使得開發任務按期高質量的完成了。通過以上的分析和討論我們可以知道,要想真正在軟件生產中實現工程進度的可控性,就必須在軟件項目計劃階段準確確定軟件范圍、合理調配所需資源,從而獲得更接近實際值的軟件任務成本和工作量估算。軟件工程度量的估算雖然不可能與工程實際進度完全一致,但在不斷發現導致合理估算的信息的過程中,是可以逐步達到計劃目標的。軟件工程的度量隨著項目的進展定期更新,從而將軟件工程的進度限定在可控范圍內,就能使得軟件生產任務按照預定計劃實現。