為加強對公司軟體研發部門工作管理,縮短開發周期,提高軟體開發品質,降低開發成本,提高開發效率,特制定軟體研發部管理制度。
第一章、總則
為保證日常工作正常有序的進行,讓開發中各個環節更緊湊,更可控,需要盡可能實作軟體研發部項目管理的正規化,工作過程的流程化,以便提高軟體品質和開發效率,達到項目能按質按量按期傳遞的目标。
1、軟體開發總體遵循項目管理和軟體工程的基本原則。
2、項目管理涉及項目立項、項目計劃和監控、配置管理。
3、軟體工程涉及需求分析、系統設計、軟體實作、系統測試、使用者測試、試運作、系統驗收、系統上線和資料遷移、産品維護。
第二章、階段成果
根據軟體工程的過程理論并結合公司目前的實際情況,制定以下工作流程,并規定了各個重要環節需要送出的傳遞物。
1、立項:市場需求分析(或者合同)、項目立項申請表、項目風險分析清單。
2、需求分析:軟體需求報告或設計方案、需求規格說明書。
3、總體設計:概要設計說明書或功能子產品描述。
4、詳細設計:詳細設計說明書,包括軟體接口說明、單元測試計劃。
5、軟體實作:軟體功能說明、源代碼、源代碼說明或者注釋
6、産品測試:測試報告
7、産品釋出:産品說明書、使用手冊
8、産品維護:問題回報記錄
9、項目總結:送出客戶方的項目總結和公司項目彙報的PPT。
軟體過程成果表:
階段 | 形成文檔 | 職責及文檔成果描述 | 負責人 | 備注 |
需求階段 | 項目立項報告(Word) | 明确甲乙雙方責任及義務,需雙方簽字确認 | 項目經理 | 大部分業務模組化和需求,少部分分析設計 |
業務需求說明書(Word) | 需求定義,闡述業務範圍及内容,開發組負責制定最優技術設計方案 | 項目經理/需求分析工程師 | ||
項目開發計劃(Project) | 制定項目開發計劃,友善所有項目幹系人都能及時了解項目進度 | |||
項目風險分析清單(xls) | 針對項目會出現的風險進行分析并制定相應的措施 | 全體項目幹系人 | ||
設計階段 | 業務流程總體設計書、詳細設計說明書(Word/Visio) | 讨論項目的技術架構和可能存在的技術難點,梳理業務流程,統一開發規則和風格等 | 項目經理/架構師 | 大部分分析設計,部分實施程式設計及測試,開始考慮部署 |
資料庫關系設計圖、流程圖(PowerDesigner) | 項目所需要使用的資料庫的結構圖和流程圖 | 架構師/進階軟體工程師 | ||
任務配置設定文檔(Word) | 明确每個組員的開發任務及職責 | |||
問題說明報告(Word) | 讓使用者、上司及組員及時了解和發現問題 | |||
業務變更文檔(Word) | 記錄開發過程中使用者提出的業務需求變更情況 | 需求分析工程師 | ||
實作階段 | 軟體功能說明(Word) | 記錄軟體開發過程中所有實作的軟體功能 | 軟體開發工程師 | 最終軟體開發的成果物和說明 |
源代碼 | 可以部署的成果物,以及生成成果物的源代碼以及資料庫備份檔案 | |||
源代碼說明(Word) | 針對送出的源代碼每一個子產品進行說明 | |||
測試階段 | 項目測試方案及報告(Word) | 記錄項目測試的方法,驗證系統功能與性能的記錄 | 測試工程師 | 反複測試直至系統穩定 |
使用者使用手冊(Word) | 友善使用者使用軟體而提供的使用說明書 | |||
上線及運作 | 系統使用報告 | 系統部署後的操作記錄 | 部署及維護 | |
使用者教育訓練報告 | 使用者教育訓練文檔 | |||
項目驗收報告(Word) | 記錄甲乙雙方簽訂項目驗收報告 | |||
項目總結性報告 | 項目組通過此項目總結經驗及不足 |
第三章、崗位設定
根據公司目前的開發過程主要分為分析、開發、測試三個階段。分析階段完成使用者需求文檔的編寫,系統總體設計的編寫;開發階段完成設計文檔的編寫,代碼的編寫、代碼的維護。測試階段完成系統的測試,測試文檔及其他材料。通過逐漸的調整崗位,明确工作職責,逐漸實作項目經理,需求分析工程師,進階軟體開發工程師,軟體開發工程師,測試工程師的崗位設定。
崗位 | 工作内容 | 責任 |
1、標明項目組成員,成立項目組,安排任務分工。 2、與客戶進行溝通和協調(業務需求或非業務需求方面),以及需求調研工作。 3、制定項目開發計劃,包括需求,設計,編碼,測試這幾個階段的計劃。 4、估計項目開發費用。 5、制定小組開發進度表, 對組内人員工作進度監控。 6、對文檔的品質進行檢查、把關。 7、對組内成員的工作進行指導。 8、定期召開項目會議,把控項目風險和進度。 | 1、對客戶的溝通協調工作負責。 2、對軟體的開發效率、品質、費用負責。 3、對系統總體設計、詳細設計文檔品質負責。 4、對整個項目的進度,品質,成本,風險等負責。 | |
需求分析 工程師 | 1、 與客戶進行溝通,負責需求調研工作,彙總需求分析文檔,并編寫系統總體設計方案。 2、 遇見需求變更時,分析需求變更内容,并于項目經理一起負責對需求變更進行評估。 3、 與進階軟體開發工程師一起完成詳細設計文檔的編寫。 | 1、 對使用者的需求分析的品質負責。 2、 對項目組所有成員正确了解項目需求負責。 |
進階軟體 開發工程師 | 1、負責系統的子產品設計,詳細設計文檔。 2、繪制界面原型demo等,設計功能使用的具體描述、行為者、前置條件、後置條件、UI描述、業務流程/子流程/分支流程,界面說明等,完成大部分的前端設計,小部分的後端設計。 3、負責技術難度大的子產品的代碼或者公用子產品代碼的編寫、維護。 4、對自己負責子產品的詳細設計、代碼編寫。 5、對小組内人員進行技術指導。 | 1、對組内人員的開發效率負責。 2、對産品整體風格負責。 3、對項目整體設計流程負責。 4、對自己子產品的開發效率和品質負責。 |
1、與項目經理溝通和确認某個子產品的需求和實作方法。 2、負責某個子產品的代碼編寫、維護。 3、對其他子產品的代碼的維護。 4、負責與測試人員的互動,處理測試人員的問題。 | 1、對自己子產品的開發效率和品質負責。 | |
1、根據使用者需求分析和系統總體設計,編寫測試文檔和測試用例。 2、對系統的功能、性能、異常進行測試。 3、編寫測試文檔和操作指導手冊。 | 1、對測試的品質負責。 2、對測試文檔和操作手冊的品質負責。 |
第四章、項目立項
1、需求分析工程師進行應用調查與分析,确認軟體的應用需求。
2、成立項目評審會,開發總監、部門經理和指定人員必須參加。對項目進行可行×××,編寫項目建議書,評估項目的難度和工作量,形成可行×××報告。
3、根據項目配置的優劣成立項目開發組,制定軟體開發計劃,确定項目經理,由部門和項目經理共同來确定具體項目配置,知識技能要求,團隊成員及團隊的角色。
第五章、項目計劃與監控
1、以項目為機關,項目經理負責整個項目的計劃、組織和控制。
2、在整個項目過程中,項目經理定期檢查項目進度和完成情況,調整人員分工和安排。
3、項目計劃需要變更時,需要明确變更内容并及時彙報。項目經理需要說明客戶變更原因并将變更說明送出公司上司稽核,以便根據變更内容及時調整計劃。。
第六章、需求分析
1、對使用者提出的需求進行分析彙總,梳理使用者的業務流程和詳細的功能定義。
2、做出簡單的界面原型,與客戶進行有效的溝通, 編寫需求詳細說明書。
3、根據現有條件進行估計,制定項目進度,制定詳細的軟體開發計劃。
第七章、總體設計
1、在該階段确定總體結構和軟體開發架構,檔案命名規範,編碼規範。可按軟體需求劃分成子系統,也可直接定義目标系統的功能子產品及各個功能子產品的關系。
3、确定軟體子產品結構,給出每個功能子產品的功能描述、資料接口描述,并完成系統概要設計說明書。
4、完成資料庫的設計,并編寫資料庫設計說明書。
5、完成的文檔需送出公司進行歸檔管理。
第八章、詳細設計
1、調整前一步設計的不足,确認各子產品之間的詳細接口資訊。
2、設計功能使用的具體描述、行為者、前置條件、後置條件、UI描述、業務流程/子流程/分支流程,界面說明等。
3、确定子產品内的資料流或控制流,對每個程式子產品必須确定所有輸入、輸出和處理功能。
4、彙總并送出所有相關文檔,稽核确認品質和進度。
第九章、軟體實作
1、項目組根據概要設計說明書、詳細設計說明書制定系統實作計劃
2、有條件的情況下保證開發、測試和生産環境獨立。選擇軟體工具,明确項目成員的職責分工,按照編碼規範和詳細設計實作軟體功能。
3、代碼應滿足結構良好,清晰易讀,且與設計一緻,符合編碼規範。
4、開發人員需要軟體實作過程中編寫軟體功能說明,源代碼說明。軟體功能說明文檔應說明項目名稱、編号、軟體名稱和版本号,軟體功能、主要功能實作過程。源代碼說明應說明項目編号、源代碼類名稱、編寫人員、編寫日期、變更履曆、功能、全局變量、資料庫字典、函數功能、接口。該文檔包含在源代碼檔案中,以注釋形式存在。
5、項目組進行單元測試和內建測試。開發人員處理測試人員回報的測試問題,并以書面形式回報主要問題及解決辦法,直至系統運作穩定。
6、彙總并送出所有相關文檔,送出公司備案,形成項目知識庫。
第十章、軟體測試
1、根據單據測試和內建測試兩個過程,制定測試計劃。按階段設計測試執行個體,并将測試結果記錄,未通過的的回報給開發人員調整。
2、完成測試文檔、操作手冊、安裝維護手冊的編寫。
第十一章、使用者教育訓練
1、準備使用者教育訓練計劃、教育訓練手冊
2、确定教育訓練時間、教育訓練地點,向使用者進行系統使用教育訓練、操作指導及提供軟體操作手冊。
3、保留教育訓練簽到表,使用者意見等存檔。
第十二章、系統上線
1、 制定上線計劃,确定上線工作時間表,部署的環境。
2、上線操作步驟以及問題處理步驟;
3、根據軟體特點、客戶需求進行軟體部署,并記錄軟體部署和運作結果;
4、項目組根據系統運作請款對系統進行優化,記錄系統的運作情況、系統問題和處理後的版本。
第十三章、系統驗收
1、驗收工作準備,按要求整理項目成果物,列印裝訂成冊,并送出客戶方。
2、系統主要使用部門及資訊技術部門聯合成立項目驗收小組,從需求功能及技術需求層面對系統進行綜合評估和項目成果物的稽核,根據驗收情況形成系統驗收報告
3、應用部門及資訊技術部門負責人根據系統試運作情況簽署驗收意見。
第十四章、産品維護
1、調出項目主要開發人員,按照合同要求安排維護人員對系統進行技術支援。
2、系統需求變更或調整,記錄變更原因和軟體及源代碼的版本控制,按照軟體變更要求對系統進行維護。
第章十五、源碼和文檔
1、源代碼/文檔管理采用版本控制軟體VisualSourceSafe。
2、按項目的階段性完成源代碼、文檔的上傳。項目負責人每天對代碼進行檢查,開發總監或部門經理定期進行抽查。
3、文檔分為項目文檔和個人文檔,文檔上傳前進行歸類和彙總。
第十六章、品質檢查
1、項目負責人每天要檢查成員的工作完成情況,特别是新員工的工作進展;
2、工作抽查制度:不定期的進行抽檢,并将檢查對象、檢查時間、檢查内容、檢查結果回報給被抽檢人。
3、内部稽核制度:針對業務需求、概要設計(功能界面、資料庫)或疑難問題組織評審會,提出意見或解決方案。
第十七章、文檔規範
1、需按照軟體實施的階段落實成果物,參照《軟體過程送出成果表》。
2、如果客戶有特殊要求,請按照客戶要求的規範完成。并将最終的問題送出公司歸檔備份。
第十八章、軟體變更
為規範軟體變更與維護管理,特制定本制度。本制度适用于應用系統開發完畢并正式上線,移交給客戶方之後的運作支援及系統變更工作。
1、系統變更工作可分為功能完善維護、系統缺陷修改、統計報表生成。
2、需求部門提出系統變更需求,項目經理同開發人員一起根據重要性和緊迫性做判斷,确定其優先級和影響程度,并進行相應處理,同時将變更需求整理成系統變更申請表。