邊皓日 陳曉宇 劉琳 李祺 內蒙古電力集團蒙電信息通信產業有限責任公司
項目管理就是將知識、技能、工具與技術應用于項目活動,以滿足項目的要求。項目管理通過合理運用與整合特定項目所需的項目管理過程得以實現。項目管理使組織能夠有效且高效地開展項目。隨著軟件應用水平不斷提高,軟件開發的規模越來越大,開發過程日益復雜,傳統的開發模式和管理模式已經不能滿足現狀,很多項目的整合管理問題越來越明顯,公司必須建立軟件開發技術平臺,來保障項目生命周期的健康運行。軟件開發項目通常規劃成多個迭代完成,進行階段性產品或服務的交付。傳統瀑布模型無法滿足軟件開發的快速交付需求,周期長,應對變化能力差,而且開發過程管控困難,細節遺漏和再確認耗時耗力,例如測試人員不知道某些需求的開發人員是誰,導致發現問題需要先確認人員再修復問題,延長了處理時間。另外項目的進行涉及不同職能人員較多,無法建立快速有效的溝通方式,造成各級領導,項目經理,業務人員等無法及時的了解項目狀態,不能針對工作進行量化。因此,建設軟件開發技術平臺進行軟件開發項目的全生命周期的管理是非常必要的。
軟件開發技術平臺服務采用Docker容器化部署,直接將服務環境進行打包,包含數據庫和應用等,系統維護更加快捷,實際部署耗時較短,部署在 Linux 操作系統中。服務部署成功后,用戶直接通過PC瀏覽器網址訪問,瀏覽器包括Chrome,Firefox等主流瀏覽器,同時支持移動端的任務快速處理(見圖1)。

圖1
本系統采用MySQL 數據庫,使用 go語言和 React前端開發工具,為數據的存儲和系統的開發提供了基礎條件。基于 B/S 架構,即通過瀏覽器(Browser)和 服務器(Server)架構,為系統的穩定運行提供了支持。軟件開發技術平臺為單獨運行的系統,團隊成員可直接根據的自己的職能權限開展工作,同時本系統支持對接第三方工具,包括企業微信、釘釘等,實現統一組織架構的登錄和通知功能。本系統可與研發相關平臺、工具對接,包括與代碼倉代碼關聯,綁定Jenkins平臺,將整個DevOps流程在平臺完成一站式可視化管理,將軟件研發的全流程實現完整的閉環管理(見圖2)。

圖2
1.需求管理
根據具體的軟件開發項目,對項目需求進行規劃和管理,包括創建需求、設置需求優先級、將需求關聯到迭代、拆分到工作項、關聯測試和測試結果、關聯其他工作項、需求工作流轉、需求視圖管理等。需求管理主要是用來將整理的需求與用戶的反饋相關聯,便于回溯來源,了解更為完整真實的用戶場景。
2.項目迭代
項目迭代針對敏捷開發模式,在該種模式下常以迭代開發的方式進行開發,這種方式可以幫助團隊及時的改進項目和把控項目進度,一次迭代可能發布某個或者某幾個功能,一次迭代過程包含這些新功能所包含的所有開發工作項,可以階段性的交付產品或服務。
3.任務管理
通常在確定了項目方向即需求范圍后,規劃迭代,在迭代中進行各種工作的拆分。通過拆分需求和自定義任務類型來建立任務,并將任務指派給項目成員,項目成員在完成對應的工作后,通過改變任務狀態等來表示項目的進度和下一階段負責人。
4.缺陷管理
在項目進行或運營階段,所交付的產品或服務可能會產生多種缺陷,包括內部測試缺陷,用戶缺陷反饋等。對項目中所有缺陷進行記錄、追蹤、修復和管理。
5.反饋管理
項目完成交付后,運營人員通過收集用戶反饋整理成相應的優點和問題,為項目的迭代和規劃做準備,同樣為以后的項目規劃和開展提供經驗及規劃參考。
6.組件管理
項目組件化管理,將需求、缺陷、文檔、報表等項目中涉及的工作項添加到項目流程中,自定義設計不同的流程,滿足項目的需求。
7.團隊管理
團隊成員的信息維護,組織架構管理,根據團隊職能差異分配不同權限,根據權限處理項目事務。
組織級項目管理,主要是全面匯總項目信息,創建項目集,在項目集中添加或刪除項目,對項目集進行編輯。還可以新建甘特圖,更方便的展示項目的進展情況。
代碼倉庫是一個代碼管理工具,用來存放代碼,使開發人員可以協同工作。建立項目,關聯項目和代碼倉庫中的代碼,配置不同的權限,設置代碼提交合并的權限,代碼查看的權限等。
研發編碼完成后,需要根據需求進行功能的手工測試,從迭代規劃開始,測試人員即可以根據迭代內的需求范圍進行用例庫創建,用例編寫和測試計劃創建。執行測試計劃時,可以選擇開始、進行中、已完成三種狀態進行狀態的更改。執行用例時,在具體的測試計劃中,點擊用例可進行詳細的用例步驟執行、一鍵提交BUG至項目或迭代中、查看信息及編輯用例。
在整個項目生命周期中,會產生不同種類的文檔,通過知識庫管理,將項目中需要記錄的信息和知識分享進行記錄。創建頁面并填寫內容,可以將不同的頁面組合,將文檔關聯到項目,支持文檔協作,將自己的經驗分享給大家,形成團隊的知識庫。
在研發編碼階段,軟件開發技術平臺與代碼倉庫和部署工具集成,能夠查看代碼提交的記錄、構建結果、代碼質量分析、自動化測試結果和部署結果。
如圖3所示。

