第一篇:軟件開發項目風險管理的幾點體會
參與過大型軟件項目的人都會認識到許多事情都可能出錯,一但出錯就可能給項目帶來危害、損失或其它不利影響。風險是在項目中發生的一系列事件或不利結果的可能性。軟件開發是一項高風險的活動,在項目開發過程的任何一個階段都可能存在風險。采取積極的風險管理方式,可以使項目進程更加平穩,可以獲得很高的跟蹤和控制項目的能力,可以規避、轉移風險,或緩解風險帶來的不利影響。風險管理是對項目風險進行識別、分析、應對和監控的過程,是項目管理中很重要的管理活動,有效的實施軟件風險管理是軟件項目開發工作順利完成的保證。
風險管理的達成必須包括三個要素:首先,在項目開發計劃中必須制定風險管理計劃;第二,在項目預算中必須包含解決風險所需的經費;第三,評估風險時,風險的影響也必須納入項目計劃中。
下面就軟件開發過程中經常發生的風險,談談我們采取的預防措施。
2.需求不明確
需求不明確是軟件開發過程中經常可能遇到的問題,這類問題往往表現在需求范圍未界定、需求未細化、需求描述不清楚、需求遺漏、需求互相矛盾等多個方面。在軟件開發過程的生命周期各階段中,需求不明確所造成的浪費是最大的,必須盡早盡可能解決。確定用戶需求是件非常困難的事情,我們常常從以下幾個方面著手處理需求不明確問題:
(1)讓用戶參與開發
提供一個協作開發環境,讓用戶參與開發過程。如果條件不允許,至少應該在每次迭代的需求分析和系統測試階段,讓客戶能夠參與開發。
在選擇參與開發過程的用戶時,一方面,要盡可能爭取精通業務或計算機技術的用戶參與。另一方面,如果開發的產品要在不同規模、不同類型的企業應用,應該選擇具有代表性的用戶參與。
僅僅讓用戶參與是不夠的,應該采取一定的激勵措施,提高用戶參與的積極性。
(2)開發用戶界面原型
用戶通常不善于精確描述自己的業務需求,系統分析員需要借助白板、白紙等溝通方式,幫助用戶清楚表述需求。然后,開發一個用戶界面原型,以便用戶確認需求。用戶界面原型的作用僅僅是收集用戶需求,不應該再作它用,也不要給用戶造成系統快要實現的錯覺。
(3)需求討論會議
對于用戶分布廣、用戶量大的項目,要全面收集用戶需求,往往很困難,通常采取需求
研計會議方式進行需求確認。通過在會議前幾周調查各地、各部門用戶需求意見,然后集中各地或各部門的用戶代表,舉辦一次需求研討會,通過會議方式收集需求。本方法適合于具有一定信息系統使用經驗的用戶。
(4)強化需求分析與評審
首先,需求分析是項目成功的基礎,需要引起足夠的重視,并分配充足的時間和人力,要讓有經驗的系統分析員負責,切忌讓項目新手或程序員負責。其次,要進行需求評審,盡可能讓用戶參與需求評審,不要讓需求評審流于行式。第三,也是最重要的一點,通過評審的需求規格說明書,要讓用戶方簽字,并作為項目合同的附件,對雙方都具有約束力。在公司內部要將通過評審的需求規格說明書,納入配置管理。
3.項目缺少可見性
當一個項目經理或一名開發者說已經完成了80%的任務,您必須保持審慎的態度。因為剩下的20%可能還需要80%的時間,甚至永遠都不能完成[1]。軟件開發項目,往往在項目進度和軟件質量方面缺少可見性,項目越缺少可見性,項目就越難以控制,項目就越有可能失敗。我們可以通過迭代開發、技術評審、持續集成來增強項目的可見性。
(1)n 迭代開發
采用迭代的開發模型,將產品的交付過程分為多個階段,按照功能遞增式交付。以下是一些典型的迭代:
一次簡短的先期迭代,以建立規模和前景并確定商業理由;
一次精化迭代,其間將為穩定的構架劃定基線;
一次構建迭代,其間將實現用例并充實構架;
幾次產品化迭代,將產品轉移到用戶群。
每次迭代,都要充分接收用戶的評審意見,以便為自我糾正。漸近式的功能交付,有利于降低開發人員的壓力,增加用戶的滿意度,有利于增強項目的可見性,是最好的進展報告。
(2)技術評審
技術評審是確保軟件質量的重要環節,技術評審包括代碼走查、會議評審和同行專家評審。代碼走審可以是開發人員之間的交叉審查,或者是高級開發人員對普通開發人員的審查;會議評審一般應至少每兩周進行一次,每次評審時間不宜太長;同行專家評審包括技術和業務兩個方面的專家,經常性地讓精通業務的用戶專家參與項目評審,是項目成功的重要保證。
另外,充分利用質量審查的工具軟件,也有利于提高代碼質量。例如:在Eclipse開發環境中,可以集成Findbug、Checkstyle、PMD插件檢查代碼編寫質量。
(3)持續集成持續集成能夠把最終的一次大規模的集成調試過程分散到項目開發時間表的每一周、每一天、甚至每個小時。讓項目中的各個人員都能夠隨時掌握當前的整體進度,并迅速發現集成過程中出現的問題并進行解決[1]。
開發小組應制定持續集成的制度,一般情況下每日構建一次,可以利用Ant等構建工具進行Java應用程序的構建。小組成員應在每個功能開發完成后,及時向版本控制系統(如CVS)提交代碼,而且不應該向版本控制系統提交有問題(編譯通不過)的代碼。
每日構建、持續集成,讓項目進度跟蹤工作更加容易。當項目小組每天重新編譯系統時,已完成與未完成的功能清楚可見,小組成員能夠簡單地從軟件的表現知道距離整體完成還有多遠。
4.新技術引入
技術創新是一種具有探索性、創造性的技術經濟活動。在開發過程中引入新技術,不可避免地要遇到各種風險。通過T形軟件開發、充分論證、多階段評審、同行經驗等措施可降低新技術風險。
(1)T形軟件開發
在項目開發早期,開發小組應該建立系統的架構,解決關鍵技術難題、開發系統的基礎構件,并對系統所需要應用的技術做深度探索。例如:基于JavaEE5構建全國聯網售票系統,涉及到分布式事務處理、海量數據存儲、異構平臺互連等關鍵問題,應該優先處理這些問題;對開發所涉及到的EJB3、JSF、JBoss Seam、Eclipse RCP等技術,要做深度探索。圖1 在第一階段以“T”形開發系統骨架[2]
越是技術復雜度高的項目,就越應該早地處理技術難題。如果在項目開發的中期或后期才發現架構有問題或是關鍵技術難題不能解決,則為時已晚。
(2)充分論證
新技術開發是探索性很強的工作,潛在著許多失敗的風險。在可行性分析階段,要廣泛搜集相關信息,設計多種可行方案,進行充分論證。在制定決策時,情報的數量和質量致關重要。掌握的信息越多、越準確,才能作出正確的的決策,項目失敗的風險也就相對減少;反之,承擔的風險就會增大。
(3)同行經驗
針對新技術,由于沒有經驗可借鑒,因此在探索過程中要充分利用互聯網,通過搜索同行經驗,往往事半功倍。要充分利用世界日益平坦化的優勢,對于不能盡快解決的問題,可
以先放一放,可能過不了幾天,網上就有相類似問題的解決方案了。
5.技術兼容性風險
硬件產品之間、系統軟件(操作系統、中間件、數據庫管理系統)與主機設備之間、系統軟件之間、應用軟件與系統軟件之間以及應用軟件之間,都可能存在兼容性問題。往往系統集成的項目越復雜,兼容性問題就越有可能存在。
(1)設計先行
在做系統的總體設計方案時,務必把好相關產品的選型關,確保網絡、主機、系統軟件與應用軟件之間不要存在較大的技術兼容性問題。在網絡平臺建設方案中,明確相關設備的技術參數和配置要求。
(2)售前產品測試
在做項目招投標工作時,要求投標方在售前提供產品兼容性測試,以避免在項目實施過程中才暴露技術兼容性問題。涉及應用軟件開發的集成項目,要在開發工作的早期,做技術兼容性測試,以避免在項目開發后期才暴露技術兼容性問題。
例如,我們在開發深圳市汽車客運站售票及站務聯網調度系統時,為了確保技術兼容,在做硬件招標時要求小型機設備廠商提供售前技術兼容性測試工作,并將測試結果做為評標指標。在深圳市軟件測試中心對IBM、SUN、HP三家公司提供的小型機進行測試時,暴露了許多應用軟件、應用服務器、數據庫和操作系統之間的技術兼容性問題,如果這些問題在系統實施時才暴露或處理,勢必會拖延項目進度。
6.性能問題
由于先期設計不足,性能問題往往在系統切換或新系統使用一段時間后暴露。出現性能問題往往要進行大量的優化工作,甚至局部的或全面的重新設計。無論是用戶還是開發者,誰都不希望出現性能問題。
(1)性能規劃
在系統設計時,應做好前期做性能規劃,對可能出現性能問題的環節做到充足的估計。在做數據庫設計時,應爭取DBA參與。
另外,在技術方法方面,盡可能采取一些性能優化模式,如DTO、AJAX、延遲加載等,盡可能在開發過程中解決了性能問題。不至于到了項目后期才解決性能問題,既費錢又費時。
(2)性能測試
在開發過程中,要重視性能測試和壓力測試,盡可能模擬現實使用環境,搭建測試平臺。另外,由于開發環境的計算機往往比生產環境的計算機配置高,在做測試時應盡量找一些配
置低的機器、較小的網絡帶寬進行測試。
(3)充足的調試時間
在項目開發計劃中,為后期性能優化留有余地。在對系統進行性能優化后,要進行性能測試和壓力測試,可能還要做幾次回歸測試。因此,應該留有充足的時間和人力。
7.倉促上線
在項目實施過程中,系統切換上線環節最容易出紕漏。項目好不容易開發完成了,卻在最后最后時刻功潰一匱。如果項目小,影響面窄倒不怎么重要;如果是影響面大的項目,則千萬不可出現問題。在系統切換前,應充分考慮各種可能出現的問題,做好風險對策。
(1)應急預案
面對各種不可預知的風險,要做好應急預案。正常運行的車站售票系統在春運、旅游黃金周,都會做好應急預案。新系統切換時,更應該做好應急預案。應急預案中應做好最壞的打算,售票系統不能正常工作時,準備手工票就是最壞的打算。
(2)分步切換
為了減少風險的影響,可以做系統分步切換的方案。例如:售票系統在切換時,往往用新系統售預售票,或者是用新系統售長途車站,用舊系統暫時售短程票。待新系統運行穩定后,再全面切換到新系統。針對多個用戶單位的系統切換,也可分單位進行。
(3)交叉培訓
新舊系統切換過程中,用戶都存在適應過程。除了在切換前做好操作培訓外,還要在新舊系統切換過程中做好交叉培訓。讓用戶提前一些時間上班,讓早班的用戶在交班時培訓中班的用戶,中班的用戶培訓晚班的用戶。做好交叉培訓能夠讓系統平衡過渡。
8.可用性問題
軟件的可用性包括軟件的使用是不是高效、是否容易學習、是否容易記憶、是否令人愉快、是否不易出錯等諸多因素。往往由于軟件的可用性差,導致用戶不滿意,甚至被市場淘汰。在項目開發中應注意可用性問題,避免軟件出現可用性方面的風險。
(1)了解用戶
到用戶工作現場,了解目標用戶使用軟件的真實目的,從用戶的角度、從用戶的立場出發,了解如何通過軟件系統替代用戶的業務處理流程中,最繁瑣、最容易出問題、或者是大量重復勞動的環節,讓軟件提高用戶的工作效能和效率。例如:售票系統中,使用頻度最高的界面是售票界面,售票員最關心的是錢不要出錯(多了沒收、少了要賠),因此,應收款和找余字體的顯示應該突出、醒目;同樣,票價和到達站也應該較為突出顯示。通過快捷鍵、一鍵復位、數字小鍵盤等設計,盡量減少售票員敲擊鍵盤的次數。否則,在日發旅客流量達七、八萬人次的大型客運站,如果用戶界面設計得不好,售票員一天工作下來,手指都會敲麻木。
(2)參與型設計
與用戶協作,讓用戶參與用戶界面的設計、評審與測試,確保用戶能夠全面地、及早地發現可用性等方面的問題,并及時糾正。
讓客戶參與設計,而不要讓客戶設計,項目經理或高級設計人員應該主導設計。
(3)競爭性分析
通過對市場上同類競爭性產品進行分析,或者對這些產品進行實驗性測試,了解這些產品的用戶界面問題,從而對新系統的開發提供啟發。競爭性分析并不意味著可以剽竊別人的設計,而是通過分析競爭產品的優勢和弱點,能夠比以前的設計做得更好[5]。
(4)一致性
如果用戶知道同樣的命令或同樣的操作總會產生同樣的效果,那么他們在使用系統時就會更加自信,同時也鼓勵他們進行探索性學習,因為他們已經具備了使用系統新部分的基礎知識[Lewis er al.1989]。
開發團隊應遵循公司或小組制定的用戶界面標準,就可以在很多方面保持一致性,切忌不要一個系統存在多種不同的界面風格。
9.結論
在信息系統集成項目中,風險是多種多樣的,是無處不在的。在項目管理活動中,要積極面對風險,要培養。越早識別風險、越早管理風險,就越有可能規避風險,或者在風險發生時能夠降低風險帶來的影響。特別是在項目參與方多、涉及面廣、影響面大、技術含量高的復雜項目,應加強風險管理。如果不主動駕馭風險,就會面臨風險。
第二篇:水利工程項目風險管理論文
【摘要】水利工程是一個關系到社會和經濟的重要內容,然而由于競爭、環境等因素的影響,水利行業的發展面臨著許多不確定的風險因素,其中包括工程項目質量、經濟效益等等,因此風險管理已經成為水利工程項目發展的一個突出課題。本文通過對水利工程建設中存在風險進行的分析,知道了現代水利工程建設中風險管理重要性,并對在整個生命周期內影響水利工程項目的風險因素進行識別,最后介紹了常用的風險策略,以減少風險的發生,促進項目效益的提高。
【關鍵詞】風險管理 水利工程 風險分析 應對策略
Abstract:This paper analyzes the risk in thewater project,to prove the importance of the riskmanagement of water projects,and then identi-fies the risk factors in the life circle of water pro-jects,and finally describes the common riskstrategies,to reduce the occurrence of risk,andpromote the improvement of project benefits.Key words:Risk Management Strategies,water project,risk analysis,measures引言隨著社會經濟的不斷發展,人類面臨的各種風險也在不斷的發展、變化,人類的風險意識不斷提高,為了能規避風險,將風險降到最低,人們所想出的辦法日益增多,技術也日趨先進。到20世紀中期,風險管理已經作為一門系統的管理科學被提出。水利工程項目的建設與開發是一個復雜的、充滿不確定性的過程,而它具有工程規模龐大、建設工期長、自然條件和技術條件復雜、資源投入數量大、影響因素多等特點,因此它是一個復雜的系統。由于在建設過程中,系統的不確定性因素眾多,影響方面眾多、關系復雜,由于不同原因造成的不同后果可能完全不同,這就導致了項目預期效果具有很大的不確定性。因此,在工程建設時對投資控制、風險分析等是現代水利工程項目的重要內容。通過科學系統的方法對風險進行評估和控制,根據工程實際特點,減少或避免水利工程項目實施過程中的不確定性,降低項目實施過程中所存在的危險,抓住有利機會,降低損失,提高經濟和社會效益,這就是水利工程項目風險管理的目的,因此,開展水利工程項目風險評估和風險分析對確保工程建設有序進行具有積極的意義。
1.常規風險分類
在水利工程中,風險是指潛在災害發生的概率及其對社會后果的度量。風險包含客觀、普遍、動態和規律等特點。
風險的分類多種多樣,按照風險來源來分,項目風險主要包含政策與環境風險、財務風險、管理風險、技術風險和項目進度風險等。
政策和環境風險是客觀存在的,存在很大的不可預料性、突發性,雖然發生的可能性比較小,但是這些風險的發生往往是不可控制的,一旦發生就會產生很大的危害,為了減少突發風險帶來的危害,在項目前期,根據項目所在位置的環境特點制定一定的相應對策,盡量降低風險發生時的損失。而管理風險則主要是主觀性的人為風險,由于管理人員缺乏相應的經驗和能力,就很有可能導致管理層決策失誤,從而會引起項目施工過程中一系列的問題發生,對工程造成不必要的損失。
各種風險之間相互影響,隨著項目的進展而發生變化,并可能相互轉換的同時增加新的風險,例如,項目進度風險是因為工程施工進度的延誤而導致的,隨著工程時間的拖長其施工成本也就相應的增加,實際施工的使用資金與工程前期的預算相差較多時,就會使得資金的融通、調度、周轉、利息等各方面發生變化,從而產生財務風險,影響著項目的預期收益;
項目財務發生風險時就可能會影響新設備的引進、新技術的研發等,從而導致技術風險,影響到整個項目的成功。
因此,要做好風險管理的系統規劃,就需要對整個項目中各階段的風險進行全面分析和考慮,根據實際情況靈活的制定應對措施,減少風險發生的可能性,降低發生風險時的損失,確保工程項目實際結果與預期結果偏離程度小。
2.常規風險應對策略
工程項目風險在一定程度上是可以評估的,目前一般估算失事概率的風險評估方法主要有:貝葉斯估計法、歷史性態法(重現期法)、蒙特--卡羅法等。借助評估結果,對不同的風險制定相應的風險應對策略,降低風險發生的概率,提高項目工程的可行性,確保工程順利進行。
在風險分析、評價的基礎上,利用科學的手段優化方案,在眾多的方案中選優汰劣,作出最佳決策,這就是風險策略,它也是整個風險管理的核心。常用的風險策略主要包括風險控制、風險回避、風險轉移和風險自留。
2.1風險控制
針對可控性風險而言,風險控制是采取一定的方法,在風險未發生之前就防止其發生、減少損失,它是絕大部分項目應用的主要風險防范措施。風險控制措施必須根據項目的實際情況,針對項目的具體問題提出,主要分為向內和向外兩種。通過對項目內部采取一定的管理措施、工程措施和技術措施等方式來進行風險控制;同時也可以采取向外分散的方式來減少項目承擔的風險,自然災害是水利工程建設中所存在的最大風險之一,洪水就是其中的一種,然而對于不同等級或類型的洪水,可以分析出它的流速、水位以及淹沒范圍等,從中就可以在一定程度上估計洪水所造成的損失結果,并可以采取必要的措施,如泄洪、轉移下游的財產等方法,把損失降到最低,從而達到被人們管理和控制的目的。
2.2風險回避
在一些項目中,風險發生可能性大、危險性高的,并且風險控制的難度較大時,主動放棄該項目,從而達到回避該項目所帶來的一切風險和損失的一種處置風險的方式,這就是風險回避。風險回避雖然徹底消除了實施該項目可能帶來的風險,但同時也失去了實施該項目可能帶來的收益,它既是一種最徹底的風險處置技術,也是一種消極的風險處置方式。風險回避有幾種常用的處理方式:一是通過嚴格的招標投標程序,選擇合適的承包商,降低技術風險;二是嚴格控制工程分包,防止將工程分包給劣質承包商;三是根據實際情況進行現場規劃和拆遷,在滿足工程設計要求的條件下,盡可能回避施工地質條件復雜、拆遷困難的地域。
2.3風險轉移
將項目的風險有意識地轉給與其有相互經濟利益關系的另一方來承擔的風險的處置方法就是風險轉移。水利工程建設中經常采用的風險轉移方式主要有:為工程合同的履行提供履約擔保;設置保護性條款;投保建筑工程的一切險。
2.4風險自留
當采用其他風險規避方法的費用超過風險事件造成損失數額時,通常可以采用風險自留。風險自留又稱為風險承擔,是指項目班子自己承擔由風險事故所造成的損失。其包括主動和被動兩種,主動的風險自留是指項目管理者在識別和衡量風險的基礎上,對各種風險作比較,權衡利弊,從而間接將風險留置內部,主要的措施有將損失計算進入經營成本,并建立損失基金。被動的風險自留是指項目管理者認為主觀或客觀原因,對風險的存在性和風險的嚴重性認識不足,沒有對風險進行處理,而最終由項目班子自己承擔風險損失。
在水利工程項目實施前,管理人員都應對項目存在的風險進行評估,并對此作出相應的決策,在制定決策時常常將幾種應對策略組合使用,發揮更大的功效,以達到最好的效果和目的。
結語
風險的復雜多樣性、客觀存在性使得水利工程建設中存在很多的風險,而風險會對工程產生巨大的損失,因此在現代水利工程建設中風險分析和管理十分重要。目前,風險管理是水利工程項目管理的主要內容之一,對于作為水利工程項目建設的實施主體、處于整個工程建設管理的核心和主導地位的項目管理者而言,不會管理風險就不能成功地管理項目,因此提高項目風險管理意識,掌握風險識別技術,開展風險評估與分析,及時防范和化解風險,這對于提高我國的建設管理水平和投資效益,都具有特別重要的意義。
在水利工程建設中存在著許多不確定因素,通過人們對風險的重視,加強管理,充分發揮水利設施的社會效益和經濟效益,這就可以確保工程項目的效率同時造福于人類,真正做到水利工程服務于人民的目的。
參考文獻:
[1]鄧鐵軍,仇一顆,工程風險管理.北京:人民交通出版社.2004,72-85.[2]王卓甫.工程項目風險管理.北京:中國水利水電出版社,2003,153-175.
第三篇:軟件開發管理規定
軟件開發管理規定
第一條 第二條 第三條 為規范自有軟件研發以及外包軟件的管理工作,特制定本制度。本制度中軟件開發指新系統開發和現有系統重大改造。
本制度中自行開發是指主要依賴公司自身的管理、業務和技術力量進行系統設計、軟件開發、集成和相關的技術支持工作,一般僅向外購置有關的硬件設備和支撐軟件平臺;合作開發是公司與專業IT公司(合作商)共同協作完成IT應用的項目實施和技術支持工作,一般形式是公司負責提供業務框架,合作商提供技術框架,雙方組成開發團隊進行項目實施,IT系統的日常支持由IT管理小組和合作商共同承擔,IT管理小組負責內部(一級)支持,合作商負責外部(二級)支持;外包開發是指將IT應用項目的設計、開發、集成、培訓等任務承包給某家專業公司(可以是專業的IT公司或咨詢公司等),由該公司(承包商)負責應用項目的實施。
第四條 軟件開發遵循項目管理和軟件工程的基本原則。項目管理涉及立項管理、項目計劃和監控、配置管理、合作開發管理和結項管理。軟件工程涉及需求管理、系統設計、系統實現、系統測試、用戶接受測試、試運行、系統驗收、系統上線和數據遷移。
第五條 除特別指定,本制度中項目組包括業務組(或需求提出組)、IT組(可能包括網絡管理員和合作開發商)。
第二節 立項管理
第六條 提出開發需求的信息技術部門參與公司層面立項,進行立項的技術可行性分析,編寫《立項分析報告》,開展前期籌備工作。《立項分析報告》應明確項目的范圍和邊界。
第七條 第八條 應用系統主要使用部門將《立項分析報告》上交公司進行立項審批。《立項分析報告》得到批準后,成立項目組(如果是外包開發,則成立外包商項目組;如果是合作開發,則與外包商共同成立合作開發項目組,以下統稱“項目組”),項目組應包括業務組(由公司相關業務部門組成)和IT組(自行開發為辦公室網絡管理員;外包開發為外包商成員;合作開發為網絡管理員和外包商成員)。公司委派一名員工負責監督項目的進度,進
第九條
第十條
第十一條第十二條第十三條第十四條第十五條第十六條第十七條行項目管理工作,確保開發能及時完成并能滿足業務需要。項目組人員的選擇應滿足項目對業務及技術要求,項目組人員應有足夠的業務和IT技術方面的專業知識來勝任項目各方面的工作。
第三節 需求分析
立項后業務組對用戶需求進行匯總整理,出具《業務需求說明書》,并確保《業務需求說明書》中包含了所有的業務需求。經系統使用部門審批確認,作為業務需求基線。
IT組在獲得《業務需求說明書》后,提出技術需求和解決方案,并對系統進行定義,出具《系統需求規格說明書》。《系統需求規格說明書》需詳細列出業務對系統的要求(界面、輸入、輸出、管理功能、安全需求、運作模式、關鍵指標(KPI)等)。《系統需求規格說明書》需要由業務組提交給相關業務流程負責人確認。
對于合作開發的項目,當業務需求發生變更時,業務組應提交《需求變更申請》,IT組組長審批后交給合作開發商實施。
項目組應對需求變更影響到的文檔及時更新。
第四節 項目計劃和監控
軟件開發采用項目形式進行管理。項目經理負責整個項目的計劃、組織、領導和控制。
需求分析過程中,項目經理組織制定詳細的《項目計劃書》,包括具體任務描述和項目進度表等。
在項目的各個階段,業務組組長和IT組組長需配合項目經理制定階段性項目計劃。業務組組長和IT組組長需配合項目經理對項目計劃執行情況進行監控,確保項目按計劃完成。
項目計劃需要變更時,項目經理填寫《項目計劃變更說明》,并提交公司主管領導審批,通過審批后,交給業務組組長和IT組組長執行。
第五節 系統設計
系統設計應分為概要設計和詳細設計,系統設計要遵循完備性、一致性、第十八條 第十九條
第二十條
第二十一條第二十二條第二十三條第二十四條第二十五條第二十六條第二十七條第二十八條第二十九條擴展性、可靠性、安全性、可維護性等原則。
在系統設計階段中,用戶應充分參與,確保系統設計能滿足系統需求。項目組進行詳細設計,出具《設計說明書》和《單元測試用例》。《設計說明書》中需要定義系統輸入輸出說明和接口設計說明。公司主管領導組織相關人員對概要設計進行評審,出具《設計評審報告》。業務組組長和IT組組長應參加此評審并對評審意見簽字確認。
設計評審均以《業務需求說明書》和《系統需求規格說明書》為依據,確保系統設計滿足全部需求。
對已確認通過的系統設計進行修改需獲得管理部門、業務組組長和IT組組長的審批后方可進行。
對系統設計的修改的文檔須由文檔管理人員進行歸檔管理。
第六節 系統實現
項目組根據《設計說明書》制定系統實現計劃,并提交項目經理對計劃可行性進行審批。
系統實現包括程序編碼、單元測試和集成測試。
項目組保證開發、測試和生產環境獨立,為各環境建立訪問權限控制機制,并明確項目成員的職責分工。對開發環境、測試環境與生產環境在物理或邏輯方面應該做到隔離;如果環境的分隔是通過邏輯形式實現的,應定期檢查網絡設置。項目組對已授權訪問生產環境的人員進行詳細記錄,并對該記錄進行定期檢查,確保只有經授權的人員才能訪問到生產環境。
項目組進行單元測試和集成測試,測試人員簽字確認測試結果。
第七節 系統測試和用戶測試
項目組制定《系統/用戶測試計劃》,并提交項目經理對計劃可行性進行審批。
《系統/用戶測試計劃》必須定義測試標準,并明確各種測試的測試步驟和需要的系統設置要求。
項目組向數據擁有部門申請獲取測試用業務數據的使用權,對獲取的數據進行嚴格的訪問控制,確保只有相關項目人員才能訪問及使用。
第三十條 項目組負責測試數據準備,測試用數據要足夠模擬生產環境中的實際數據。對已評定為敏感信息的數據進行敏感性處理和保護。
第三十一條 IT組或合作開發商建立測試環境進行系統測試。在系統測試中對新系統內部各模塊之間的接口和與其他系統的接口進行充分測試。出具《系統測試報告》,測試人員簽字確認測試結果。
第三十二條 系統測試通過后,IT組配合業務組建立用戶測試環境,業務組根據用戶測第三十三條
第三十四條 第三十五條 第三十六條 第三十七條 第三十八條 第三十九條 第四十條 試用例進行用戶測試,出具《用戶測試報告》,業務組組長和IT組組長應在用戶測試報告中簽字確認。
項目組完成系統幫助文檔(其中包括《用戶操作手冊》和《安裝維護手冊》)。凡涉及應用系統的變更,應對系統幫助文檔及時更新。
第八節 試運行
系統主要使用部門根據項目規模及影響決定試運行策略。
項目組制定《試運行計劃》,并制定試運行驗收指標,上報公司主管領導審批。《試運行計劃》中應包含問題應對機制,明確問題溝通渠道和職責分工。
項目組聯合試運行單位進行相關系統部署工作,準備培訓資料,對相關用戶和信息技術人員進行培訓。用戶培訓的完成度應為實施后評估的指標之一。
項目組根據《試運行計劃》進行系統轉換和數據遷移。系統轉換前,檢查系統環境,確保運行環境能滿足新應用系統的需要。系統轉換時必須詳細記錄原系統中的重要參數、設置等系統信息,并填寫試運行報告相關內容。系統參數、設置的轉換工作作為系統上線的驗收的評估指標之一。
數據遷移前,應制定詳細的《數據遷移計劃》,《數據遷移計劃》中應包含遷移方案、測試方案、數據定義,新舊數據對照表、遷移時間、回退計劃等信息。數據遷移計劃需經項目經理和主管領導簽字審批。
數據遷移后,項目組對數據遷移的完整性和準確性作出檢查,出具《數據遷移報告》,其中包括數據來源、轉換前狀態、轉換后狀態,數據遷移負責人、對完整性檢查情況、對準確性檢查情況等內容。各相關部門驗收轉換結果后在該報告上簽字確認。
系統轉換和數據遷移由試運行單位業務部門和公司主管領導共同監督并進行驗收。
第四十一條 系統轉換和數據遷移驗收通過后,正式啟動試運行。在試運行過程中,試運行單位辦公室把系統運行情況(系統資源使用,反應速度等)記錄到試運行報告中。必要時,項目組應根據系統運行情況對應用系統進行優化。
第四十二條 試運行達到試運行計劃規定的終止條件時,項目組編寫《試運行報告》。此
第四十三條 第四十四條 第四十五條 第四十六條 第四十七條 第四十八條 第四十九條 報告應由項目組和試運行單位簽字確認,并提交公司主管領導審閱。公司主管領導審閱試運行結果,決定試運行結束或延期。
第九節 系統驗收
系統主要使用部門及信息技術部門聯合組成獨立系統驗收小組,也可授權原項目組作為驗收小組。驗收小組從功能需求及技術需求層面對系統進行綜合評估。
驗收小組應根據驗收情況整理形成《系統驗收報告》提交系統主要使用部門和信息技術部門審閱。
系統主要使用部門和信息技術部門負責人根據系統測試、試運行情況簽署驗收意見。
第十節 系統上線
系統上線應遵循穩妥、可控、安全的原則。通常情況下,系統上線包含數據遷移工作。
項目組制定《系統上線計劃》,上報公司主管領導審批。在上線計劃得到批準后才能開始部署上線工作。
《系統上線計劃》內容應包括但不限于:
1、部署方式和資源分配(包括人力資源及服務器資源);
2、上線工作時間表;
3、上線操作步驟以及問題處理步驟;
4、項目階段性里程碑和成果匯報(項目執行狀態的審閱、進度安排等);
5、數據遷移的需求和實施計劃;
6、完整可行的應急預案和“回退”計劃;
7、用戶培訓計劃(包括:培訓計劃、培訓手冊、培訓考核等);
8、公司下發的系統標準參數配置。
第五十條 上線單位在上線初期需加強日常運行狀態監控,出現問題時應及時處理,對重大問題應啟動緊急預案。
第五十一條 在完成上線后要填寫《系統驗收評估報告》,上報公司項目組匯總整理。第五十二條 第五十三條
第五十四條 第五十五條 第五十六條 第五十七條 第五十八條 第五十九條 第六十條
第六十一條 第六十二條 第六十三條 第六十四條 《系統驗收評估報告》內容包括:數據準確性、系統性能及穩定性、接口問題、權限問題、業務操作影響度、問題處理情況、備份、批處理等。
上線單位管理層要對《系統驗收評估報告》進行審批簽字。
公司主管領導批準結項后,業務組和IT組將整理的文檔提交各自部門統一管理。
第十一節 合作開發管理
合作開發商的選擇應遵循公司相關規定,合作商資質認定參見第三方管理制度。
合作開發商必須遵循公司《軟件開發管理制度》。
項目經理同合作開發商明確規定項目變更的范圍和處理方式,重點關注需求和設計變更。
項目經理負責監控合作開發商的項目管理及軟件開發活動。合作開發商應按計劃定期向項目經理報告進展狀態,并提交階段性成果文檔。發生重大問題時,合作開發商需及時向項目經理匯報。
IT組組長派專人監控合作開發商的質量保證過程。項目組同合作開發商商定驗收的標準和方法。以上各要求需要在開發合同中明確。
第十二節 外包開發管理
立項申請得到公司主管領導的審批后,選定開發商,簽訂外包開發合同。項目經理負責監控外包開發商的項目管理及軟件開發活動。外包開發商應按計劃定期向項目經理報告進展狀態,并提交階段性成果文檔。發生重大問題時,外包開發商需及時向項目經理匯報。
項目經理監控外包開發商的質量保證過程。項目組同外包開發商商定驗收的標準和方法。第六十五條 以上各要求需要在開發合同中明確。
第四篇:軟件開發管理規范
軟件開發過程管理規范
濟南明湖建筑節能技術開發有限公司 軟件開發過程管理規范
一、總則.................................................................................................................................1 1.軟件開發項目管理的目的.........................................................................................1 2.軟件開發項目管理規范適用對象.............................................................................1 3.軟件項目開發組織管理.............................................................................................1
二、軟件項目立項階段.........................................................................................................1
三、軟件項目實施階段.........................................................................................................2
四、項目需求分析過程.........................................................................................................2
五、項目系統設計過程.........................................................................................................3
六、項目開發編碼過程.........................................................................................................3
七、測試提交過程.................................................................................................................4
八、項目驗收總結階段.........................................................................................................4
軟件開發過程管理規范
一、總則
1.軟件開發項目管理的目的
為保障按時、保質、保量完成預期交付的任務,讓整個組織能清楚了解項目實施的目的、影響、進度,做到項目組所有成員都理解項目實施的原因、意義及客戶的要求。通過制度化管理來合理組織安排項目組成員的工作職責和角色轉換。2.軟件開發項目管理規范適用對象
為了達到軟件開發項目管理的根本目的,要求公司全體員工必須嚴格按照本規范執行,同時要求公司業務人員引導合作單位和客戶接受并適應公司本《軟件項目開發管理規范》。3.軟件項目開發組織管理
根據軟件開發的標準流程,結合公司的實際情況對軟件項目分三個主要階段進行組織管理,分別為項目立項階段、項目實施階段和項目驗收總結階段。
二、軟件項目立項階段
1.成立公司項目評估委員會負責公司的項目立項審批。
2.公司項目評估委員會由公司總經理或指定負責人召集,成員為公司管理層人員、商務負責人、市場負責人、技術總監、技術研發經理、財務負責人組成。
3.公司業務部門按照公司發展要求或外部需求形成《軟件項目需求說明書》,確定項目需求管理人或項目申請人。
4.項目申請人填寫《軟件項目立項申請書》向項目評估委員會提出項目立項申請,主要說明項目的背景、目的、效益、成本、需求等方面,并由技術部門提供支持和技術說明。5.項目評估委員會收到《項目立項申請書》后三個工作日內,召開評估會議。給出評估結果。如果批準立項交公司技術總監組織開發。如果不批準,給出理由后項目中止。中止后的項目可根據情況重新申請。
6.評估結果必須包括:建議項目啟動日期,期望項目完成日期,項目等級系數,項目優先級(高中低),資源沖突程度(1~9)。對于資源沖突程度大于5的項目技術總監有權拒絕
軟件開發過程管理規范
接受。
三、軟件項目實施階段
1.公司批準立項的項目交由公司技術總監組織實施。
2.技術總監根據資源情況和項目需求組織相關技術人員進行初步需求討論會,確定項目的等級系數(如分大、中、小對應3、2、1)、指定項目開發負責人。在立項后五個工作日內技術總監和項目開發負責人共同制定《軟件項目開發計劃》,確定項目啟動日并提交項目評估委員會做反饋確認。如果項目評估委員會二位成員以上對計劃有異議,項目評估委員會應該召開項目計劃協調會,協調《軟件項目開發計劃》的修改和通過。如果無異議授權技術總監按照《軟件項目開發計劃》執行。
3.項目啟動日后,項目開發負責人根據《軟件項目開發計劃》的進度每周進行一次分析匯報,形成《項目分析周報》確定項目的狀態、分析風險和對策,交技術總監管控。4.《軟件項目開發計劃》必須按照軟件項目實施過程分解為需求分析、系統設計、開發編碼和測試提交幾個控制過程。
四、項目需求分析過程
1.項目需求分析團隊由技術總監負責,組成人員包括技術研發經理、項目開發負責人、部分高級軟件開發工程師和需求提供人。
2.需求分析第一次會議將在《軟件項目開發計劃》通過后,在項目啟動日2個工作日內召開,提出需求的不足之處交需求提供人完善。
3.分析團隊分工完成提交《軟件項目需求功能列表》及《項目關鍵業務流程》文擋。4.需求分析應該在需求分析第一次會議后的開始,并在(3個工作日*項目等級系數)日內完成。
5.需求分析過程完成后,如果需求變更提供人必須書面提出《項目需求變更通知書》,項目需求分析團隊在2個工作日內完成分析反饋,確定項目變更系數;項目負責人變更對應《軟件項目開發計劃》版本。
6.需求分析階段完成的標志為技術總監召開文擋審查和階段總結會,時間為1個工作日。
軟件開發過程管理規范
五、項目系統設計過程
1.項目設計團隊由技術總監負責,組成人員包括技術研發經理、項目開發負責人、部分高級軟件開發工程師。
2.項目分析設計團隊在收到需求階段文檔后2個工作日內召開設計工作啟動協調會,審查反饋需求階段文檔。
3.協調會明確分工、按計劃完成《項目系統接口說明》、《項目系統數據設計文檔》和《主要操作界面說明》文檔。
4.項目設計應該在啟動協調會后開始,并在(5個工作日*項目等級系數)日內完成。5.項目負責人接到《項目需求變更通知書》后,按照1個工作日*項目變更系數調整對應設計和計劃。
6.項目設計階段完成的標志為技術總監召開設計文擋審查和階段總結會,時間為1個工作日。
六、項目開發編碼過程
1.項目開發編碼團隊由技術研發經理負責,組成人員包括項目開發負責人和軟件開發工程師。
2.項目開發編碼團隊在收到需求和設計階段文檔后2個工作日內召開編碼工作啟動協調會,學習理解并反饋需求和設計階段文檔。
3.技術研發經理按照項目《軟件項目開發計劃》中開發編碼過程的細分階段進行控制。
4.項目開發負責人需負責項目聯調測試,保證《項目關鍵業務流程》和《主要操作界面說明》文檔的實現。
5.技術研發經理要組織項目開發編碼團隊對(項目等級系數)關鍵代碼進行集中解讀,保證編碼的質量和規范。
6.根據項目的情況,要求開發編碼人員對《項目系統接口說明》中接口進行性能測試,并產生接口測試報告。
7.技術研發經理負責做好開發編碼的版本管理工作。
8.開發編碼應該在編碼工作啟動協調會后開始,并在(10個工作日*項目等級系數)內完成。
軟件開發過程管理規范
9.開發編碼階段完成的標志為測試人員接受測試版本后,技術研發經理召開提交和階段總結會,開發人員的所有代碼轉交給項目負責人管理。時間為1個工作日。
七、測試提交過程
1.項目測試團隊由技術研發經理、項目負責人和測試工程師組成。
2.測試工程師首先檢查開發編碼團隊《項目關鍵業務流程》、《主要操作界面說明》和《項目系統接口說明》的測試結果。如果通過才接受,否則將退回。
3.測試工程師在開發編碼階段的同時應該編制好《項目軟件使用說明書》,接受測試版本后按照《項目軟件使用說明書》進行測試。
4.測試工程師重新測試一次《項目關鍵業務流程》、《主要操作界面說明》和《項目系統接口說明》。
5.測試工程師完成對應版本的《項目測試報告》,發現的問題交項目負責人負責組織開發人員修改完善。
6.測試工程師提交完成版本的《項目測試報告》后,由技術研發經理確認并簽字。將對應版本定義為發布版本。
7.測試工作應該在接受測試版本后進行,并在(5個工作日*項目等級系數)內完成。
八、項目驗收總結階段
1.發布版本后,項目負責人打印收集好所有項目過程文擋,并有對應責任人簽字。
2.項目負責人回顧總結《軟件項目開發計劃》,分析總結實際和計劃差異,形成《項目計劃執行情況報告》。
3.技術研發經理總結項目設計、開發、測試過程的質量控制和開發人員開發效率情況,總結經驗教訓并提出項目開發改進措施。
4.技術總監總結分析成本控制、對全部項目人員進行考核,形成《項目總結報告》。并完善本規范流程。
5.上述工作完成后,提交項目評估委員會總結會審批后公布。
第五篇:軟件開發管理流程
軟件開發管理流程
根據我公司目前工作現狀,開發管理流程涉及到三個方向的工作管理;一是全新項目開發整體流程;二是二期項目開發管理流程(項目已部分上線,二期進行其它公司或模塊上線);三是維護工作管理流程;
一、升級項目流程
針對我公司現有的BSP項目,存在有些省份的BSP項目存在部分上線而對于后期需要繼續上線其他部分的情況,提出以下工作流程。
總體流程
計劃階段-》需求分析階段-》軟件開發階段-》測試階段-》部署上線—》驗收完成(一)計劃階段
制定整體開發計劃,計劃體現整個開發周期,包括需求、編碼、測試周期以及資源要求;
(二)需求分析階段
修訂需求版本,提供需求說明書,并提出需求評審申請。
評審:發起需求評審的同時提交評審資料至項目管理部—》項目管理部給相關
人員發放資料并通知評審安排--》記錄評審結果(需整改時整改之后可再次評審)--》確定需求版本。
(三)軟件開發階段
編碼開發前:開發環境搭建,其中包括遷出代碼最新版本,從線上復制出數據庫(或者導出基礎數據庫表數據);其目的為開發環境與正式環境保持一致,為上線前的部署做好準備。
編碼開發中:開發組長對整個開發過程做好監控,保證質量的同時保證進度;并且要求開發人員做好工作記錄;加強團隊的協作與溝通。
編碼開發完:提交相關資料(操作手冊、部署文檔:sql腳本、代碼文件路徑記錄、流程文件路徑記錄),組長整理部署文檔并且提交測試申請;部署文檔要求寫明部署步驟及部署內容及相應注釋;
(四)測試階段
測試組長根據測試申請中的測試內容安排測試。測試環境模擬線上測試環境,根據部署文檔進行部署,并且記錄所有補丁包。測試過程中開發人員在修改bug的同時需要維護部署文檔。
(五)部署
部署人員根據部署文檔中描述的步驟部署系統。完成之后實施人員安排驗收。
二、全新項目開發管理流程
總體流程
計劃階段-》需求分析階段-》軟件開發階段-》測試階段-》部署上線—》驗收完成(一)計劃階段
項目計劃草案和風險管理計劃作為第一步,確定、分析項目風險并確定其優先級,還要制定風險解決方案。本階段的目的是確立產品開發的經濟理由。當確定開發之后則制定軟件開發計劃、人員組織結構定義及配備、過程控制計劃。
? 項目計劃草案
項目計劃草案應包括產品簡介、產品目標及功能說明、開發所需的資源、開發時間和里程碑。
? 風險管理計劃
就是把有可能出錯或現在還不能確定的東西列出來,并制定出相應的解決方案。風險發現得越早對項目越有利。
? 軟件開發計劃
軟件開發計劃的目的是收集控制項目時所需的所有信息,項目經理
根據項目計劃來安排資源需求并根據時間表跟蹤項目進度。項目團隊
成員根據項目計劃以了解他們的工作任務、工作時間以及他們所依賴的其他活動。
項目管理培訓
可將計劃分成總體計劃和詳細計劃,總體計劃中每個任務為一個里
程碑,詳細計劃中必須將任務落實到個人。
軟件開發計劃還應包括產品的應收標準及應收任務(包括確定需要
制訂的測試用例)。
? 人員組織結構定義及配備
常見的人員組織結構有垂直方案、水平方案、混合方案。垂直方案
中每個成員充當多重角色。水平方案中每個成員充當一到兩個角色。
混合方案則包括了經驗豐富的人員與新手相互融合。具體選擇根據人
員實際技能情況進行選擇。
? 過程控制計劃
過程控制計劃的目的是收集項目計劃正常執行所需的所有信息,用來
指導項目進度的監控、計劃的調整,確保項目按時完成。
(二)需求分析階段
需求分析階段的目的是在系統工作方面與用戶達成一致。
(1)軟件需求規約
詳細說明系統將要實現的所有功能。
(2)用戶界面原型
可以有三種表示方法:圖紙(在紙上)、位圖(繪圖工具)、可執行文件(交互式)。
(三)軟件開發階段
本階段從物理上實現目標系統。采用了面向對象方法。
(1)軟件架構
說明軟件的組織結構、部署結構及運行環境。
(2)功能設計
定義功能點之間的關聯。
(3)數據庫設計
定義數據庫表之間的關聯和各個表的字段。
(4)編碼和單元測試
按照設計文檔進行編碼,每完成一個模塊應進行單元測試。
(5)集成系統
按軟件組織結構的要求將各個子模塊組合起來。
(四)測試階段
測試的目的是在發布之前找出程序的錯誤。包括:核實每個模塊是否正常運行(參考設計文檔)、核實需求是否被正確實施(參考需求文檔)。
(1)測試計劃
收集和組織測試信息,為測試工作提供指導。
(2)測試數據
盡量使用真實數據。
(3)測試報告
記錄測試結果,詳細描述問題,提出解決辦法。
(4)用戶操作手冊
(五)管理軟件開發過程
有以下幾方面地工作:
(1)組織會議
討論會議、總結會議等。
(2)評審程序
對各個階段的工作結果進行審核等。
(3)協調人員
(4)監控進度
軟件項目開發流程
第一個步驟是市場調研,技術和市場要結合才能體現最大價值。
第二個步驟是需求分析,需求人員出需求分析說明書。發起需求評審申請,項目管理部組織開發團隊進行評審;
評審:發起需求評審的同時提交評審資料至項目管理部—》項目管理部給相關人員發放資料并通知評審安排--》記錄評審結果(需整改時整改之后可再次評審)--》確定需求版本。
第三個步驟是概要設計,將系統功能模塊初步劃分,并給出合理的研發流程和資源要求。按照公司現狀,使用快速原型設計方法完成概要設計就可以進入編碼階段了,通常采用這種方法是因為涉及的研發任務屬于新領域,技術主管人員一上來無法給出明確的詳細設計說明書,但是并不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼后,根據評測結果和經驗教訓的總結,還要重新進行詳細設計的步驟
第四個步驟是詳細設計,這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把具體的模塊以最‘干凈’的方式提供給編碼者,使得系統整體模塊化達到最大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低。
第五個步驟是編碼,開發人員需嚴格按照編碼規范及需求文檔編碼,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在以前的開發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的。項目組長需提高對開發過程中問題的管控能力。盡量避免重大問題,提高工作效率。
第六個步驟是測試,測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試范圍,可以分為模塊測試和整體聯調;按照測試條件,可以分為正常操作情況測試和異常情況測試;按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試。總之,測試同樣是項目研發中一個相當重要的步驟。
第七個步驟是部署,搭建部署環境,按照部署方案進行部署,完成后驗收測試;