導(dǎo)讀:說(shuō)起敏捷開發(fā),并不是因?yàn)槊艚荻艚荨_@幾年的敏捷開發(fā)已經(jīng)被很多敏捷咨詢服務(wù)商神話了,這個(gè)東西并不是神器,實(shí)施了就可以解決所有軟件公司的問題,而是要結(jié)合自己公司的特點(diǎn)和問題摸索出適合自己的一套模式。
大家都知道,創(chuàng)業(yè)公司剛開始需要研發(fā)出一款產(chǎn)品并且能夠使公司賺錢的產(chǎn)品,不過大部分創(chuàng)業(yè)公司沒有那么容易一下就能做出來(lái),很多公司還沒有成功的產(chǎn)品資金鏈就斷掉了,公司也死掉了。我們公司是這樣一個(gè)狀況,有一條產(chǎn)品線可以維持公司開支并僅僅剛夠盈余,要擴(kuò)大高速發(fā)展還不夠,一直維持就沒有創(chuàng)業(yè)的意義。另一條線是做技術(shù)創(chuàng)新為未來(lái)能夠開發(fā)一款人氣爆棚的產(chǎn)品摸索著,但是又不能餓著肚子去開發(fā)。我們是如何結(jié)合自身的特點(diǎn)實(shí)施敏捷開發(fā)的呢?一個(gè)難題,很大的難題!
我們技術(shù)團(tuán)隊(duì)人員是這樣的配置:1名技術(shù)總監(jiān)、2名資深開發(fā)工程師、1名高級(jí)開發(fā)工程師、2名潛力開發(fā)工程師、1名前端開發(fā)、1名測(cè)試。技術(shù)總監(jiān)需要處理很多團(tuán)隊(duì)管理、客戶管理的工作,能夠參與項(xiàng)目的時(shí)間最多每天二分之一。2名資深開發(fā)需要負(fù)責(zé)給其他工程師做導(dǎo)師,參與新項(xiàng)目開發(fā)時(shí)間大概有80%。高級(jí)工程師要預(yù)留項(xiàng)目學(xué)習(xí)時(shí)間,參與項(xiàng)目的時(shí)間大概有90%。潛力開發(fā)工程師需要有一些時(shí)間學(xué)習(xí)技術(shù)和項(xiàng)目,但是基本可以做到70%的時(shí)間投入項(xiàng)目。前端開發(fā)和測(cè)試哪里有需要就在哪里革命,屬于機(jī)動(dòng)部隊(duì)。
現(xiàn)在總共有六個(gè)老項(xiàng)目在維護(hù),兩個(gè)新項(xiàng)目需要開發(fā)。六個(gè)項(xiàng)目的維護(hù)總共需要每周4人天時(shí)間(人天指需要花1個(gè)人4天的時(shí)間完成一個(gè)事情)。其中一個(gè)新項(xiàng)目“項(xiàng)目1”大概估計(jì)120人天的開發(fā)時(shí)間,需要1個(gè)月之內(nèi)開發(fā)完成。“項(xiàng)目2”大概估計(jì)要40人天的開發(fā)時(shí)間,需要2周開發(fā)完成。而現(xiàn)在的人力按照能夠投入的時(shí)間算一下,總共資源為 (1 * 1/2 + 2 * 8/10+1 * 9/10+2 * 7/10) 30天 = 132 人天,6個(gè)老項(xiàng)目每周需要4人天,一個(gè)月4周,需要 4 * 4 = 16人天。項(xiàng)目能夠投入的資源有 132 – 16 = 116人天,而總共需要120 + 40 = 160天,足足少了44人天,這看起來(lái)是一個(gè)不可完成的任務(wù)。
不過到最后,我們還是使用敏捷開發(fā)完成了這兩個(gè)項(xiàng)目,也沒有影響老項(xiàng)目的維護(hù)。我們是怎么操作的?最開始我們兩個(gè)開發(fā),這個(gè)時(shí)候只要兩個(gè)人就能夠很好的合作把產(chǎn)品開發(fā)出來(lái),不需要什么模式。隨著人員的擴(kuò)充,團(tuán)隊(duì)間如何協(xié)作按時(shí)按質(zhì)按量完成任務(wù)就需要好好思考下了。
嘗試一,傳統(tǒng)軟件開發(fā)模式。整個(gè)過程為 需求分析、系統(tǒng)設(shè)計(jì)、任務(wù)分解計(jì)劃安排、開發(fā)設(shè)計(jì)、編碼、測(cè)試、交付、驗(yàn)收、維護(hù)。這個(gè)模式也是大家最常使用的模式,不過套用在我們公司時(shí)我們是這么操作的。
傳統(tǒng)開發(fā)過程
由于公司創(chuàng)業(yè),老板有一個(gè)想法,但并不能很好的描述需求,所以需求分析的任務(wù)落在技術(shù)總監(jiān)身上。系統(tǒng)設(shè)計(jì)和任務(wù)分解剛開始是技術(shù)總監(jiān)完成,后面資深開發(fā)工程師可以承擔(dān)一部分。開發(fā)設(shè)計(jì)可以讓各個(gè)開發(fā)工程師完成,資深工程師進(jìn)行把關(guān),再到測(cè)試人員測(cè)試,最后再交付用戶驗(yàn)收、技術(shù)維護(hù)。看起來(lái)很好的模式,開發(fā)了幾個(gè)產(chǎn)品最終有的延時(shí)有的產(chǎn)品離用戶的期望差距甚遠(yuǎn),參與項(xiàng)目團(tuán)隊(duì)的人信心受挫。
為什么會(huì)失敗呢?后來(lái)思考了這些問題:
1、技術(shù)總監(jiān)不是產(chǎn)品經(jīng)理,不能夠承擔(dān)產(chǎn)品設(shè)計(jì)的責(zé)任。老板是信任技術(shù)總監(jiān)能做好產(chǎn)品,就交給他做。但這里搞混了一個(gè)概念,產(chǎn)品經(jīng)理和項(xiàng)目經(jīng)理,技術(shù)總監(jiān)應(yīng)該起到項(xiàng)目經(jīng)理和架構(gòu)師的作用。項(xiàng)目經(jīng)理管控項(xiàng)目進(jìn)度和計(jì)劃、架構(gòu)師把握整體技術(shù)問題。而技術(shù)總監(jiān)接到這個(gè)任務(wù)又不能不做好,責(zé)任所在。說(shuō)到底,就是機(jī)制沒有把產(chǎn)品設(shè)計(jì)和項(xiàng)目經(jīng)理區(qū)分開,不等于技術(shù)實(shí)現(xiàn)者就是產(chǎn)品設(shè)計(jì)者。更多的應(yīng)該讓老板或者其他業(yè)務(wù)人員承擔(dān)產(chǎn)品設(shè)計(jì)的工作。
2、需求不穩(wěn)定,變化后改動(dòng)代價(jià)大。由于創(chuàng)業(yè),需求為了適應(yīng)市場(chǎng)會(huì)經(jīng)常調(diào)整,但是一但調(diào)整,很多開發(fā)計(jì)劃就會(huì)受到相應(yīng)的調(diào)整。如果部分功能已經(jīng)正在開發(fā),調(diào)整需求后很多工作要重新開始,嚴(yán)重影響了技術(shù)同事積極性。業(yè)務(wù)不調(diào)整需求是不可能的,他們是為了滿足用戶的要求,用戶滿意了才能給企業(yè)帶來(lái)價(jià)值。不過如果調(diào)整,代價(jià)太大,很多代碼要重寫,大家就會(huì)責(zé)怪技術(shù)總監(jiān)或者項(xiàng)目負(fù)責(zé)人沒有把握好需求。
3、團(tuán)隊(duì)經(jīng)常加班,但戰(zhàn)斗力不強(qiáng)。 核心團(tuán)隊(duì)疲于應(yīng)對(duì)需求、技術(shù)開發(fā)、老系統(tǒng)維護(hù),沒時(shí)間指導(dǎo)新同事技術(shù)學(xué)習(xí),而新同事技能暫時(shí)還沒有發(fā)揮出來(lái)干活效率低,任務(wù)經(jīng)常延期,沒有成就感。核心團(tuán)隊(duì)事情很多,沒有時(shí)間整理項(xiàng)目文檔,新員工沒有文檔上手慢。大家每天很多事情,需要加班才能完成,比較疲憊。每個(gè)人除了工作還有很多事情需要做,比如回家看看電視、陪陪家人、看看書學(xué)習(xí)一下等。如果讓一個(gè)員工一天二十四小時(shí)都是工作,他能同意,他家人也不一定同意。讓大家愉悅的開發(fā),比疲憊的上班效率要高很多。
4、交付軟件質(zhì)量差,離用戶期望差距大。創(chuàng)業(yè)時(shí)大家的想法都是好的,大干一番,做一個(gè)所有人都愛使用的產(chǎn)品。現(xiàn)實(shí)是殘酷的,大家辛辛苦苦做出來(lái)的東西,老板不滿意、用戶不埋單,付出的努力沒有人認(rèn)可。交付的軟件沒時(shí)間自測(cè)試,或者自測(cè)試不充分,交給測(cè)試又是一大堆問題。有些公司還沒有測(cè)試,直接出去給用戶,相當(dāng)危險(xiǎn)。這樣交出去的公司不僅僅影響了用戶的使用,還影響了整個(gè)公司的口碑。
不是說(shuō)傳統(tǒng)軟件開發(fā)模式不好,只是不太適合我們這種創(chuàng)業(yè)公司。開始嘗試其他模式,如果沒有一個(gè)很好的體制就不能把大家的最大生產(chǎn)力發(fā)揮出來(lái)。
嘗試二,敏捷開發(fā)模式。敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。敏捷方法強(qiáng)調(diào)以人為本,專注于交付對(duì)客戶有價(jià)值的軟件。在高度協(xié)作的開環(huán)境中,使用迭代式的方式進(jìn)行增量開發(fā),經(jīng)常使用反饋進(jìn)行思考、反省和總結(jié),不停的進(jìn)行自我調(diào)整和完善。
敏捷開發(fā)的主旨:
一:個(gè)體及交互比流程與工具更具價(jià)值
二:可用的軟件比冗長(zhǎng)的文檔更有價(jià)值
三:與客戶的協(xié)作比合同談判更有價(jià)值
四:對(duì)變化的響應(yīng)比遵循計(jì)劃更有價(jià)值
而我們之前的問題,交付軟件客戶不滿意、延期、需求更改代價(jià)大貌似都可以解決。這么好的模式趕緊要試試,先看一張敏捷開發(fā)的流程圖。
創(chuàng)業(yè)公司敏捷開發(fā)敏捷流程化
敏捷開發(fā)簡(jiǎn)單流程:
1、產(chǎn)品負(fù)責(zé)人將整個(gè)產(chǎn)品設(shè)計(jì)成產(chǎn)品backlog。產(chǎn)品backlog就是一個(gè)個(gè)需求列表。(backlog可以理解為需求或者要做的事情)
2、召開產(chǎn)品backlog計(jì)劃會(huì)議,預(yù)估每個(gè)backlog的時(shí)間,確定哪些backlog是需要在第一個(gè)sprint中完成的,即sprint的backlog。(sprint可以理解為一個(gè)團(tuán)隊(duì)一起開發(fā)的一個(gè)任務(wù)集合)
3、把sprint的backlog寫在紙條上貼在任務(wù)墻,讓大家認(rèn)領(lǐng)分配。(任務(wù)墻就是把 未完成、正在做、已完成 的工作狀態(tài)貼到一個(gè)墻上,這樣大家都可以看得到任務(wù)的狀態(tài) )
4、舉行每日站立會(huì)議,讓大家在每日會(huì)議上總結(jié)昨天做的事情、遇到什么困難,今天開展什么任務(wù)。(每日站立會(huì)議,是在每天早上定時(shí)和大家在任務(wù)墻前站立討論,時(shí)間控制在15分鐘內(nèi))
5、繪制燃盡圖,保證任務(wù)的概況能夠清晰看到。(燃盡圖把當(dāng)前的任務(wù)總數(shù)和日期一起繪制,每天記錄一下,可以看到每天還剩多少個(gè)任務(wù),直到任務(wù)數(shù)為0 ,這個(gè)sprint就完成了) 本新聞共 2頁(yè),當(dāng)前在第 1頁(yè) 1 2
想認(rèn)識(shí)全國(guó)各地的創(chuàng)業(yè)者、創(chuàng)業(yè)專家,快來(lái)加入“中國(guó)創(chuàng)業(yè)圈”
|