馬鴻超
【摘 要】目前的軌道交通信號系統(tǒng)開發(fā)過程中,一般以V模型作為完整的開發(fā)流程。V模型以其驗證和確認過程為核心,在系統(tǒng)的設(shè)計和實現(xiàn)過程中,逐層地對產(chǎn)出進行檢查,以保證產(chǎn)品和產(chǎn)出物的正確性。但在這一模型中仍然存在一些由流式開發(fā)模型導(dǎo)致的效率問題。本文以新興的敏捷開發(fā)思維和工具來嘗試解決現(xiàn)有模型帶來的問題和風險,提高開發(fā)效率。本文亦對兩種開發(fā)方式進行對比,并指出這一過程中遇到的問題和難點,并提出一些解決辦法,將這一過程中產(chǎn)生的經(jīng)歷與經(jīng)驗進行簡要的闡述、分享和探討。
【關(guān)鍵詞】V模型;敏捷開發(fā);效率;對比
在各種原因下,我們的信號系統(tǒng)開發(fā),仍然在使用相對較老的管理方式和技術(shù)中。大量的信號系統(tǒng)開發(fā)團隊,在面對這一問題時,通常采取增加培訓(xùn)、強化制度等傳統(tǒng)方式嘗試解決。結(jié)果上而言,這只是讓更多的人適應(yīng)當前的狀況,而沒有從源頭上嘗試解決問題,付出的成本不菲,而收效甚微,很難稱得上有效的解決方案。
相對而言,同樣部分源自計算機科學(xué),互聯(lián)網(wǎng)行業(yè)則是這一方面的優(yōu)勢選手。近年來,無論是管理技術(shù)、培訓(xùn)技術(shù)、工作流技術(shù),互聯(lián)網(wǎng)公司都創(chuàng)造了相當多寶貴的特質(zhì)化技術(shù)和經(jīng)驗,低耗高效地優(yōu)化了自身。另一方面,這些方面的變革也明顯吸引了更多的畢業(yè)生等新鮮血液。在這樣的趨勢下,如何從互聯(lián)網(wǎng)項目的成功經(jīng)驗中總結(jié)經(jīng)驗、優(yōu)化自身,已經(jīng)成為了傳統(tǒng)領(lǐng)域項目共同的話題。
本文從項目管理的方向上,對軌道交通信號系統(tǒng)的項目管理進行反思總結(jié),并結(jié)合自身經(jīng)驗,粗淺地探討吸收敏捷開發(fā)思維,化為己用,優(yōu)化自身的過程中的收獲與問題。
1.采用V模型進行項目開發(fā)的現(xiàn)狀
V模型作為一種源自瀑布模型的改良版本,對于項目成員而言,最為明顯的特點之一,便是其開發(fā)流程中各個開發(fā)任務(wù)的粒度。開發(fā)過程中,尤其是早期階段,相關(guān)人員始終以整個產(chǎn)品的視角出發(fā),進行詳細的分析、研討等工作。這樣的視角和粒度帶來的問題之一,是項目成員承擔的負載是不均等的。例如,第一線的軟件開發(fā)人員,在進行具體功能的詳細設(shè)計前,一直處于工作負載較低的狀態(tài),直到前置產(chǎn)出物完成。
V模型的線性工作流帶來的另一個問題則是開發(fā)過程中的壓力累積。即使投入了V模型的驗證和確認過程,在單個階段結(jié)束后仍然無法保證萬無一失。而線性工作流下,更為有效的驗證過程往往被前置階段阻塞,導(dǎo)致一些較為隱蔽的問題無法被快速發(fā)現(xiàn)。而軟件工程中,問題的排除一般無法估算具體的時間。這樣的狀況會導(dǎo)致項目組開啟下個迭代的時間延后。
2.吸取敏捷開發(fā)思維以解決效率問題
在探索前述問題的解決方案時,目前十分流行的敏捷開發(fā)引起了我們的注意。概念上來說,敏捷開發(fā)并沒有特別準確的定義,但其特點是業(yè)內(nèi)一致認定的——快速迭代,快速反饋,擁抱變化。我們?nèi)匀槐A袅嗽萔模型的驗證和確認過程,而在設(shè)計過程中采用了少量多次迭代的方針,降低每個任務(wù)的粒度。相比之下,少量多次迭代帶來的優(yōu)勢是,每個項目成員都能夠很快開始自己的工作,在整個項目中的工作壓力相對均衡,每個迭代需要完成的任務(wù)和產(chǎn)生的問題有所減少。
在工作流方面,我們沒有做非常大的改動,轉(zhuǎn)而在優(yōu)化工作粒度的基礎(chǔ)上進行改進。調(diào)整工作流之后,對每個任務(wù)更為精準的驗證確認可以更早開始,問題可以被更早發(fā)現(xiàn)和處理。更為重要的是,因為系統(tǒng)當時的復(fù)雜度相對更低,問題的排查和處理也變得更容易。
我們還在項目推進過程中增加了一些溝通環(huán)節(jié)。我們設(shè)立了頻率更高、耗時更少的進度溝通,在每個階段也讓更多角色參與進來。在推行一段時間后,我們發(fā)現(xiàn),定期的溝通更容易發(fā)現(xiàn)開發(fā)過程中每個成員遇到的問題,而更多角色的參與則減少了設(shè)計上的問題和反復(fù)返工的現(xiàn)象。我們還發(fā)現(xiàn),在這樣的模式下,更多的項目成員反饋稱,他們更有信心順利完成每個迭代結(jié)點,在工作過程中也有了更大的提升感。
3.投入敏捷開發(fā)的難點和解決方案
在推行過程中,我們的主要難點之一是對“敏捷”的理解不足。在粒度較細的設(shè)計過程中,因為團隊過早地思考了非當前迭代的內(nèi)容,花費時間進行了設(shè)計。而之后的開發(fā)證明,當時做出的設(shè)計已經(jīng)不再適用,這產(chǎn)生了額外的開發(fā)成本。在研討后發(fā)現(xiàn),如果在當前迭代只考慮相關(guān)的設(shè)計,反而會減少類似的問題。與此類似的是,我們發(fā)現(xiàn),在完全不修改之前迭代的情況下進行持續(xù)開發(fā)會產(chǎn)生額外的問題。在這個方面,我們通過周期性的溝通、研討和簡單復(fù)盤,付出一定的學(xué)習(xí)成本之后,這些問題都有明顯的改進。
另一個問題是,面對全新的工具鏈,每個人都需要進行額外的學(xué)習(xí),尤其是相關(guān)工具的搭建、修改和維護方面。在每個工具的投入前,我們都進行了詳盡的調(diào)研,避免投入過多的系統(tǒng),無謂地增加全體成員的學(xué)習(xí)成本。決定投入后,我們還提前準備了完整的培訓(xùn)方案,并構(gòu)建了一定的實戰(zhàn)用例。結(jié)果上,我們做出的準備收獲頗豐,在工具的投入確實降低了出錯的概率。而工具的選擇和自定義方面,也因為充分的調(diào)研和調(diào)整,盡可能簡化操作成本。得益于此,項目組很快地投入了實戰(zhàn)生產(chǎn),只產(chǎn)生了少量的操作問題。
4.對兩種開發(fā)模式的對比與探討
V模型作為傳統(tǒng)的項目生命周期模型,其逐級推進的工作方式在項目整體的全局把控方面十分出色。此外,作為V模型的標志,每個階段都有對應(yīng)的驗證和確認過程這一特性,一定程度上確保了項目整體的推進方向。
而投入敏捷開發(fā)后,整體的項目推進則更多地關(guān)注具體的任務(wù)和功能,快速迭代使得項目成員的壓力分布更為均勻,每個迭代的目標更為明確簡單,在推進過程中簡潔輕快,每個人都有足夠的參與度和更為明確的目標。
本次嘗試中,我們只嘗試了將敏捷開發(fā)中很小的一部分與V模型結(jié)合的方式。雖然在嘗試的過程中,仍然繞了一些彎路,我們?nèi)匀桓冻隽艘欢ǖ脑囧e成本和學(xué)習(xí)成本,結(jié)果而言,項目的推進速度有所提升,開發(fā)過程出現(xiàn)的問題有所減少,效果比較明顯。
【參考文獻】
[1]賈子河,段永剛,蔣博,段珊珊.輕松Scrum之旅—敏捷開發(fā)故事[M].電子工業(yè)出版社,2009(1).
[2]張文勝,陳宏.基于ThinkPHP模型的敏捷WEB開發(fā)的應(yīng)用與實踐[J].軟件工程.2016.v.19;NO.20103:45-48