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