時間:2022-02-25 08:36:34
序論:速發表網結合其深厚的文秘經驗,特別為您篩選了11篇軟件項目論文范文。如果您需要更多原創資料,歡迎隨時與我們的客服老師聯系,希望您能從中汲取靈感和知識!
當我們的辦公室內堆滿了雜亂無章的文件時,恐怕無法知道對于我們真正有用的文件在哪里,當我們的軟件相目中收集了各種需求、意見、問題時,我們也很難從中估算出整個項目的規模、工作量以及成本。因此,在估算之前我們首先要對眾多信息進行整理、歸類分析,從而得到一個條理清晰的項目計劃,在這個計劃提供的框架內,才可能開始正確的估算。精心的規劃是任何一個軟件開發項目成功與否的關鍵,有了規劃就有如成竹在胸,之后無論風云變幻,都有應對入流的方法。當然只有正確的規劃,才能給軟件開發指引正確的方向。
軟件項目規劃的重點是對人員角色、任務進度、經費、設備資源、工作成果等等做出合適的安排,制定出一些計劃(包括高層的和細節的),使大家按照計劃行事,最終順利地達到預定的目標。
1.1、規劃的第一步:確定軟件范圍
確定軟件范圍,就是確定目標軟件的數據和控制、功能、性能、約束、接口以及可靠性。這項工作和需求分析是很類似的,如果之前已經達成需求分析規約,那么可以直接從《需求分析說明書》中把有用的部分拿來使用。如果還沒有開始需求分析,關于確定軟件范圍的方法方面,我們可以采用許多需求分析技術(如需求誘導),從客戶那里得到一個具體的軟件范圍。當然如果是一次全新的軟件邊界探索,就應當考慮軟件本身可行性問題,包括團隊是否具備在技術、財務、時間、資源上游可靠的保障,軟件本身在市場上是否有可靠的競爭優勢,等等。
獲得軟件范圍,最直接最可靠的來源就是用戶對軟件的需求描述。例如,在開發一個C/S架構的鐵路供電段數據上報系統中,客戶向我們提供了以下的目標軟件需求描述:
在供電站總部每天結束前要審核下屬節點操作員(30~40個)的供電安全數據報表,要求每個節點必須在下午5:30~6:00之間上傳數據。總部系統通過自動分析,整理出整個區內的安全形勢報表,并自動反饋到每個節點。各個節點之間通過調制解調器撥號(MODEM)用內部電話線相連,每個節點電腦主機配備一個MODEM。上傳數據為制式報表出了制式信息外,系統自動附加操作員姓名、上報時間、上報節點名稱。信息一旦上傳,節點端就不可以對已提交信息進行修改、刪除,只能閱讀、查詢。節點間數據互相隔離,只有總部才具備對各個節點數據的管理權限,但是對于歸檔數據(一旦審核完畢的數據,就進行歸檔)總部不具備刪改的權限。系統設置數據庫管理員,獨立于審核權限,其職責是對歷史數據的清理維護。
通過上面的描述,我們通過提煉和簡化,得到軟件的一下功能:
節點數據錄入、查詢、上傳
總部數據匯總、查詢、反饋
總部與節點的互聯項目管理培訓
總部數據庫存儲
節點數據的本地存儲項目管理論壇
在本例中,軟件的性能是潛在的??蛻綦m然沒有明確提出,但是由于數據本身的重要性,要求系統在數據上傳、反饋、存儲過程中安全可靠??蛻粢笫褂肕ODEM進行撥號連接,那么鑒于MODEM連接過程中可能會出現,由于撥號斷開而道導致的數據丟失,在節點本地存放一份數據副本是有必要的。由于系統要求每天上傳數據,總部數據庫應當是7X24小時不間斷服務的,再加上目前總部只有該系統運行接受數據任務,各節點數據量并不大,那么在建議用戶選擇服務器時,應當考慮性能穩定可靠,但并不一定要購買大容量磁盤陣列和高性能雙CPU主機。由于每天上傳數據接近下班時間,那么總部匯總數據應當是自動進行的,一旦分析發現重大問題,可以通過與外部網絡的設置,向值班人員發送手機訊息、E-MAIL或其他警示。由于不同人員對于上報數據的權限不同,對于系統用戶實行分級管理。不同級別的用戶,具有對數據的不同管理權力,從而保證在軟件使用過程中不發生混亂。
那么現在一個較為清晰的軟件模型已經構造完畢,接下來我們需要進入計劃的第二步:確定工作所需資源。
1.2、規劃的第二步:確定工作所需資源
軟件工作所需資源包括:工作環境(軟硬件環境、辦公室環境)、可復用軟件資源(構件、中間件)、人力資源(包括不同各種角色的人員:分析師、設計師、測試師、程序員、項目經理……)。這三種資源的組成比例,可以看作一個金字塔的模式,最上面是人力資源、其次是可復用軟件資源、最下面是工作環境。最上面的是組成比例最小的,最下面的是組成比例最大的部分。
■人力資源
一個項目到底需要多少種職務的人員構成、多少數量的人員總量,再能成為最有創造力的團隊呢?這恐怕是最讓項目經理頭疼的事情了。任何一個軟件工程,都必須在確定軟件的工作量之后,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任務。在這之前,不能盲目地進行人力擴充,而且絕對不能為了給公司抬高門面,盲目招收高學歷。
■可復用軟件資源
這是一個容易在計劃階段被忽視的重要資源,很多人總是進入編碼階段才發現可復用資源的價值和存在。經過長期的項目積累或是購買,公司的軟件資源庫中或許已經積累了大量的可復用資源,但在當前任務中,只能選擇有價值的資源。根據不同的應用、時間、來源,可復用軟件資源被分為以下幾種:
可直接使用的構件:已有的,能夠從第三方廠商獲得或已經在以前的項目中開發過的軟件。這些構件已經經過驗證及確認且可以直接用在當前的項目中。
具有完全經驗的構件:已有的為以前類似于當前要開發的項目建立的規約、設計、代碼、或測試數據。當前軟件項目組的成員在這些構件所代表的應用領域中具有豐富的經驗。因此,對于這類構件進行所需的修改其風險相對較小。
具有部分經驗的構件:已有的為以前與當前要開發的項目相關的項目建立的規約、設計、代碼、或測試數據,但需做實質上的修改。當前軟件項目組的成員在這些構件所代表的應用領域中僅有有限的經驗,因此,對于這類構件進行所需的修改會有相當程度的風險。
新構件:軟件項目組為滿足當前項目的特定需要而必須專門開發的軟件構件。
在采用構件的時候,應當以低成本、低風險為使用前提。如果任何一個漂亮的構件的應用,可能會帶來潛在出錯的風險或者必須經過復雜修改或者效率低下時,我們都應當毫不猶豫地把它拋棄。我們只采用那些能夠滿足項目的需要且可直接使用的構件,或者具有完全經驗的構件,或者經過稍微修改便可使用的構件。項目經理博客
■環境資源
“工欲善其事,必先利其器”,要得到高效的開發過程,就必須向工作人員提供良好的軟硬件環境,包括開發工具、開發設備、工作環境、管理制度。一般管理人員都會購買可以滿足需要的軟件開發工具和硬件平臺,但是工作環境和管理制度往往被忽視。項目管理者聯盟
站在人件的角度看,向工作人員提供更輕松自在、安靜舒適的辦公環境的公司員工往往比整天在狹小隔間中工作的公司員工,產生更高的工作效率。而那些擁有靈活人性化的管理制度的公司,比整天加班的公司更能留住高技術的人才。所以如何在有限資金中,規劃一個合理的環境是很重要的事情。轉
到此為止,估算前的項目計劃已經完成,我們已經形成一個工程開發框架。這是一個有界限的框架,雖然還不夠精確,但足以進行估算的工作。
2、估算的對象
目前為止,一個較為準確的軟件項目估算的定義是:在給定公差范圍內,對于姚開發的軟件規模的預測,以及對開發軟件所需的工作量、成本和日歷事件的預測。這個概念指出了一個事實,即估算是一種大約的估計,是將誤差限定在一定范圍內的估計。
估算主要包括以下幾個重要內容:
規模估算
軟件估算首先要將整個工程的規模估算出來,才能進行下面的其他估算。規模,就是一個工程可量化的結果,是用具體數字來體現項目的描述。規模估算的信息來源是清晰、有界限的用戶需求。
工作量估算
這是對開發軟件所需的工作時間的估算,它和進度估算一起決定了開發團隊的規模和構建。通常以人時、人天、人月、人年的單位來衡量,這些不同單位之間可以進行合理的轉換。
進度估算
進度時項目自始至終之間的一個時間段。進度以不同階段的里程碑作為標志。進度估算是針對以階段為單位的估算,而不是對每一個細小任務都加以估算,對任務的適當分解很重要,分解得越細反而會不準確。因為任何一個軟件工程,在各個方面都有與生俱來的不確定性。
成本估算
包括人力、物質、有形的、無形的支出成本估算,其中以人力成本為主要部分。比較容易被忽視的使學習成本、軟件培訓成本、人員變動風險成本、開發延期成本等,一些潛在成本消耗。
3、估算的策略
在軟件估算的眾多方法中,存在著“自頂向下”和“自底向上”兩種不同的策略,兩種策略的出發點不同,適應于不同的場合使用。項目管理培訓
3.1、自頂向下的策略
這是一種站在客戶的角度來看問題的策略。它總是以客戶的要求為最高目標,任何估算結果都必須符合這個目標。其工作方法是,由項目經理為主的一個核心小組根據客戶的要求,確定一個時間期限,然后根據這個期限,將任務分解,將開發工作進行對號入座,以獲得一個估算結果。項目管理者聯盟文章
當然由于這完全是從客戶要求出發的策略,而由于軟件工程是一個綜合項目,幾乎沒有哪個項目能完全保質保量按照預定工期完工,那么這樣一個策略就缺少了許多客觀性。但是由于這樣完成的估算比較容易被客戶、甚至被項目經理所接受,在許多公司我們看到這樣一個并不科學的策略仍然被堅定地執行著。項目管理培訓
3.2、自底向上的策略
與自頂向下的策略完全相反,自底向上的策略是一種從技術、人性的角度出發看問題的策略。在這樣一個策略指引下,將項目充分討論得到一個合理的任務分解。在將每個任務的難易程度,每個任務依照項目成員的特點、興趣特長進行分配,并要求進行估算。最后將估算加起來就是項目的估算值。
顯然自底向上的這種策略具有較為客觀的特點,但是它的缺點就是這樣一來項目工期就和客戶的要求不一致了。而且由于其帶來的不確定性,許多項目經理也不會采用這種方法。項目經理圈子
4、估算的方法項目管理者聯盟
顯然估算是建立在客觀實際上,對未來盡可能合理的一種預測。那么估算本身的不確定性,決定了它不可能是百分之百準確無誤的。在項目剛開始時,人們對產品需求、技術、市場預期、人員素質等因素的了解還遠遠不夠,在這種情況下人們很難作出準確的估計。但是依據某種方法進行估計顯然比瞎猜好得多。項目管理者聯盟文章
估算方法有很多,大致分為基于分解的技術和基于經驗模型兩大類?;诜纸獾募夹g的方法包括功能點估算法、LOC估算法、MARKII等;基于經驗模型的方法包括IBM模型、普特南模型、COCOMO模型等。
4.1、FP功能點估算法項目管理論壇
功能點估算法是一種在需求分析階段基于系統功能的一種規模估計方法。通過研究初始應用需求來確定各種輸入、輸出、計算和數據庫需求的數量和特性。這種方法的計算公式是:功能點=信息處理規模x技術復雜度。信息處理規模包括各種輸入、輸出、查詢、內部邏輯文件數、外部接口文件數等等;技術復雜度包括性能復雜度、配置項目復雜度、數據通信復雜度、分布式處理復雜度、在線更新復雜度等等。項目管理論壇
4.2、LOC估算法
這是一種從技術的角度來估算的方法總稱,其中又包含許多方法。這類方法以代碼(LOC)作為軟件工作量的估算單位,在早期的系統開發中較為廣泛使用。基于LOC的估算,又有點也有缺點。優點在于方便計算、容易監控、能反映程序員的思維能力;缺點在于代碼行數的含糊不清,不能正確反映一項工作的難易程度以及代碼的效率。因此在傳統的LOC方法進行了許多改進。其中不斷被使用,且不斷演化的方法包括以下:
PERT功能點估算法:PERT對各個項目活動的完成時間按三種不同情況估計:一個產品的期望規模,一個最低可能估計,一個最高可能估計。用這三個估計用來得到一個產品期望規模和標準偏差的Pert統計估計,Pert估計可得到代碼行的期望值和標準偏差SD。項目管理論壇
類比估算法:類比法適合評估一些與歷史項目在應用領域、環境和復雜度的相似的項目,通過新項目與歷史項目的比較得到規模估計。類比法估計結果的精確度取決于歷史項目數據的完整性和準確度,因此,用好類比法的前提條件之一是組織建立起較好的項目后評價與分析機制,對歷史項目的數據分析是可信賴的。
Delphi估算法:Delphi法是一種專家評估技術,在沒有歷史數據的情況下,這種方式適用于評定過去與將來,新技術與特定程序之間的差別。對于需要預測和深度分析的領域,依賴于專家的技術指導,可以獲得較為客觀的估算。通過專家們的互相討論,還可以博取眾長
系統分解:將系統分成若干個易于用LOC估算的部分,將其各個估算結果累加就是LOC的總規模。其中關鍵是建立起SBS(系統分解結構),它描述了系統的不同組件。SBS還被使用在其他重要的地方,如系統設計、系統分析等。在進行分解的時候,可以采用自由討論的形式,可以獲得更合理的SBS構成。項目經理圈子
4.3、IBM模型估算法
該模型是Watson和Felix在1977年的,是基于IBM聯合系統分布負責的60個項目的總結而得到的模型。該模型是一個靜態模型,而參考數據只有60多個項目,因此有很大的局限性。
4.4、COCOMO估算法轉自項目管理者聯盟
Boehm在其經典著作“軟件工程經濟學”(softwareengineeringconomics)中,介紹了一種軟件估算模型的層次體系,稱為COCOMO(構造性成本模型,COnstructiveCOstMOdel),它代表了軟件估算的一個綜合經驗模型。項目經理博客
COCOMO模型是適用于三種類型的軟件項目:(1)組織模式——較小的、簡單的軟件項目,有良好應用經驗的小型項目組,針對一組不是很嚴格的需求開展工作(如,為一個熱傳輸系統開發的熱分析程序);(2)半分離模式——一個中等的軟件項目(在規模和復雜性上),具有不同經驗水平的項目組必須滿足嚴格的及不嚴格的需求(如,一個事務處理系統,對于終端硬件和數據庫軟件有確定需求);(3)嵌入模式——必須在一組嚴格的硬件、軟件及操作約束下開發的軟件項目(如,飛機的航空控制系統)。
4.5、軟件方程式估算法項目管理論壇
軟件方程式是一個多變量模型,它假設在軟件開發項目的整個生命周期中的一個特定的工作量分布。該模型是從4000多個當代的軟件項目中收集的生產率數據中導出的公式。初期的方程式較為復雜,通過,Putnam和Myers的努力又提出一組簡化的方程式。當然這種方法也是基于長期的參考數據的積累而得到的。
4.6、WBS估算法w
這是一種基于WBS(工作任務分解)的方法,即先把項目任務進行合理的細分,分到可以確認的程度,如某種材料,某種設備,某一活動單元等。然后估算每個WBS要素的費用。采用這一方法的前提條件或先決步驟是:項目管理者聯盟
對項目需求作出一個完整的限定。
制定完成任務所必需的邏輯步驟。
編制WBS表。
項目需求的完整限定應包括工作報告書、規格書以及總進度表。工作報告書是指實施項目所需的各項工作的敘述性說明,它應確認必須達到的目標。如果有資金等限制,該信息也應包括在內。規格書是對工時、設備以及材料標價的根據。它應該能使項目人員和用戶了解工時、設備以及材料估價的依據??傔M度表應明確項目實施的主要階段和分界點,其中應包括長期定貨、原型試驗、設計評審會議以及其他任何關鍵的決策點。如果可能,用來指導成本估算的總進度表應含有項目開始和結束的日歷時間。
除了以上介紹的幾種方法外,還有一些其他的方法:類比估算、推測估算、Standard-component估算法、普特南估算法等。當然不同的方法適用于不同的具體環境,有些方法雖然很好但并不一定適合當前的任務。只有量體裁衣,具體問題具體分析,才能得到盡量合理的估算。
5、估算的戒律項目管理者聯盟
記?。簯摑M足于事物的本性所能容許的精確度,當只能近似于真理時,不要去尋求絕對的準確??——亞里斯多德
對于任何一個項目經理,都知道要慎重估算,但是我們仍然會看到人力資源的浪費和財力資源的匱乏,在許多項目中存在。對于寶貴的資源,我們不是用得太多,就是根本不夠用。因此,有以下前人總結出來的一些經驗以供借鑒。
不要追求完美:就像沒有人能預測出未來,如果還沒有完成,就不要企圖完美的結果。更何況估算的太精確,反而會失去靈活機動的空間。
不要為滿足預算而估算:如果這個項目的預算根本不能完成100%的任務,那么就不要讓你的團隊委曲求全。正確地反映客觀現狀,不僅可以爭取應得的權利,而且是完成任務的前提。
不要隨意削減估算結果:有很多老板喜歡把項目經理遞交的估算,不假思索地砍掉一部分。這是一種不負責任的做法,如果要削減一定要有理由。
客觀地估算,不貪多不偷減:就像老板不能隨便削減你的估算一樣,你也同樣不能在估算的時候,貪多或是偷減。貪多必然導致會浪費,偷減必然導致不足。這兩個結果恐怕都不是一個合格的項目經理的作為。
一項工程的具體工作涉及到人員的管理,工作任務的分配,責任內容的明確,因此人員的組織及管理是工程項目的關鍵因素,要把注意力集中在項目組人員的構成、優化。
1.2軟件質量管理
軟件質量管理在工程項目實施過程中決定著質量方針與責任的范疇,包括質量計劃設計制定,項目質量檢測保證和項目質量控制等程序。通過保證手段在質量過程中有效進行。
1.3軟件配置管理
英文簡稱SCM,是在開發者中,標識,控制和管理軟件變更的一種管理。配置管理的使用取決于項目規模和復雜性以及風險水平。軟件配置管理針對開發過程中人員、工具的配置、使用提出管理策略。記錄軟件項目產品的更新過程,從而保證研發者在軟件項目周期的各個階段能夠獲得準確的產品配置。對項目開展過程軟件開發進行有效調控和有效預測具有重要作用。
1.4編寫軟件項目計劃書
它是軟件項目管理組的首要任務,主要包括工作量、成本、開發時間的估計。并根據估計值制定和調整項目組的工作,詳細記錄了開發日程安排,資源供需,項目管理等各項情況。使從事該項目的人員了解該項目的大致情況。
1.5軟件風險管理
軟件工程風險管理是預測工作中可能出現的各種危害到軟件產品質量的潛在因素的問題,對風險產生的后果進行分析評估。計算機軟件風險預測的準確性評估與有效防范措施的應用都利于提高軟件工程的效益,降低風險帶來的經濟損失,有效保證相關利益業主的權益。這幾個方面都是相互貫穿、交織于整個軟件開發過程中的。
2軟件工程項目管理中存在的現實問題及解決方案
2.1人員工作安排不明確,應建立團隊合作意識
在工程項目開發過程中是需要每個崗位人員的相互協調及無障礙交流,沒有團隊協作意識是無法有效的利用時間和資源開展各項工作。因此我們要提高一個工程項目的工作效率,就要合理安排人員的工作分配,強化每個工作人員的團隊協作意識,有效避免管理團隊中存在的分工不明確,不合作的問題。只有相互協作和相互信任的情況下才能高效的完成一件優質的軟件工程項目。建立一套完善的人事考核制度,加強對員工的職位升降,工資獎金分配管理,有利于提高員工開發軟件工作的積極性。
2.2缺乏實踐性調研報告,應納入到軟件項目計劃書
軟件開發工程不僅要創新變革,也要考慮到它的實用性,以往出現的多個工程項目沒有對實際項目建設中的需求實體和實際進行要求,以及實際項目建設的數據進行合理有效的調研,導致出現設計完整的軟件產品運用與實際偏差較大,造成不必要的人員和資源浪費。因此要在軟件設計前給予項目調研工作高度重視,對實際軟件項目的需求及要求嚴格調查,應將軟件項目調研報告附于項目計劃書中,引起重視。
2.3風險管理意識不夠,應該強化提高人員對風險管理的認知
風險的發生很可能會造成不可估量的損失,但是風險的發生是具有可控性的,如果能有效控制就會避免發生風險事故??赏谟嬎銠C軟件工程項目管理中的工作人員卻很少知道風險管理的重要性,于是在軟件開發中應提高項目主要負責人的風險管理理念,提高自身對風險管理預測能力的水平。只有了解了風險管理理論與風險管理體系,定期對項目實施中可能發生的風險進行有效排除,把控好風險管理前后的形勢。
2軟件工程的項目控制跟蹤
2.1項目跟蹤內容
依據軟件項目計劃,必須要對軟件的產品規模(或更改后的規模)、軟件的成本與工作量、所使用的重要計算機資源、項目軟件日程、軟件工程技術活動、項目費用、技術風險等內容與軟件在開發前計劃的相應內容進行比較。
2.2項目跟蹤過程
軟件項目的控制跟蹤過程分為:
(1)項目跟蹤人員要對軟件度量的實際數據與再計劃數據進行記錄;
(2)負責人要根據文檔里記載的程序在指定的地點審查項目成果;
(3)對軟件的監控活動和項目的跟蹤予以必要的檢查。
2.3項目跟蹤存在的問題
(1)控制與跟蹤的頻度,控制與跟蹤在項目開發工程中的關鍵點有多個,這就需要我們找到一個好的頻度去跟蹤,若跟蹤點少,就不能保證問題及時被糾正;若跟蹤點多,在人力物力上的花費就會增多,對總體效率的影響很大。控制與跟蹤的頻度關系著軟件項目的規模,大型項目設置的關鍵點相應較多。
(2)項目計劃的修改,控制與跟蹤軟件開發過程以后,可能會發現軟件項目有些地方會不符合實際,需要制定相應的修改計劃,但其他組的活動就會受到修改后計劃的影響,因此,沒有得到相關組的同意,就不能對項目計劃隨意修改。
3軟件工程的預測
3.1軟件預測的意義
軟件工程項目最關鍵的環節就是對軟件進行預測,如果測試環節出現了問題或者測試不細致,那么將直接導致生產出的軟件質量不過關,在應用軟件的過程中也會逐漸發現軟件存在的問題。問題不嚴重的,只是需要長期對軟件進行修改,單單影響用戶的應用;而問題嚴重的,會導致整個項目的失敗,生產出的軟件也無法投入使用。如果在投入使用前,沒有經過測試,那就不知道用戶有什么樣的需求,也不知道軟件存在什么隱患。尤其是有一些不經過測試就無法發現的隱患,一經投入使用,將會對用戶造成巨大的損失。
3.2軟件預測的內容
(1)文檔審查,軟件項目的驗收需要提供一些文檔,這些文檔包括:經濟分析報告、項目技術報告、用戶手冊、維護手冊、項目總計報告、測試總結報告等,主要對文檔的可理解性、正確性、完整性進行審查,還要對編寫的規范程度進行審查。如果文檔掃描不清晰、數量不齊全、甚至錯誤都將給用戶造成不必要的麻煩,而且還可能導致軟件無法升級。
(2)安裝測試,安裝測試第一個目的,是驗證軟件安裝在最基本的配置下能否正常的運行;第二個目的,是驗證軟件安裝在非正常的情況下,程序能否給用戶足夠的提示。非正常條件指內存不夠、磁盤空間不足、不能自由創建目錄。
TRIZ是俄語теориирешенияизобретательскихзадач的英文音譯縮寫,其中文全稱是發明問題解決理論。TRIZ理論是由前蘇聯以阿列赫舒列爾(G•S•Altshuller)為首的研究人員在研究了近250萬件涉及各學科領域的發明專利的基礎上總結出來的。TRIZ理論成功地揭示了發明創造的內在規律和原理,它是一種創新方法理論體系,運用TRIZ理論可大大加快人們創造發明的進程而且能得到高質量的創新產品。運用TRIZ理論的工具和手段改進教學方法,將TRIZ理論與學生創新能力培養相結合,最終用以進行軟件設計類課程創新性教學的實踐。這些都將為學生未來的專業發展提供廣闊空間,以應對激烈的行業競爭。
2.項目導向教學方式對軟件設計類課程教學的作用
項目導向教學方式是在案例教學法之上發展起來的。只不過單純的案例教學法中案例零散,相互之間沒有聯系或聯系不大。而項目導向教學方式則在整個課程體系中以統一的項目進行引導,對課程內容體系中涉及的所有知識點作為小項目整合入大項目開發中。類似的教學法均屬于建構主義理論指導下的教學方法。因為建構主義的觀點認為,學生是學習的主體,知識獲得的方法主要依靠學生去發現,教師為學生獲得知識創設情境,引導和幫助學生通過意義建構獲得知識,讓學生在意義建構的過程中進行創造。在軟件設計類課程中項目導向的教學方式較好地模擬了真正軟件項目開發的全過程,能夠給學生以任務的刺激,將幫助學生提高學習興趣,增強主動學習意識,同樣有助于學生創新意識的培養。
二、TRIZ理論與項目導向教學方式在軟件
設計類課程中的應用對于學生軟件設計能力的培養,高等學校計算機相關專業通常都有較為完整的課程體系。一般包括三個層次,即軟件工程方面的基礎理論課、培養學生軟件設計思維的基礎語言課、當前流行的軟件設計開發工具課程(java、MyEclipse、NET等)。筆者所在院系的教研團隊在計算機相關課程中一直采用項目導向的教學方式,并且,通過自己所承擔的課程針對TRIZ理論在相應教學環節中進行了一定的實踐應用,取得了一定的成果。TRIZ理論與項目導向教學方式在教學中的綜合應用對教師教學思維的拓展,對學生學習興趣、自主學習能力、創新意識和創新能力的培養都起到了較為積極的作用。其相應的應用不僅要具體建立在某門課程中,更應自始至終貫穿在所有的教學與學習環節中。
1.TRIZ理論與項目設計思維在教學中的引入
(1)軟件項目的開發過程與重點。任何項目的開發與市場應用均離不開“解決問題的意識”、“針對問題的思考”、“圍繞問題的設計”、“具體環節的實施”、“成形項目的市場運作”、“市場反饋與項目支持”以及“對應問題的繼續關注”等多個環節的內容。目前的項目教學重點以關注“具體環節的實施”這一步驟為主,從人才系統培養這一角度上來講顯然是片面的、較低級的。因為人才的培養貴在具有解決問題的意識和設計上的創新思想,然后才是通過軟件設計類課程中所設計的軟件來解決實際的問題。因此,教師在課堂中要不斷引導學生在生活中發現問題的習慣。通過TRIZ理論的問題解決策略對問題進行梳理整合,運用軟件工程等方面的理論知識進行軟件系統的設計,通過相應的語言來實現。這樣不僅培養和鍛煉了學生創新的思維,同時對學生創新能力的培養起到了推動作用。(2)問題的疊加與解決對學生創新思維的影響。學生學習興趣與創新意識的引導源頭在于“問題”。學貴有疑,小疑則小進,大疑則大進。TRIZ理論與項目設計思維對于學生的影響應該建立在自入學開始的學習與生活中,針對地方高校理工類學生的特點,相應思維方式與意識的引入更應貼進學生生活。例如,在入學第一學期的“計算機文化基礎”課程教學過程中,通過與學生日常生活的交流,會發現學生常常抱怨課間時等待電梯時間過長這一情況。那么,教師就可以引導學生進入對這一問題的思考,即你知道電梯的工作原理是什么嗎?以及對這一問題最簡單的創新解決方法是什么?此時,就可以給出“操作系統的工作原理”以及“TRIZ方法論中的發明原理、沖突矩陣、物場分析等工具”。通過這些內容具體地引導學生了解他們的專業可以解決的問題,深化學生對于其專業知識的理解和應用。
2.軟件設計類具體課程中項目的構思與設計過程
(1)項目設計對學生能力的促進。通過有針對性的引導與訓練,學生發現問題的主動意識與創新的能力將會有很大程度的提高。此時,教師就可以在相應的軟件設計類課程中給出某些不太復雜但針對性較強的項目。項目應符合復雜的現實環境,與實際生活緊密相關,只有這樣才能真實反映出完整項目所包含的事件本身、其產生的原因、目前所存在的問題、挑戰解決的途徑以及資源限制等。學生通過項目必將真正了解工程師在實際設計中所面臨的復雜境地以及艱難的抉擇。這種項目式教學,既可以增強該課程的整體教學效果,可以運用TRIZ的相關理論進行訓練和鞏固。學生有針對性的對項目進行分析研究,經過對項目的分析、討論、決策等環節,進而建立起系統的實踐方案。在對項目的構思與設計過程中,學生學習了相關信息的搜集、整理,以及運用TRIZ方法對解決方案進行評估和最終決策的知識。這樣的學習有助于訓練和提高學生在復雜環境下運用TRIZ來解決實際工程問題的能力。(2)設計團隊的組建對學生創新能力和學習效果的影響?,F階段的學生個性差異較大,類別明顯,主要分為不同的兩種類型:第一種學生思維活躍,易于接受新事務,但與計算機相關的理工類基礎知識薄弱。第二種學生思維習慣傳統,但相關基礎知識掌握的較為系統。目前在地方高校中,第一種學生所占比例為多。教師通過實驗教學過程很快就能夠掌握學生的不同特性,在軟件開發實踐環節就可以將不同類型的學生進行整合。由于TRIZ理論來源于大量的專利,對各種場、參數和原則等概念能夠真正理解的人才能更好運用TRIZ理論解決實際問題。因此,每個設計小組都由小部分“第二種”學生和大部分的“第一種”學生組成,根據任務的大小進行人數的分配。通過這一方式的應用,學生在系統設計的實踐環節所完成大作業的創新性、可轉化程度以及設計的質量較之以前按學號分組等情況都有了很大的提高。(3)合理劃分項目工作以刺激學生參與意識。地方高校中學生自主學習意識較弱,對項目不能積極參與。針對這種情況,在對指定項目的實施過程中需要按設計小組中的每個人為單位對項目進行合理的劃分與整合。例如,在教學樓里排課系統的設計中,小組成員為10人。首先,要選定設計小組長。小組長不一定在技術上全面或某項技術上突出,但應該具備良好溝通能力,并對本小組成員的特點非常了解,這樣才能協助教師作好分工協作與管理。然后,通過組長的協助,將項目不同設計周期的任務進行劃分。為自主學習意識不強的學生劃分簡單、技術性不強但非常重要的工作,如對教學樓中的教室面積、桌椅數量、是否是多媒體教室、所屬院系等內容進行統計,或者將統計的數據錄入數據庫、建立數據表等基礎且重要的工作。其他成員可根據其特長和能力對項目工作進行劃分。通過項目合理的劃分就可以使學生在學習的過程中,充分利用現有專業知識選擇有效的方法和技術,以項目為對象有興趣、有責任參與到項目開發和研究的全過程中。學生在參與項目的過程中,運用TRIZ理論的知識方法,從系統的角度處理好整體和局部,集體和個人的關系。(4)積極選取突出的項目設計案例進行成果轉化。培養學生發現問題和創新思維意識以及對軟件項目設計的能力,其主要動力來源應該是積極促使團隊設計成果的轉化。可以聯系相關部門試用產品,對軟件進行市場跟蹤。相應的學生對軟件工程中軟件的整個生命周期會有更深入的了解。
3.注重課程實踐對學生創新思維和開發能力的培養
(1)整合課程內容為加大實踐課時占比做鋪墊。對計算機專業課程,尤其是軟件設計類課程的課程內容進行的大膽整合,將整合后讓出的理論課時替換為課程實踐。例如,原有的C語言、C++和Java分三學期連續講授。講的多練的少,學生的思考僅為片段式思考,對三個軟件之間的連續性沒有深刻認識,對學生創新意識、創新思維和創新開發能力的培養效果并不突出。為此,我們嘗試了課程內容的整合,將三學期的教學內容壓縮為兩個學期。在學生基本掌握了程序設計的思維方式與相應軟件的設計方法后,就給出課程設計的任務。只在實踐教學引導中給出軟件的特色、核心以及需要注意的內容即可,這樣不僅加強了課程實踐,為學生到企業實訓倒出時間,更重要的是能夠引發學生自主思考,突出了學生創新能力的培養。(2)教師在課程設計中注重培養自身與學生的創新思維和能力。青年學生思維活躍,作為軟件設計專業任課教師一定突破年齡,保持積極活躍的思維才能夠在教學的各個環節,尤其是課程設計的環節中有效地發現和引導學生的創新思維和能力。在更高一層次上,教師可以結合教學經驗,通過對TRIZ相關內容的不斷學習實踐,進而合理有效地在實踐課中穿插使用TRIZ理論中ARIZ算法等教學工具,引導部分學生在實踐過程中對理論內容進行總結與驗證,對教材中的現有內容及項目案例進行改進與創新。
軟件行業是一個極具挑戰性和創造性的行業,軟件開發是一項復雜的系統工程,牽涉到各方面的因素,在實際工作中,經常會出現各種各樣的問題,甚至面臨失敗。如何總結、分析失敗的原因,得出有益的教訓,對一個公司來說,是在今后的項目中取得成功的關鍵。
1.項目管理在軟件開發中的應用的成因
目前我國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成完全適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件過程管理的重要性,管理學的思想逐漸融入軟件開發過程中,應用開發的項目管理日益受到重視。
2.軟件項目管理常見問題及解決方案
(1)缺乏項目管理系統培訓
在軟件企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理,被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面特別是項目管理方面的知識比較缺乏。
解決方案:項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。
(2)項目計劃意識問題
項目經理對總體計劃、階段計劃的作用認識不足,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮;階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的進度控制管理。
解決方案:計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
(3)管理意識問題
部分項目經理不能從總體上把握整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。有些項目經理沒有很好的管理方法,不好安排的工作只好自己做,使項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
解決方案:加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,特別是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
(4)溝通意識問題
在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。解決方案:制定有效的溝通制度和溝通機制,提高溝通意識;采取多種溝通方式,提高溝通的有效性。通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于特別重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如:除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
(5)風險管理意識問題
有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對于后面的風險防范起不到什么指導作用。
解決方案:通過學習項目管理知識掌握風險識別、量化、對策研究、反應控制的工具和方法,掌握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識??偨Y本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。
(6)項目干系人問題
在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、工作職責等沒有足夠了解以至于無法得到完整需求或最終經權威用戶代表確認的需求;或者是多個用戶代表各說各話、昨是今非,但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。超級秘書網
解決方案:項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
(7)項目團隊內分工協作問題
項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任分工不夠清晰而造成工作互相推諉、責任互相推卸的現象;有時各階段不同角色或同階段不同角色之間的責任分工比較清晰,但是各項目成員只顧完成自己那部分任務,不愿意與他人協作。這些現象都將造成項目組內部資源的損耗,從而影響項目進展。
1軟件和軟件業現存問題
1.1軟件項目的特點軟件項目是以軟件為產品的項目。軟件產品的特質決定了軟件項目的管理和其他領域的項目管理有著截然的不同之處。
1.1.1抽象性軟件是腦力勞動的結果,是一種邏輯實體,具有抽象性。在軟件項目的開發過程中沒有具體的物理制造過程,因而不受物理制造過程的限制,其結束以軟件產品交付用戶為標志。軟件一旦研制成功,就可以大量復制,因此軟件產品需要進行知識產權的保護。
1.1.2缺陷檢測的困難性在軟件的生產過程中,檢測和預防缺陷是很難的,需要進行一系列的軟件測試活動以降低軟件的錯誤率。即使如此,軟件缺陷也是難以杜絕的。這就像一些試驗科學中的系統誤差,只能盡量避免,但不能夠完全根除。
1.1.3高度的復雜性軟件的復雜性可以很高。有人甚至認為,軟件是目前為止人類所遇到的最為復雜的事物。軟件的復雜性可能來自實際問題的復雜性,也可能來自軟件自身邏輯的復雜性。
1.2我國軟件行業軟件項目現存問題
1.2.1項目管理人才匱乏分析我國的軟件產品,可以發現我國真正生存期比較長的成功產品為數不多,很多開發人員甚至項目管理人員多年下來,也沒有參與過一次真正意義上成功產品的項目運作。這種現狀反過來又導致我國軟件企業項目管理缺乏項目經驗積累,產業項目運作長期無法規范化。造成我國雖然有大批具有優秀基礎的軟件工程師人才,卻開發不出高質量的產品,大批軟件人才外流的現實情況。
1.2.2管理制度不健全隨著我國軟件行業的日益發展和不斷進步,企業開始陸續引進并實施了“事業部制/項目制”等專業劃分,即:按照其所負責行業或業務系統的不同,成立多個事業部,各個事業部只負責其所屬行業內的項目和工程。每個事業部內部按照不同的產品和項目劃分產品線和項目組,并且會確定相應的產品經理、項目經理,以對其所負責的整個項目的全過程負責。但實際情況是,由于大型軟件系統項目過大,開發時間過長,參與單位和人員過多,最終出現以下問題:
(1)組織構架不合理,項目管理、質量管理、職能管理劃分混亂。項目經理與項目嚴重脫節,導致項目實施失控,項目經理、質量經理等眾多頭銜,職責不清甚至很多項目經理都成了虛設的行政頭銜,管理協調行政事物,脫離項目。
(2)項目管理和質量保證體系使用棍亂,項目組無統一目標、方針、流程,導致項目工作效率低下。多套項目流程混雜不清,實施人員面對多種要求和多種流程疲于奔命,多個部門無法按照規范協同合作,項目經理和實施人員陷入混亂的流程漩渦,導致項目停工或工期延誤等后果。(3)項目團隊尤其是項目經理的責權不清,授權不合理,導致其工作無法開展。尤其是一些規模較大的企業多個項目存在耦合,項目內又劃分子項目的情況下,項目經理的責權劃分經常很難清晰。
2項目管理和大型軟件系統項目管理
2.1主流管理體系
2.1.1項目管理所謂項目管理,就是項目的管理者在有限的資源約束下,運用系統的觀點、方法和理論,對項目涉及的全部工作進行有效地管理。即從項目的決策開始到項目結束的全過程進行計劃、組織、指揮、協調、控制和評價,以實現項目的目標。
2.1.2項目管理的基本內容劃分(1)項目質量管理。項目質量管理包括保證項目滿足其需求所需要的過程。包括確定質量方針、目標和職責并在質量體系中通過諸如質量計劃、質量控制、質量保證和質量改進使其實施的全面管理職能的所有活動。(2)項目時間管理。項目時間管理包括為確保項目按時完成所必要的過程。包括工序定義、工序排序、工序工期估計、制定進度計劃、進度控制等。(3)項目成本管理。項目成本管理包括確保在批準的預算內完成項目所需要的諸過程。包括成本管理主要過程:資源規劃、費用估算、費用預算、費用控制等。(4)項目采購管理。項目采購管理包括需要從執行組織以外獲得貨物和服務的過程。包括采購計劃編制、招標計劃編制、招標、選擇來源、合同管理等。(5)項目人力資源管理。項目人力資源管理包括需要最有效地利用涉及項目人員的過程。包括所有項目受益者、組織的計劃編制、人員招聘、隊伍開發等。(6)項目溝通管理。項目溝通管理包括保證及時、適當地產生、收集、、儲存和最終處理項目信息所需的過程。以下為主要過程:信息計劃編制,信息,執行情況匯報,行政收尾。(7)項目風險管理。項目風險管理包括對項目風險的識別、分析和應對過程。包括風險識別、風險量化、風險應對措施開發、風險應對控制。
2.1.3大型軟件系統項目管理階段劃分大型軟件系統項目管理階段按照定義項目分為以下六大階段:項目需求階段;項目選擇階段;項目計劃階段;項目執行階段;項目控制階段;項目收尾階段。
2.1.2大型軟件系統項目管理
2.2.1大型軟件系統項目概念大型軟件系統是指基于大中型計算機、通信網絡等現代化的工具和手段,收集、儲存、處理和輸出信息,以提供信息服務為主要目的的數據密集型、人機交互的計算機應用系統。
2.2.2大型軟件系統項目的特點(1)項目持續時間較長和階段交叉性相結(2)項目成員復雜。參與項目實施的成員雖然主要來自承包商的多個職能部門的人員,還包括來自用戶不同部門或下屬結構的業務人員,還有一些分包商和供貨商的人員參與。參與項目的人員通常要由計算機、網絡、通信、電子、管理等不同專業背景的專家、工程技術等人員共同合作,才能保證項目的實施。由于大型軟件系統牽涉范圍廣,所以參與項目的成員全部集中在某一地區不是很現實的事情,而是往往分布在全國各地,甚至需要在國外人員的合作參與。
2.3大型軟件系統項目的管理問題
2.3.1項目責任范圍界定不清一是項目初期客戶對自身需求不清晰;二是項目實施過程中客戶需求自身發生變動;三是需求分析人員和客戶對需求的理解有誤;四是缺少客戶業務部門參與。
2.3.2項目團隊缺少有效管理一是團隊溝通意識差;二是團隊欠缺分工合作;三是項目成員的流動頻繁。
3提高大型軟件系統項目質量的具體方法
3.1真實需求的獲取最終用戶真實需求的獲取就是需求分析的過程,它是一個項目的基石。在以往信息系統集成項目失敗的案例中,大部分是由于需求分析的不明確而造成的,因此對于一個信息系統集成項目成功的關鍵因素之一,就是對需求分析的把握程度。只有確確實實地把握客戶的需求和方向,才能做好后續的工作,這也是項目范圍管理的重點。需求分析需要安排專門的人員組成項目需求分析小組,這個小組員的組成除了要有專業的需求分析人員和系統設計人員外,還必須包括用戶方代表。用戶方代表應為用戶各項業務的代表,他們能夠提出用戶的一些真實需求,或者通過他們能夠了解到最終用戶的真實需求。需求分析小組要制定詳細的需求調研計劃,確定需求調研的方法。為了便于需求調研雙方的充分合作理解,在需求調研開始前進行一些培訓工作是必要的,這些培訓包括調研方法的培訓、用戶業務流程的培訓等。
3.2利用WBS分解項目工作分解結構(WorkBreakdownStructure,WBS),是一種面向可交付成果的項目元素分組,這個分組組織并定義了全部的項目工作范圍;每下降一級都表示一個更加詳細的項目工作的定義。分解是指把主要可交付成果分成較小的、便于管理的組成部分,直到可交付成果定義明晰到足以支持各項項目活動(計劃、實施、控制和收尾)的制定。使用WBS的最大優點是可以監控以及預測成本、進度等不同的項目信息,并且給所有的項目參與者員提供了一個均可與之作對比的一致基準。
3.3范圍的驗證項目范圍驗證不應該僅僅發生在項目結項的時候,這樣做往往會流于形式。比較理想的做法是在項目各個階段,至少是里程碑的階段,由項目需求分析小組的成員(特別是用戶方代表)、項目經理、該階段可交付成果的負責人組成評估小組,由階段工作成果的負責人進行宣講,評估小組一起進行評審和驗證。
3.4項目團隊管理對于大型信息系統集成項目而言,項目團隊組建是由項目主要干系人采用協商方式來完成,而不是由單方指定的;而項目的管理采用的是項目管理委員會領導下的項目經理負責制,而不是項目經理個人責任制。項目管理委員會一般是由項目各主要干系方指派的項目負責人組成,項目經理由項目管理委員會成員通過充分的溝通協商指定。這樣做的主要目的是平衡項目干系方的滿意度,保證項目目標的實現。
3.5項目團隊的成長項目團隊要建立起整體形象,需要明確方向,并且試圖對要完成的工作明確劃分和制訂計劃。項目經理對于項目成員要采取預期激勵、信息激勵和參與激勵的激勵方式。項目團隊成長與激勵關系示意圖3.6軟件項目的估算在項目計劃階段或項目進度調整時,對項目的規模、工作量、進度和費用進行估算,便于掌握項目的進度,控制項目的成本。而且這些估算的數據可作為其他項目估算的參考,同時也將作為項目跟蹤與監控的度量基準。估算主要包括規模和工作量的估算。首先要進行的就是規模估算,規模估算應該與項目需求一致,以便確定該項目的工作量、成本和進度。每個規模屬性應附上有關的難度和復雜度,然后結合項目成員的平均生產性,進行工作量估算,進而安排任務的時間進度。超級秘書網
4結語
當今我國軟件企業實施軟件項目管理的許多技術還不成熟,軟件項目延期、超出預算、品質低劣甚至項目失敗等現象十分嚴重。在大型軟件系統開發過程中,做好項目管理是軟件開發能否成功的核心問題之一。筆者希望通過對大型軟件系統項目的項目管理進行的研究,為項目管理者對項目的評估、計劃、控制提供一套標準化、系統化、定量化和切實可行的方法體系,為國內軟件企業的軟件項目管理在實際中的應用提供參考。
參考文獻
[1]美國項目管理協會.項目管理知識體系指南[M].2版.盧有杰,王永,譯.北京:電子工業出版社,2005.
2模型具體步驟劃分
通過對模型進行深入分析和研究,并結合軟件項目特征,能夠確定責任范圍,對整個項目進行結構分解,得到WBS集;軟件項目的開發需要將用戶需求作為核心,進而通過模型進行分解,獲得PBS集;最后,要制定與項目開發相關的部署,確保每一個環節都能夠順利進行,保證項目進度,為工作提供依據,通過這種方式,不僅能夠確保工作有條不紊進行,還能夠有效提高工作質量和效率,從而促進軟件開發工作進一步發展。
3模型主要應用流程
WBSR模型在軟件項目管理中的應用主要涉及對項目的分解、工作目標的確認及更新。首先,建立工作小組,工作人員作為軟件項目管理的核心,其成員綜合素質直接影響工作能否順利進行,基于此,小組成員一般選擇項目經濟、技術人員等,還可以增加用戶代表等,以此來確保軟件開發的合理、科學性;其次,工作、產品等結構分解,工作分解作為模式應用的基礎,應結合實際情況進行合理分解,切勿盲目性,還需要結合成員經驗等因素,為工作順利開展提供支持;軟件產品作為參與市場競爭的關鍵,分解產品開發,能夠深度挖掘員工潛力,提高產品適應力,與客戶達成共識;最后,還需要結合實際情況對項目范圍進行及時調整,如果范圍發生變化,相對應的工作流程也需要進行調整,實現統一、系統發展目標。
4模型應用情況
將軟件項目管理與WBSR模式結合,將各個工作進行細致劃分,能夠為軟件計劃、預估等工作提供依據,確保工作順利開展,在一定程度上推動了軟件項目進一步發展,與此同時,在項目開展過程中,負責人加大對實際工作的監督和控制力度,能夠及時發現不足之處,并采取有針對性措施,確保軟件產品開發質量,該模式的應用,能夠直觀的反映組內成員的實際表現,為日后進行績效考核奠定了基礎,從而有效提高管理水平,促進企業可持續、健康發展。
5模式性能評價
通過對WBSR模式在軟件項目管理中應用情況調查可知,模式對工作過程及產品開發從不同角度進行合理分解,提高了項目范圍的精準性及有效性,避免工作失誤情況的發生,并且將工作細化至每一個人受眾,形成良性循環,促使員工能夠認真、負責完成工作,起到了積極地促進作用。因此,面對社會發展新形勢下,企業軟件項目管理可以大力推廣和普及WBSR模式,提高產品適應力及質量,從而實現企業經濟效益最大化目標。
關鍵詞:軟件項目管理軟件產品質量因素
在軟件和信息科技行業,項目管理經常決定了一個產品或者企業能否成功。項目管理得到越來越多的企業和政府部門的重視,例如中國于2002年4月召開了有關項目管理的首次國際研討會。具體操作與項目最根本的不同在于具體操作是具有連續性和重復性的,而項目則是有時限性和唯一性的。本文由中國收集整理。項目是一項為了創造某一唯一的產品或服務的時限性工作。所謂時限性是指每一個項目都具有明確的開端和明確的結束;所謂唯一是指該項產品或服務與同類產品或服務相比在某些方面具有顯著的不同。各種層次的組織都可以承擔項目工作。項目有時只涉及一個組織的某一部分,有時則可能需要跨越好幾個組織。項目是執行組織商業戰略的關鍵。
一、軟件產品項目管理的重要性
20世紀80--90年代,許多大型企業管理信息系統MIS的開發都以失敗而告終。這是為什么?一個重要原因是軟件項目管理水平上不去,尤其是需求分析管理水平上不去,使得項目快要驗收或交付時,卻出了大問題:要么發現用戶需求獲取不準確,要么發現用戶需求變了,致使做好的系統不能用或不好用。20世紀90年代初,上海一家公司在青島做一個港口MIS項目,北京有一個單位在天津做一個港口MIS項目,都是因為甲乙雙方軟件工程基本知識不具備,使得項目管理不到位,導致2個大型項目不成功?,F在軟件應用領域空前廣闊,深人到社會和科學研究等領域的各個方面。軟件的需求也比以往更加多,軟件系統設計也空前復雜。軟件的項目管理問題也就因此而產生了。90年代中期,軟件項目管理不善的問題仍然嚴重。據美國軟件工程狀況調查,只有10%的項目能夠在預定的費用和進度下交付。于是軟件項目管理成為軟件項目發展中最重要的核心問題。為了使軟件項目開發獲得成功,必須對軟件開發項目的工作范圍、可能遇到的風險、需要的資源(人、硬件、軟件)、要實現的任務、經歷的里程碑、花費的工作量(成本),以及進度安排等做到心中有數。軟件項目管理的目的就是提供這些信息,分析信息,并根據分析結果對項目做出調整。軟件項目管理開始于技術工作之前,在軟件開發的整個過程中持續進行,最后中止于軟件過程結束。
二、軟件項目管理體系
隨著軟、硬件技術以及通信技術的日益成熟,軟件技術可以與所有的傳統產業相結合,促進產品的更新換代,大幅度提高產品的附加值,提高勞動生產率,推動產業結構與產品結構的調整。因此,軟件的開發以及應用不僅僅是軟件開發機構的任務,更深地涉及軟件使用者的切身利益,尤其像管理信息系統MIS(ManagcmentInformationSystem)、計算機集成制造系統CIMS(ComputerIntegrationManufacturingSystem)、企業資源計劃ERP(EnterpriseResourcePlanning)及商業智能BI(BusinessIntelligence)等大型的復雜軟件更是綜合了管理科學、計算機科學、通信技術以及數學等各方面的知識,需要各類人員的協調工作才能完成。因此也就有必要從項目管理的角度去管理軟件的開發和運行。從用戶的角度來看,軟件項目的生命周期應該包括項目前期的論證工作、項目計劃、軟件開發、運行、維護以及項目后評價。由此可見軟件項目管理的范圍不僅包括傳統的軟件開發過程,還應該包括開發之前的準備工作以及運行中的維護工作和對項目的總結工作。同時,在軟件項目生命周期中存在著許多活動。根據活動之間的相關性,可以將軟件項目的各種活動分為九大類。
(1)戰略管理。根據用戶的經營目標制定軟件項目的策略,以便為其他各方面的活動提供指導。在制定項目策略的時候應該充分考慮用戶和其他利益相關者的實際需求和市場因素。另外創造和諧的項目環境和連續改進也是戰略管理的重要任務
(2)范圍管理。其目的是控制軟件項目的全部活動過程都在需求范圍內,以確保項目各種資源的高效利用。成功的項目管理離不開用戶、軟件開發隊伍和項目經理的一致理解和協調配合
(3)成本管理。軟件項目的成本不僅包括開發成本,也包括開發之前立項階段以及軟件在運行中的費用。操作者的培訓費用和項所使用的各種硬件設施費用也都是整個項目成本的一部分。這些成本都需要很好地計劃和控制。
(4)時間管理。其內容有確定各項活動之間的時間相關性;估計各項活動的持續時間,跟蹤各項活動的進展情況,動態調筷各項活動之間在時間上的協調。本文由中國收集整理。
(5)人力資源管理。在軟件項目中應該為軟件開發人員和管理人員等各類項目人員創造一個和諧良好的工作氛圍。使他們能感到項目成功的把握和積極的工作心態,確保項目隊伍的穩定性和連續性。
(6)溝通管理。溝通管理是一個收集、存儲、配置和項目生命周期內所形成的各種信息的過程為了讓每個項目相關人員及時得到所需的信息,需要很好地解決“什么時候、向什么人禮報什么的”的問題,此外軟件開發隊伍和用戶之間的溝通也是溝通管理中的一項重要工作。
(7)風險管理。由于軟件項目中存在著很多的不確定因索,也就必然存在著各種風險而且風險有可能造成不良的結果,對風險進行分析和監控貫穿于整個軟件項目生命周期。
(8)質量管理。目前軟件的質量還是一個模糊的概念并且難以衡量由于軟件質量主要是在開發階段形成的,因此軟件項目質量管理的重點應放在系統分析、系統設計和編碼階段,走查、評審、調試和測試是保證軟件質量的重要手段軟件工程能力成熟度模型CMM(CapabilityMaturityModel)較好地解決了軟件開發過程中的質量管理問題。
綜合管理。綜合管理的任務是對前面討論的各類管理活動進行協調和控制,使這些活動相互配合。其核心任務是對各種方案進行評價,協調各方面的利益沖突確保項目總體標的最終實現。
三、軟件項目管理的核心是全面客戶滿意
當前,不少軟件業管理人上認為,軟件開發的問題主要在軟件開發的工程化、規范化和軟件開發管理體制。他們按照CMM(CapabilityMaturityModel),IS09002的標準來建立他們的管理體系。這里有商業競爭的因素在起作用。但是,他們忽略了商業競爭中取勝最重要的因素—客戶滿意。他們沒有考慮到他們的管理方法能否滿足客戶不斷變化的需求。從長遠來看,軟件項目真正的成功是客戶的全面滿意。以客戶滿意為中心的質量是必需的。漠視質量或只關心產品/服務是否符合需要的方法再也不足以留住和獲得客戶。因此,軟件開發項目組織必須先確定什么產品/服務可以讓顧客滿意,然后再努力滿足客戶的需求和期望。要實現此目標,組織必須識別對軟件產品的各種特性中哪些是對客戶的滿意起決定作用的要素。例如,服務器操作系統軟件,需要長時間穩定連續工作。穩定性則是該軟件產品的關鍵要素。因此系統的開發管理圍繞著這一關鍵要素來展開。盡管不少的組織明白沒有客戶一個組織就不能生存和發展,或者說沒有客戶就沒有組織,但在項目實施過程中,仍然存在著客戶滿意的障礙:
(1)項目管理組織沒有發展和完善對客戶不斷變化的需求和期望作出快速響應的能力。
(2)項目管理組織沒有聽取客戶意見和建議的能力。
二、軟件項目的生命周期
從項目管理與項目經濟分析的角度看,軟件項目的生命周期可歸納為圖1所示的一般過程:
在圖1中,橫坐標是時間,縱坐標是收益或投資成本,t0=0是項目的決策點。在決策時,I是項目可行性研究費用(成本),相對于項目的整個壽命期,一般來說項目的可行性研究階段的時間很短,所以假設項目的可行性研究是在瞬間完成。t1是項目開發的起始點,t2-t1是項目前期開發階段,在這一階段,項目有一現金流C1支出,C1可能是常量,也可能是隨時間的變量C1(t)。從t2時刻起,項目的首期開發完成,項目開始有收益,即現金流B1,B1也可能是常量,更一般的是隨時間的變量B1(t),這一收入可能是企業出售軟件或軟件相關服務效益的收入。同時,對于大多數成功的軟件項目來說,從t2時刻起,該軟件項目又開始了進一步的開發,如增加軟件的新功能,或將軟件移植擴展到其他的計算機操作系統等。從t3-t2階段是軟件項目的第二次開發階段,在這一過程中所發生的開發費用為C2,C2的特點也與C1相似。從t3到tn,其中可能包括多個與t3-t2階段相似的軟件項目的擴展(二次開發)階段。T是該軟件項目結束的時間。由于技術進步與消費者需求的變化,一般來說一個軟件不可能永遠繼續下去,它可能在某一時刻被完全淘汰。綜上分析,t0是項目的決策點,t1是項目的開發起始點,他們可能是同一時間,但大多數情況下可能是不同點。t1-tn是項目的開發階段,其中t1-t2是項目的純開發階段,在這一階段上,項目無收益。t2-T是項目的收益階段,在這個時段上項目有現金流入,他們通常大于本階段上的開發費用。值得指出的是,軟件項目在t2-T階段,企業可以中止并出售該項目,并一次性收取轉讓費。
三、軟件開發項目內含實物期權分析
從圖1的分析可以看出,一個軟件開發項目包含了多個階段。把軟件項目看作是由一系列序貫開發的小項目所組成,這一觀點在軟件開發項目管理中已被廣泛接受。在軟件項目中,前一階段的決策,決定了后續階段的開發投資。所以,在前一階段的經濟評價中,應考慮本階段的決策所帶來的后續階段投資機會的價值。從這一觀點出發,可以分析在軟件開發項目的不同階段中項目可能包含的實物期權。
在t0點,即項目投資決策時,項目內含一個等待(wait)或推遲(defer)開始的實物期權,這相當于一個美國式的買方期權(CallOption)。該期權的執行條件是:推遲項目可以使得管理人員獲得更多(額外)的有關項目的信息,在此基礎上,有利于管理人員采取管理行動,而且,一般來說計算機硬件,軟件的價格隨時間迅速下降,推遲項目會有利于降低開發成本。但同時也應看到,推遲項目也可能導致項目收入的損失和企業競爭優勢的喪失,即推遲項目具有機會成本。在項目決策時,應綜合全面考慮這兩方面因素。因而,在項目決策時,除了篩選項目外,還應考慮這一實物期權的價值,在時間許可的范圍內,決定最佳項目開始時間。
在t0時,除等待期權外,項目還包含有第二階段投資機會的實物期權。
在t1至tn時項目的開發階段。在開發階段上項目具有更大的管理柔性,項目可能包含的實物期權有:1.推遲或中止下一階段的開發。2.若不期望的情況出現,并且繼續下去,則可完全放棄該項目。3.根據新掌握的信息,擴展或縮減項目。4.發現新派生軟件(項目)的投資機會。
最后,項目的經營階段,項目還可能包括中止(出售)的期權,或由于條件的變化,進一步升級軟件的機會。
雖然軟件項目中所包含的期權不同,但一般情況下,影響他們價值的因素主要包括:1.執行項目中實物期權所產生的收益。對軟件開發項目來說,這可能是項目在某一階段的收益,一般來說,其他條件不變,收益越高,期權的價值也就越大。2.執行實物期權所需要的成本。對于軟件開發項目而言,是投資于項目下一階段的成本,一般來說,其他條件不變,成本越小,期權的價值也就越大。3.收益與成本的不確定性的程度。對于金融期權來說,其價值是建立在市場風險之上的,這個風險反映在證券資產的價格變化上。然而,其中之一變為不確定了,則項目所包含的實物期權價值會相應增加。4.實物期權的截止時間。對于軟件項目來說,這一時間就是下一階段項目管理決策的可能時間。在實踐中,它經常是企業因素所決定的。實物期權的截止時間越長,則期權的價值也就越高。5.項目包含的實物期權執行的機會成本。若這一機會成本越高,則期權的價值也就越低。6.無風險折現率。無風險折現率越低,則期權的價值也就越高。
四、軟件開發項目經濟分析的目標與內容
Trigeorgis等學者提出,在考慮內含實物期權時,投資項目的價值包括兩部分:一是傳統的、被動的、靜態的(static)項目直接現金流的凈現值(NPV)。二是管理柔性或靈活性所產生的項目內含實物期權價值。這一思想可歸納為下式:F=NPV+V(1)
(1)式中,F是擴展(Expand)的NPV,也是整個項目投資機會的價值;NPV是按凈現值法計算出的項目凈現值;V是項目內含期權的價值。
根據項目投資決策的NPV法則,內含實物期權的IT項目,其投資機會的價值大于零時,項目可行;篩選IT項目的多個獨立方案時,選擇投資機會最大的投資方案。在大多數投資項目的實物期權理論研究以及實證研究的文獻中,都遵循這一準則。然而,這類投資項目的決策思路卻值得重新審視。
傳統的投資項目經濟評價中,沒有考慮項目中可能包含的實物期權,其經濟評價是為其投資決策服務的。而投資決策的特點是在決策時只有投資或不投資兩種選擇,若項目選擇投資,其經濟評價的使命便告結束。若選擇不投資,項目就放棄了。傳統的投資項目決策的內容可歸納為下面三個基本內容:1.決定投資項目是否經濟可行;2.若可行的投資項目存在多個相互排斥的投資方案,篩選最佳的投資方案;3.在企業資源(預算)約束的條件下,篩選多個項目的投資組合。然而,若投資項目中包含實物期權,項目經濟評價中也考慮了項目內含實物期權的價值,那么投資項目不僅在經濟評價的內容與方式上與傳統項目的經濟評價不同,而且項目的決策內容和方式也與傳統項目的決策不同,具體體現在下面三個方面:第一,項目的決策不僅在項目最初的決策階段(點)進行,而且還應延伸進項目的整個過程之中。第二,在項目最初的決策階段(點),管理者不僅要決定項目是否可行,篩選最佳方案和選擇投資組合,而且還要依據項目經濟評價的結果,決定項目內含期權是否應該執行和何時執行。第三,投資項目內含期權的經濟分析,不僅在項目決策階段進行,而且還應延伸至項目開發的全過程。在項目開發的每一個階段,根據項目經濟分析的結果,決定當時項目所含實物期權是否實施、何時實施。
五、軟件開發項目決策框架與準則
從上述分析可以看出,在軟件開發項目經濟評價中引入實物期權的概念和實物期權定價方法,是軟件開發項目經濟分析與決策管理的革命,它必然給原有的軟件開發項目的管理帶來深刻變革。本文構建了軟件開發項目的經濟分析與管理決策過程的框架,其主要內容是:1.確定本階段軟件開發的范圍及下一階段開發的可能范圍,決定是否可引出相關的開發項目。2.構造確定本階段開發項目包含的實物期權,如推遲開發、進一步擴展開發等。3.預估開發項目成本、收益、時間和無風險折現率,特別應分析確定成本與收益的不確定性特征,如變化方差等。4.根據開發項目的不確定源的特征,選擇合理、恰當的市區期權定價模型,確定開發項目內含期權的價值。對于相似于美國式期權的實物期權,還應確定最佳執行時間。一般來說,實物期權定價模型主要包括:已有的期權定價模型、偏微分方程法和動態規劃方法等。5.根據項目的經濟分析結果作出管理決策。應該指出的是,在軟件開發項目的不同階段,管理決策的內容有所不同,下面詳細分析不同開發階段管理決策的內容與規則。
1.1軟件項目功能的識別和度量依據軟件項目的開發特點,軟件項目功能模塊包括基本功能和擴展功能,根據需要還會有衍生的附加功能。它在產品中的作用和價值有很大差異。對整體的投入/產出有很大的影響。如何定義這些功能,并進行合理的功能劃分,包括其必要性和可能性、以及交付的時間節點,需要充分考慮用戶需求、開發成本、時間因素、質量要求,將這些基本需要和用戶真實需求進行匹配和對接,體現價值工程思想在軟件項目中的應用和契合。
1.2軟件項目成本的識別和度量軟件項目成本是指為獲取軟件功能而付出的成本,主要體現為人力、物力、財力和時間的投入。相應的成本和出,最終都可以從價值論的角度用統一的度量標準、度量方法和度量單位進行分析和度量。在項目生命周期中,啟動、規劃設計、結束階段相應的成本較低,實施階段的成本最高,應該進行有效的評估和設計。通過掙值管理(EVM),了解項目成本、進度的偏差,及時進行糾偏或變更管理。
1.3軟件項目價值的識別和度量在價值工程中,價值、功能和成本三者之間的關系應該是:價值=功能(或效用)/成本(或生產費用),用公式可表示為:V=F/C。V代表Value,即為價值;F代表Function,即為功能,C代表Cost,即為費用。從項目管理的角度出發,影響產品的價值不僅是功能和費用,還需要考慮相應的時間成本以及質量要求所帶來的成本,綜合以上因素,有學者提出其價值可用公式表示為:V=(F+Q)/(C+T)。上式中增加了質量(Q代表Quality)因素和時間(T代表Time)因素在價值中的作用。在實際的操作中,其具體的核算指標依據項目特點會有很大差異。影響價值的因素,除了以上各項,還包括用戶體驗、供需關系和認可度等諸多方面。
軟件行業在現在的眾多行業里是一個極具挑戰性和創造性的行業,體現了軟件開發者的智慧和汗水,同時軟件開發是一項復雜的系統工程。牽涉到許多方面的因素,在實際工作中,經常會出現各種各樣的問題,甚至會面臨失敗。如何總結、分析失敗的原因。得出有益的教訓,對于項目開發人員來說,是在今后的項目中取得成功的關鍵。
一、軟件開發中實行項目管理的意義
項目管理就是在項目活動中運用一系列的知識、技能、工具和技術,以滿足或超過相關利益者對項目的要求,實際上就是通過項目各方干系人的合作,把各種資源應用于項目,以實現項目的目標,滿足項目干系人的需求,其本質就是對時間、質量和成本的管理。
隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件過程管理的重要性,管理學的思想逐漸融入軟件開發過程中,項目開發的管理日益受到重視。
二、目前在軟件項目管理中存在的誤區
現在大多數企業都認識到了在項目中進行管理的重要性,但是仍然有許多企業在實施項目管理的過程中存在著這樣那樣的誤區,主要表現在:
1項目經理不夠專業。在軟件企業中,缺乏專業的項目管理人員來實施項目管理及擔任項目經理,通常被任命的項目經理主要是因為他們能夠在技術上獨當一面,但是他們在管理方面特別是項目管理方面的知識比較缺乏。
2項目計劃缺乏綱領性。項目經理對總體計劃、階段計劃的作用認識不足,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮:階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的進度控制管理。
3缺乏有效的管理意識。部分項目經理不能從總體上把握整個項目,而是埋頭于具體的技術工作,造成項目組成人員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。有些項目經理沒有很好的管理方法,不好安排的工作只好自己做,使項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
4缺乏有效的溝通制度和機制。在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失:有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。
5風險管理意識淡泊。有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對于后面的風險防范起不到什么指導作用。
6項目干系人的不確定性。在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、工作職責等沒有足夠了解以至于無法得到完整需求或最終經權威用戶代表確認的需求:或者是多個用戶代表各說各話、昨是今非,但同時又要求項目盡早交付:項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。
7缺乏項目團隊的合理分工。項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任分工不夠清晰而造成工作互相推諉、責任互相推卸的現象;有時各階段不同角色或同階段不同角色之間的責任分工比較清晰,但是各項目成員只顧完成自己那部分任務,不愿意與他人協作。這些現象都將造成項目組內部資源的損耗,從而影響項目進展。三、解決軟件項目管理中存在的誤區的有效策略
要想解決上面描述的誤區,歸根到底還是要從管理學的角度入手,即在軟件項目的開發過程中加入過程管理的內容,這樣我們可以在軟件開發中對各個過程的質量加以控制,從而達到保證軟件產品質量的目的。為了有效提高管理水平,我們應該努力做到:
1項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。
2計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
3加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,特別是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
4制定有效的溝通制度和溝通機制,提高溝通意識:采取多種溝通方式,提高溝通的有效性。通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于特別重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如:除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
5通過學習項目管理知識掌握風險識別、量化、對策研究、反應控制的工具和方法,掌握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識??偨Y本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。