圖3
項目的開展需要明確項目的所在組織系統,在系統內部有效且高效地開展項目,項目經理或項目負責人需要了解組織內的職責、最終責任和職權的分配情況。通過平臺可以將團隊成員進行統一管理,職能權限細化分配。更好地管理活動的框架、功能和過程,從而創造獨特的產品、服務或結果以滿足組織、戰略和運營目標。
軟件開發通常需要快速迭代階段交付成果,平臺將項目全生命周期進行統一管理,迭代規劃更加清晰,傳統瀑布式模型的局限性和不足得到解決,更能整合DevOps工具鏈,優化開發測試運維流程,開發運維一體化,使得軟件構建、測試、發布更加快捷、頻繁和可靠。
傳統項目功能開發工作,通常根據項目功能清單進行開發,開發完成后缺少完成的信息,導致測試人員不知道功能是否完成。在交給測試人員后,測試人員有時無法分辨功能開發者,需要線下詢問后才能確定開發人員進行缺陷修復。在平臺中,所有與項目相關的工作,都可以做到詳細的過程管理,從開始建立到最終完成,整個過程的記錄均可追溯,避免了細節遺漏。
項目的順利開展和進行需要多個職能部門間的協作,項目開發過程中各部門之間,各部門與集成商之間可以完成有效的溝通,流程的自動化操作。記錄完整的管理信息,各級領導、業務人員和項目管理者可以及時、自動地了解項目管理狀態,量化內部項目人員及供應商項目組成員工作量及工作進度。
軟件開發技術平臺,提供了覆蓋瀑布開發、敏捷開發以及DevOps全流程、全場景的軟件項目管理服務,通過制定長期項目計劃和短期迭代規劃,跟蹤研發進度和質量,幫助團隊高效高質量地交付軟件產品。平臺將建立起一個集成需求管理、項目管理、缺陷管理、組織管理、代碼管理和流水線管理的自動化平臺,完全覆蓋研發類項目的核心流程。從軟件項目的立項、需求確認、成立團隊、開發、測試、到上線及版本控制進行全方位的管理與監測,讓軟件開發的流程不僅可以進行量化、也可以為項目的管理者與參與者提供多個維度的分析,讓項目開發流程清晰可控,有效避免重復開發,有效掌握開發人員的能力和代碼質量。減少系統開發風險,提高業務精細化管理水平、提高管理和運行效率。
隨著軟件開發項目的更快更多的變化,針對項目的管理需要更專業的平臺支持。軟件開發技術平臺的建立,項目管理者和執行者,可以隨時了解項目的進度。對項目管理模式改進提供了有力支持,過程持續優化,項目運行狀態更健康,更好更快完成項目目標,提高了項目的管理水平。