要回答這個(gè)問(wèn)題,先讓我們來(lái)看看什么是流程。
什么是流程?
流程是任何可重復(fù)的一組動(dòng)作。流程通常由團(tuán)隊(duì)來(lái)決定,以確保事情會(huì)以某種方式完成。流程有很多其他名稱(chēng):規(guī)則、指導(dǎo)方針、形式、程序或限制規(guī)定。
軟件開(kāi)發(fā)流程,就是軟件開(kāi)發(fā)過(guò)程中重復(fù)的一組動(dòng)作,是軟件開(kāi)發(fā)應(yīng)遵循的一套規(guī)則、程序或規(guī)定。
好的流程可以提高項(xiàng)目完工的機(jī)會(huì),而且效益要大于成本。
好的軟件開(kāi)發(fā)流程可以讓軟件開(kāi)發(fā)的收益大于所付出的成本。
那么什么才是好的軟件開(kāi)發(fā)流程?
下面列出了一些好的流程的特征,當(dāng)你要建立或改進(jìn)軟件開(kāi)發(fā)流程時(shí),可以將其作為指導(dǎo)原則來(lái)使用。
1. 好的流程可以加速事情的進(jìn)展
換句話說(shuō)就是,好的流程辦事會(huì)更加有效率。效率是衡量流程好壞的一個(gè)顯著的特征。比如要完成一次軟件變更,有的實(shí)施GJB5000A組織的流程通常是接收變更請(qǐng)求-變更影響分析-變更申請(qǐng)-產(chǎn)品庫(kù)出庫(kù)-受控庫(kù)入庫(kù)-受控庫(kù)出庫(kù)-開(kāi)發(fā)庫(kù)入庫(kù)-開(kāi)發(fā)庫(kù)獲取-實(shí)施更改-更改驗(yàn)證-開(kāi)發(fā)庫(kù)入庫(kù)-開(kāi)發(fā)庫(kù)出庫(kù)-受控庫(kù)入庫(kù)-受控庫(kù)出庫(kù)-產(chǎn)品庫(kù)入庫(kù)-產(chǎn)品庫(kù)出庫(kù)-交付使用。這樣的流程還有什么效率可言,這還能是一個(gè)好的流程嗎?軟件變更流程的重要目的是控制變更和控制軟件版本,只要不失去這個(gè)核心,省去幾個(gè)環(huán)節(jié)又有什么關(guān)系?而且如果要進(jìn)一步提高流程的效率,你還可以引入自動(dòng)化構(gòu)建工具,使你的流程更加完美。
2. 好的流程可以防止問(wèn)題
制定流程的最重要的一個(gè)動(dòng)機(jī)就是防止某種愚蠢的事情發(fā)生(或再次發(fā)生)。這一點(diǎn)對(duì)于編寫(xiě)體系的人來(lái)說(shuō)尤其要注意。我們編寫(xiě)GJB5000A體系的時(shí)候,不僅僅是把現(xiàn)有的軟件開(kāi)發(fā)活動(dòng)用文字記錄下來(lái),更重要的是要考慮我們制定的規(guī)程、指南能夠幫助我們解決什么樣的問(wèn)題。如果編寫(xiě)體系的人沒(méi)有這些思考,那么寫(xiě)出來(lái)的體系也不會(huì)有人執(zhí)行,執(zhí)行起來(lái)也沒(méi)什么作用。
3. 好的流程可以讓重要行動(dòng)可見(jiàn)和可測(cè)量
制定流程的目的是能夠控制項(xiàng)目的進(jìn)程,讓項(xiàng)目按照我們期望的路線前進(jìn)。而要達(dá)到這一目的,就要使項(xiàng)目狀態(tài)一目了然、清清楚楚。這就需要流程的設(shè)計(jì)能夠幫助項(xiàng)目策劃參數(shù)方便地測(cè)量和監(jiān)控。
4. 好的流程應(yīng)當(dāng)包括修改或刪除此流程的流程
流程必須有內(nèi)置的機(jī)制,可以決定何時(shí)需要更新或者停止。
沒(méi)有那種亙古長(zhǎng)存、一成不變的流程。流程必須適應(yīng)它所處的內(nèi)外部環(huán)境。流程要持續(xù)改進(jìn),而且它也會(huì)迎來(lái)終止的那一天。
5. 好的流程應(yīng)當(dāng)受到影響的人會(huì)贊同
流程對(duì)于使用它的人來(lái)說(shuō),是一種束縛。所以,如果沒(méi)有足夠的好處,流程的增加和變動(dòng)沒(méi)人會(huì)歡迎。好的流程必須對(duì)那些使用它的人有幫助,贏得他們的支持。所以制定一個(gè)流程應(yīng)當(dāng)多聽(tīng)取受影響的人的意見(jiàn),或者直接讓受影響的人參與制定。
6. 好的流程一定是收益大于成本的
一個(gè)流程的制定要考慮它一旦執(zhí)行,需要付出多少成本以及帶來(lái)多少收益。你需要在試點(diǎn)過(guò)程中對(duì)其進(jìn)行測(cè)算,如果成本高于收益,你必須要進(jìn)行流程的優(yōu)化,否則,你的流程很難推行下去。
這正是:
好的流程收益高,使用的人都說(shuō)好
解決問(wèn)題有效率,項(xiàng)目狀態(tài)測(cè)得到