現(xiàn)在說到互聯(lián)網(wǎng)軟件產(chǎn)品的研發(fā)過程等,基本都少不了聊到敏捷開發(fā),就和說到企業(yè)人員管理離不開扁平化一樣,敏捷開發(fā)也成為了開發(fā)項目中的一個“流行”。但是實際工作中,我們是否適合或是應(yīng)該使用某種方法,如果一味跟風(fēng),往往會出現(xiàn)不少弊端。
最直接的就是沒有正確認(rèn)識,而對采用的方式認(rèn)知不對,亦或在操作過程中出現(xiàn)不少失誤。
錯誤理解
1、并非所有需求階段都適用于敏捷開發(fā)
使用敏捷開發(fā)最廣泛的行業(yè)就是互聯(lián)網(wǎng),這主要有兩個原因:一是產(chǎn)品的功能升級更新?lián)Q代非常快,大家都必須要在最短的時間內(nèi)搶占市場,吸引用戶,而需求往往又不是非常的明確,甚至有時只是一個idea,需要市場的反饋;二是產(chǎn)品的升級一般是可控的,即便是帶著一定缺陷的產(chǎn)品發(fā)布(又稱為“灰度發(fā)布”),我們都可以在后臺悄悄的升級系統(tǒng)或修改BUG,對于用戶來說,任何時間打開瀏覽器都可以看到最新的產(chǎn)品,因此對用戶的影響是最小的,甚至用戶是不感知的。
但是,即使是同行業(yè),對于那些需要安裝到用戶使用的終端(電腦、手機、平板等)的應(yīng)用來說,這樣的升級方式可能就會導(dǎo)致客戶的反感、投訴和客戶流失。對于軟件提供商來說,還必須要考慮客戶拒絕升級情況下,后臺系統(tǒng)必須要同時支持多個版本的運行,否則就會遭到客戶的投訴,甚至?xí)l(fā)負(fù)面影響的廣泛傳播。
因此對于不同形式、不同需求階段、不同質(zhì)量要求的產(chǎn)品,對于敏捷開發(fā)的實際應(yīng)用是需要謹(jǐn)慎研究的,而不是絕對的生搬硬套和教條主義。
2、敏捷并不是“一個”過程
我們知道項目管理是一個過程,因此不少人會同樣的認(rèn)為敏捷是一個過程,但是事實并非如此,敏捷不是一個過程,是一類過程的統(tǒng)稱,它們需要符合敏捷價值觀、遵循敏捷的原則。
那么符合敏捷開發(fā)的原則有哪些要求呢?
首先,我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意;即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。
然后,在整個項目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作。敏捷過程提倡可持續(xù)的開發(fā)速度,責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期的、恒定的開發(fā)速度。而在團(tuán)隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談。
其次,每隔一定時間,團(tuán)隊會在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對自己的行為進(jìn)行調(diào)整。經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。
易犯失誤
1、絕對自由的錯覺
敏捷強調(diào)的是自組織團(tuán)隊,發(fā)揮人的能動性,以動力代替壓力,讓人有絕對自由的錯覺。但是我們應(yīng)該清楚,凡事都是要講究一個平衡,人也是兩面的,消極的一面和積極的一面同時并存,絕對的自由會放縱人消極的一面。
敏捷并非是絕對自由,無約束的。作為管理者,有一個職責(zé),就是引導(dǎo)團(tuán)隊成員用自己積極的一面去壓制消極的一面,不能放任團(tuán)隊中出現(xiàn)搭便車的現(xiàn)象,否則將打擊整個團(tuán)隊的士氣。如果實在無效,那就只能將其排除出團(tuán)隊了。
2、流程簡化,確實分析于設(shè)計
敏捷開發(fā)不一定能簡化工作流程,而且簡化流程也并非提出敏捷開發(fā)的初衷。敏捷開發(fā)最重視的是靈活應(yīng)對變化。選擇敏捷開發(fā)流程時應(yīng)帶著敏捷開發(fā)的思維去選擇,即快速響應(yīng)項目實際的流程需求,適應(yīng)流程應(yīng)用過程中遇到的各種變化。沒有長期適合的項目流程,生搬硬套某個看似成熟的敏捷開發(fā)流程是大忌。
雖然敏捷開發(fā)強調(diào)簡單設(shè)計,團(tuán)隊每個成員都從接觸客戶到分析設(shè)計,到編碼,全部承擔(dān)。但是實際上團(tuán)隊成員的素質(zhì)參差不齊,如果只有簡單設(shè)計、立即編碼,而沒有后續(xù)的持續(xù)重構(gòu)等實踐,將導(dǎo)致設(shè)計混亂不一致,尤其是對老系統(tǒng)的功能升級,如果對原有系統(tǒng)的影響分析不夠,弱化了分析設(shè)計,將導(dǎo)致很多工作在后期頻繁變更,使得團(tuán)隊的挫折感增強,產(chǎn)生較多的重復(fù)工作和浪費。因此,必要的系統(tǒng)架構(gòu)和設(shè)計從來都是非常重要的。
所以任何時候,我們都不能純粹依靠經(jīng)驗和教條主義,每個項目甚至具體工作任務(wù)都是不同的,所以只有根據(jù)實際情況靈活應(yīng)對處理才是正確選擇研發(fā)模式的有效之法。