1. 程式人生 > >一個完整的軟體專案開發流程

一個完整的軟體專案開發流程

《IT專案管理與職業生涯規劃大型論壇》中國.蘇州

在我轉產品之前,雖然我混跡IT行業,做過實施和售前,也跟研發打過交道,但我一直都不知道一個軟體是怎麼開發出來的。直面客戶,扛著壓力,在對程式一無所知的情況下,很容易產生一些想法:為什麼產品的結果是這樣?為什麼產品開發的速度不能再快一點?為什麼程式設計師經常加班?他們都在忙些什麼?測試是不是就是每天忙著點點程式看會不會報錯?

所以本文面向的物件是,適合和我當初一樣對軟體開發一無所知的IT從業者(或者有興趣者),另外也歡迎我的程式設計師小夥伴和測試小夥伴,因為你們也懂這個過程,所以我們可以作更多探討,這個過程中我們可能會發現大家對同一件事的理解並不一致,也許經過碰撞,我們能共創智慧的果實。

一、開發流程圖

為使流程更清晰,本圖省略了各環節的評審,如有更好的表現形式,歡迎提出建議。

二、過程產物及要求

本表主要列出開發階段需要輸出的過程產物,包括產物名稱、成果描述、負責人及備註,即誰、在什麼時間、應該提供什麼內容、提供內容的基本方向和形式是什麼。

專案啟動階段

產物名稱成果描述負責人

調研文件瞭解專案背景,瞭解專案干係人目標方向產品經理

團隊組建確認團隊人員及配置產品總監

業務梳理明確專案的目標、角色、各埠及模組產品經理

需求階段

產品原型產品的線框圖產品經理

需求概要基於線框圖,作技術評估,達成業務理解的一致性研發工程師

專案里程碑確認專案重大時間節點研發專案 經理

專案開發計劃梳理各階段、各埠的開發計劃研發專案經理

專案任務分解表將計劃分配到團隊研發專案經理

設計階段

介面效果圖及標註基於線框圖,作效果圖,須適量考慮互動內容UI設計師

UI設計規範在UI介面基礎上,輸出主要介面的設計規範UI設計師

需求規格基於效果圖,明確業務實現細節,消除對最終成果理解的不一致研發工程師

概要設計功能實現的視覺化,有助於理清思路,減少技術盲區和低階缺陷,實現並行開發,提高效率研發工程師

通訊協議通訊協議是指雙方實體完成通訊或服務所必須遵循的規則和約定研發工程師

表結構設計確認要建的資料庫表及其表結構研發工程師

開發階段

產品程式碼程式碼

測試階段

測試用例明確測試方案,包括測試模組、步驟、預期測試工程師

測試結果報告輸出測試結果測試工程師

使用者手冊系統操作手冊測試工程師

常規文件

專案週報每週開發內容及下週開發計劃研發專案經理

測試周報每週測試內容及下週測試計劃測試工程師

評審會議紀要評審的過程文件整體團隊

三、過程說明

專案啟動

產品經理和專案干係人確定專案方向,產品型專案的干係人包括公司領導、產品總監、技術總監等,專案的話則包括客戶方領導、主要執行人等。

公司領導確認專案組團隊組成,包括產品經理、研發專案經理、研發工程師、測試團隊等。

明確專案管理制度,每個階段的成果產物需要進行相應的評審,評審有相應的《會議紀要》;從專案啟動起,研發專案經理每週提供《專案研發週報》;測試階段,測試工程師每週提供《專案測試周報》。

產品經理進行需求調研,輸出《需求調研》文件。需求調研的方式主要有背景資料調查和訪談。

產品經理完成《業務梳理》。首先,明確每個專案的目標;其次,梳理專案涉及的角色;再來,每個角色要進行的事項;最後,再梳理整個系統分哪些埠,要有哪些業務模組,每個模組再包含哪些功能。

需求階段

進入視覺化產物的輸出階段,產品經理提供最簡單也最接近成品的《產品原型》,線框圖形式即可。在這個過程中還可能產生的包括業務流程圖和頁面跳轉流程圖。業務流程圖側重在不同節點不同角色所進行的操作,頁面跳轉流程圖主要指不同介面間的跳轉關係。

產品經理面向整個團隊,進行需求的講解。

研發專案經理根據需求及專案要求,明確《專案里程碑》。根據專案里程錶,完成《產品開發計劃》,明確詳細階段的時間點,最後根據開發計劃,進行《專案任務分解》,完成專案的分工。

研發工程師按照各自的分工,進入概要需求階段。《概要需求》旨在讓研發工程師初步理解業務,評估技術可行性。

設計階段

UI設計師根據產品的原型,輸出《介面效果圖》,並提供介面的標註,最後根據主要的介面,提供一套《UI設計規範》。UI設計規範主要是明確常用介面形式尺寸等,方便研發快速開發。UI設計常涵蓋互動的內容。

研發工程師在介面效果圖,輸出《需求規格》,需求規格應包含最終要實現的內容的一切要素。

研發工程師完成《概要設計》、《通訊協議》及《表結構設計》,及完成正式編碼前的一系列研發設計工作。

開發階段

研發工程師正式進入編碼階段,這個過程雖然大部分時間用來寫程式碼,但是可能還需要進行技術預研、進行需求確認。

編碼過程一般還需進行服務端和移動端的聯調等。

完成編碼後需要進行功能評審。

測試階段

測試工程師按階段設計《測試例項》,未通過的流程測試提交至Jira,分配給相應的開發人員調整。

研發工程師根據測試結果修改程式碼,完成後提交測試,測試通過後完成。

測試工程師編寫《測試結果報告》,包括功能測試結果、壓力測試結果等。

測試工程師編寫系統各埠的《操作手冊》、維護手冊等。

系統上線

與客戶或者上級達成一致後,系統進行試執行,穩定後上線。

最後,以上內容僅限於我所在公司,不代表絕對專業意見,不知道其他行業的IT小夥伴和我們是否一樣呢,歡迎與我交流

本文轉自:人生如輕塵棲弱草

以上內容為原創,轉載請標明來源,謝謝。