邊皓日 陳曉宇 劉琳 李祺 內(nèi)蒙古電力集團蒙電信息通信產(chǎn)業(yè)有限責任公司
項目管理就是將知識、技能、工具與技術應用于項目活動,以滿足項目的要求。項目管理通過合理運用與整合特定項目所需的項目管理過程得以實現(xiàn)。項目管理使組織能夠有效且高效地開展項目。隨著軟件應用水平不斷提高,軟件開發(fā)的規(guī)模越來越大,開發(fā)過程日益復雜,傳統(tǒng)的開發(fā)模式和管理模式已經(jīng)不能滿足現(xiàn)狀,很多項目的整合管理問題越來越明顯,公司必須建立軟件開發(fā)技術平臺,來保障項目生命周期的健康運行。軟件開發(fā)項目通常規(guī)劃成多個迭代完成,進行階段性產(chǎn)品或服務的交付。傳統(tǒng)瀑布模型無法滿足軟件開發(fā)的快速交付需求,周期長,應對變化能力差,而且開發(fā)過程管控困難,細節(jié)遺漏和再確認耗時耗力,例如測試人員不知道某些需求的開發(fā)人員是誰,導致發(fā)現(xiàn)問題需要先確認人員再修復問題,延長了處理時間。另外項目的進行涉及不同職能人員較多,無法建立快速有效的溝通方式,造成各級領導,項目經(jīng)理,業(yè)務人員等無法及時的了解項目狀態(tài),不能針對工作進行量化。因此,建設軟件開發(fā)技術平臺進行軟件開發(fā)項目的全生命周期的管理是非常必要的。
軟件開發(fā)技術平臺服務采用Docker容器化部署,直接將服務環(huán)境進行打包,包含數(shù)據(jù)庫和應用等,系統(tǒng)維護更加快捷,實際部署耗時較短,部署在 Linux 操作系統(tǒng)中。服務部署成功后,用戶直接通過PC瀏覽器網(wǎng)址訪問,瀏覽器包括Chrome,F(xiàn)irefox等主流瀏覽器,同時支持移動端的任務快速處理(見圖1)。
圖1
本系統(tǒng)采用MySQL 數(shù)據(jù)庫,使用 go語言和 React前端開發(fā)工具,為數(shù)據(jù)的存儲和系統(tǒng)的開發(fā)提供了基礎條件?;?B/S 架構,即通過瀏覽器(Browser)和 服務器(Server)架構,為系統(tǒng)的穩(wěn)定運行提供了支持。軟件開發(fā)技術平臺為單獨運行的系統(tǒng),團隊成員可直接根據(jù)的自己的職能權限開展工作,同時本系統(tǒng)支持對接第三方工具,包括企業(yè)微信、釘釘?shù)龋瑢崿F(xiàn)統(tǒng)一組織架構的登錄和通知功能。本系統(tǒng)可與研發(fā)相關平臺、工具對接,包括與代碼倉代碼關聯(lián),綁定Jenkins平臺,將整個DevOps流程在平臺完成一站式可視化管理,將軟件研發(fā)的全流程實現(xiàn)完整的閉環(huán)管理(見圖2)。
圖2
1.需求管理
根據(jù)具體的軟件開發(fā)項目,對項目需求進行規(guī)劃和管理,包括創(chuàng)建需求、設置需求優(yōu)先級、將需求關聯(lián)到迭代、拆分到工作項、關聯(lián)測試和測試結果、關聯(lián)其他工作項、需求工作流轉、需求視圖管理等。需求管理主要是用來將整理的需求與用戶的反饋相關聯(lián),便于回溯來源,了解更為完整真實的用戶場景。
2.項目迭代
項目迭代針對敏捷開發(fā)模式,在該種模式下常以迭代開發(fā)的方式進行開發(fā),這種方式可以幫助團隊及時的改進項目和把控項目進度,一次迭代可能發(fā)布某個或者某幾個功能,一次迭代過程包含這些新功能所包含的所有開發(fā)工作項,可以階段性的交付產(chǎn)品或服務。
3.任務管理
通常在確定了項目方向即需求范圍后,規(guī)劃迭代,在迭代中進行各種工作的拆分。通過拆分需求和自定義任務類型來建立任務,并將任務指派給項目成員,項目成員在完成對應的工作后,通過改變?nèi)蝿諣顟B(tài)等來表示項目的進度和下一階段負責人。
4.缺陷管理
在項目進行或運營階段,所交付的產(chǎn)品或服務可能會產(chǎn)生多種缺陷,包括內(nèi)部測試缺陷,用戶缺陷反饋等。對項目中所有缺陷進行記錄、追蹤、修復和管理。
5.反饋管理
項目完成交付后,運營人員通過收集用戶反饋整理成相應的優(yōu)點和問題,為項目的迭代和規(guī)劃做準備,同樣為以后的項目規(guī)劃和開展提供經(jīng)驗及規(guī)劃參考。
6.組件管理
項目組件化管理,將需求、缺陷、文檔、報表等項目中涉及的工作項添加到項目流程中,自定義設計不同的流程,滿足項目的需求。
7.團隊管理
團隊成員的信息維護,組織架構管理,根據(jù)團隊職能差異分配不同權限,根據(jù)權限處理項目事務。
組織級項目管理,主要是全面匯總項目信息,創(chuàng)建項目集,在項目集中添加或刪除項目,對項目集進行編輯。還可以新建甘特圖,更方便的展示項目的進展情況。
代碼倉庫是一個代碼管理工具,用來存放代碼,使開發(fā)人員可以協(xié)同工作。建立項目,關聯(lián)項目和代碼倉庫中的代碼,配置不同的權限,設置代碼提交合并的權限,代碼查看的權限等。
研發(fā)編碼完成后,需要根據(jù)需求進行功能的手工測試,從迭代規(guī)劃開始,測試人員即可以根據(jù)迭代內(nèi)的需求范圍進行用例庫創(chuàng)建,用例編寫和測試計劃創(chuàng)建。執(zhí)行測試計劃時,可以選擇開始、進行中、已完成三種狀態(tài)進行狀態(tài)的更改。執(zhí)行用例時,在具體的測試計劃中,點擊用例可進行詳細的用例步驟執(zhí)行、一鍵提交BUG至項目或迭代中、查看信息及編輯用例。
在整個項目生命周期中,會產(chǎn)生不同種類的文檔,通過知識庫管理,將項目中需要記錄的信息和知識分享進行記錄。創(chuàng)建頁面并填寫內(nèi)容,可以將不同的頁面組合,將文檔關聯(lián)到項目,支持文檔協(xié)作,將自己的經(jīng)驗分享給大家,形成團隊的知識庫。
在研發(fā)編碼階段,軟件開發(fā)技術平臺與代碼倉庫和部署工具集成,能夠查看代碼提交的記錄、構建結果、代碼質(zhì)量分析、自動化測試結果和部署結果。
如圖3所示。
圖3
項目的開展需要明確項目的所在組織系統(tǒng),在系統(tǒng)內(nèi)部有效且高效地開展項目,項目經(jīng)理或項目負責人需要了解組織內(nèi)的職責、最終責任和職權的分配情況。通過平臺可以將團隊成員進行統(tǒng)一管理,職能權限細化分配。更好地管理活動的框架、功能和過程,從而創(chuàng)造獨特的產(chǎn)品、服務或結果以滿足組織、戰(zhàn)略和運營目標。
軟件開發(fā)通常需要快速迭代階段交付成果,平臺將項目全生命周期進行統(tǒng)一管理,迭代規(guī)劃更加清晰,傳統(tǒng)瀑布式模型的局限性和不足得到解決,更能整合DevOps工具鏈,優(yōu)化開發(fā)測試運維流程,開發(fā)運維一體化,使得軟件構建、測試、發(fā)布更加快捷、頻繁和可靠。
傳統(tǒng)項目功能開發(fā)工作,通常根據(jù)項目功能清單進行開發(fā),開發(fā)完成后缺少完成的信息,導致測試人員不知道功能是否完成。在交給測試人員后,測試人員有時無法分辨功能開發(fā)者,需要線下詢問后才能確定開發(fā)人員進行缺陷修復。在平臺中,所有與項目相關的工作,都可以做到詳細的過程管理,從開始建立到最終完成,整個過程的記錄均可追溯,避免了細節(jié)遺漏。
項目的順利開展和進行需要多個職能部門間的協(xié)作,項目開發(fā)過程中各部門之間,各部門與集成商之間可以完成有效的溝通,流程的自動化操作。記錄完整的管理信息,各級領導、業(yè)務人員和項目管理者可以及時、自動地了解項目管理狀態(tài),量化內(nèi)部項目人員及供應商項目組成員工作量及工作進度。
軟件開發(fā)技術平臺,提供了覆蓋瀑布開發(fā)、敏捷開發(fā)以及DevOps全流程、全場景的軟件項目管理服務,通過制定長期項目計劃和短期迭代規(guī)劃,跟蹤研發(fā)進度和質(zhì)量,幫助團隊高效高質(zhì)量地交付軟件產(chǎn)品。平臺將建立起一個集成需求管理、項目管理、缺陷管理、組織管理、代碼管理和流水線管理的自動化平臺,完全覆蓋研發(fā)類項目的核心流程。從軟件項目的立項、需求確認、成立團隊、開發(fā)、測試、到上線及版本控制進行全方位的管理與監(jiān)測,讓軟件開發(fā)的流程不僅可以進行量化、也可以為項目的管理者與參與者提供多個維度的分析,讓項目開發(fā)流程清晰可控,有效避免重復開發(fā),有效掌握開發(fā)人員的能力和代碼質(zhì)量。減少系統(tǒng)開發(fā)風險,提高業(yè)務精細化管理水平、提高管理和運行效率。
隨著軟件開發(fā)項目的更快更多的變化,針對項目的管理需要更專業(yè)的平臺支持。軟件開發(fā)技術平臺的建立,項目管理者和執(zhí)行者,可以隨時了解項目的進度。對項目管理模式改進提供了有力支持,過程持續(xù)優(yōu)化,項目運行狀態(tài)更健康,更好更快完成項目目標,提高了項目的管理水平。