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