今天跟大家分享的是“敏捷開發(fā)、快速迭代”。我們大都采用的是“瀑布開發(fā)模式”,有了問題,就得返工,雖然最終的產(chǎn)品會(huì)比較齊全完善,但是開發(fā)周期太長(zhǎng),開發(fā)人員會(huì)產(chǎn)生排斥,甚至厭惡的心理。經(jīng)過YH系統(tǒng)的開發(fā),也且生體會(huì)到了這一弊端。
有問題就要去解決它!于是我想到了“敏捷開發(fā)”。借鑒敏捷開發(fā)模式,來改善軟件開發(fā)過程,提高項(xiàng)目的開發(fā)效率。
要想借鑒,首先得弄懂以下3個(gè)問題。
1. 什么是敏捷開發(fā)
百度百科中是這樣解釋的:敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備集成和可運(yùn)行的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
我們可以這樣認(rèn)為,敏捷開發(fā)是一種面臨迅速變化的需求快速開發(fā)的能力。要明確幾點(diǎn):
敏捷不僅僅是一個(gè)項(xiàng)目快速完成、而是對(duì)整個(gè)產(chǎn)品領(lǐng)域需求的高效管理;
敏捷不僅僅是簡(jiǎn)單的快,而是短周期的不斷改進(jìn)、提高和調(diào)整;
敏捷不僅僅是一個(gè)版本只做幾個(gè)功能,而是突出重點(diǎn)、果斷放棄當(dāng)前的非重點(diǎn);
敏捷不僅僅是隨時(shí)增加需求,而是每個(gè)迭代周期對(duì)需求的重新審核和排序。
2.如何進(jìn)行敏捷開發(fā)?
敏捷開發(fā)的體系建設(shè)主要有如下六個(gè)方面:
1、組織建設(shè)
也就是團(tuán)隊(duì)建設(shè),建立以產(chǎn)品經(jīng)理為主導(dǎo),包含產(chǎn)品、設(shè)計(jì)、前后臺(tái)開發(fā)和測(cè)試的team,快速進(jìn)行產(chǎn)品迭代開發(fā);扁平化的團(tuán)隊(duì)管理,大家都有共同目標(biāo),更有成就感;
2、敏捷制度
要找準(zhǔn)適合自身的敏捷開發(fā)方式,主要是制定一個(gè)完善的效率高的設(shè)計(jì)、開發(fā)、測(cè)試、上線流程,制定固定的迭代周期,讓用戶更有期待;
3、需求收集
這個(gè)任何方式下都需要有,需求一定要有交互稿,評(píng)審?fù)ㄟ^后,一定要確定功能需求列表、責(zé)任人、工作量、責(zé)任人等;
4、工具建設(shè)
是指能夠快速完成某項(xiàng)事情的輔助工具,比如開發(fā)環(huán)境的一鍵安裝,各種底層的日志、監(jiān)控等平臺(tái),發(fā)布、打包工具等;
5、系統(tǒng)架構(gòu)
略為超前架構(gòu)設(shè)計(jì):支持良好的擴(kuò)容性和可維護(hù)性;組件化基礎(chǔ)功能模塊:代碼耦合度低,模塊間的依賴性小;插件化業(yè)務(wù)模塊:降低營(yíng)銷活動(dòng)與業(yè)務(wù)耦合度,自升級(jí)、自維護(hù);客戶端預(yù)埋邏輯;技術(shù)預(yù)研等等;
6、數(shù)據(jù)運(yùn)營(yíng)與灰度發(fā)布
點(diǎn)擊率分析、用戶路徑分析、渠道選擇、渠道升級(jí)控制等等。
有幸拾得某位牛人的敏捷開發(fā)經(jīng)驗(yàn),再結(jié)合自己的理解,一起拿出來與大家分享一下:
1 、 重點(diǎn)明確,及時(shí)調(diào)整。
通過分析需求的緊急性和重要性,做出優(yōu)先級(jí)的判定,優(yōu)先級(jí)從1排到10,沒有重復(fù);
迭代中嚴(yán)格按照優(yōu)先級(jí)順序開發(fā),即使最后時(shí)間不夠,也能保證最需要的功能開發(fā)完成;
每次迭代前重新調(diào)整需求的重要性,及時(shí)加入重要的業(yè)務(wù)需求和用戶需求,將重要性不高的需求往后調(diào)整。
2、傾聽用戶的聲音、相信用戶的直覺。
在迭代中充分關(guān)注線上版本用戶的反饋,并且主動(dòng)聯(lián)系用戶了解困擾,在當(dāng)個(gè)迭代或下個(gè)迭代快速優(yōu)化;通過對(duì)用戶反饋的及時(shí)響應(yīng)獲得用戶的認(rèn)可和口碑。
這里就提到一個(gè)名叫“AB test”的開發(fā)模式,一個(gè)問題有A、B兩種解決方案,不知道哪個(gè)更符合用戶的需求,那么就讓用戶去選擇,根據(jù)用戶的反饋去迅速調(diào)整。
3、勇于創(chuàng)新、小步快跑。
在迭代中勇于創(chuàng)新,快速實(shí)現(xiàn)創(chuàng)新想法,并在后續(xù)的迭代中不斷優(yōu)化。
一直遠(yuǎn)離媒體視線的騰訊CEO馬化騰,在“合作伙伴大會(huì)一周年”的活動(dòng)上,也給合作伙伴和同行們“小步快跑,快速迭代”的建議,被賦予“一直在模仿,從未被超越”稱號(hào)的騰訊開發(fā)團(tuán)隊(duì),其實(shí)創(chuàng)新也是國(guó)內(nèi)最多的。
4、持續(xù)不斷地發(fā)現(xiàn)問題,解決問題。
通過每天的版本發(fā)布來檢驗(yàn)團(tuán)隊(duì)在每日立會(huì)上做出的承諾;
測(cè)試和驗(yàn)證功能的開發(fā)程度;
對(duì)于功能的實(shí)現(xiàn)第一時(shí)間給出反饋,并能快速調(diào)整,而不會(huì)像瀑布式等到開發(fā)末期才發(fā)現(xiàn)實(shí)現(xiàn)上的問題。
5、持續(xù)提升整個(gè)團(tuán)隊(duì)的產(chǎn)品能力。
專門的團(tuán)隊(duì)面向一個(gè)產(chǎn)品領(lǐng)域;
持續(xù)優(yōu)化用戶體驗(yàn)和產(chǎn)品流程;
通過產(chǎn)品迭代的心跳保持產(chǎn)品團(tuán)隊(duì)的用戶和市場(chǎng)敏感度;
提升產(chǎn)品經(jīng)理的產(chǎn)品感覺、提高技術(shù)團(tuán)隊(duì)的產(chǎn)品意識(shí);
團(tuán)隊(duì)伴隨業(yè)務(wù)而成長(zhǎng),獲得更高的成就感。
說了這么多,歸結(jié)起來就是,產(chǎn)品通過不斷的獲取用戶新需求,不斷的更新迭代而愈加成熟。而快速迭代,則能提升團(tuán)隊(duì)的市場(chǎng)競(jìng)爭(zhēng)力,從而快速占領(lǐng)市場(chǎng)。
3.如何快速迭代
其實(shí)這個(gè)問題已經(jīng)在第二個(gè)問題中回答過了,這里再單拿出來說,是為了強(qiáng)調(diào)一下。
現(xiàn)在是互聯(lián)網(wǎng)的時(shí)代,互聯(lián)網(wǎng)產(chǎn)品的更新速度可謂是日新月異?;ヂ?lián)網(wǎng)的開發(fā)模式也是主要圍繞“快速迭代”的主題來開發(fā)產(chǎn)品的 在飛速發(fā)展的互聯(lián)網(wǎng)行業(yè)里,產(chǎn)品是以用戶為導(dǎo)向在隨時(shí)演進(jìn)的。因此,在推出一個(gè)產(chǎn)品之后要迅速收集用戶需求進(jìn)行產(chǎn)品的迭代——在演進(jìn)的過程中注入用戶需求的基因,完成快速的升級(jí)換代,裂變成長(zhǎng),才能讓你的用戶體驗(yàn)保持在最高水平。不要閉門造車以圖一步到位,否則你的研發(fā)速度永遠(yuǎn)也趕不上需求的變化。
可能我們做的不是互聯(lián)網(wǎng)的項(xiàng)目,但是如果是大項(xiàng)目,依舊推薦使用敏捷開發(fā)。分級(jí)需求,快速迭代產(chǎn)品。讓用戶能在短時(shí)間內(nèi)用戶用上你的產(chǎn)品,短時(shí)間內(nèi)使用到新功能。
采用“短周期迭代法”,可以壓縮項(xiàng)目開發(fā)實(shí)施周期,減少項(xiàng)目風(fēng)險(xiǎn),簡(jiǎn)化管理,提高各個(gè)環(huán)節(jié)達(dá)成率,有效推進(jìn)項(xiàng)目建設(shè)。
快速迭代,版本更新快,所以要考慮降低項(xiàng)目風(fēng)險(xiǎn),確保正確的方向。
敏捷開發(fā)能夠縮短項(xiàng)目的反饋周期,因其將項(xiàng)目分成了若干個(gè)迭代周期,每個(gè)迭代周期結(jié)束都能立即反饋。且通過不斷的溝通,還能減少理解上的偏差,配合反饋,減少誤解,從而降低修正錯(cuò)誤的代價(jià)。且每個(gè)迭代周期的結(jié)束都能接受驗(yàn)證,從而能快速的適應(yīng)變化,及時(shí)的適應(yīng)新的需求,保證產(chǎn)品的正確性。
那么迭代周期設(shè)定為多少合適呢,“小步快跑、快速迭代”,當(dāng)然系統(tǒng)大小也會(huì)影響到迭代周期,所以把迭代周期一般設(shè)置為1-6周為佳。
曾經(jīng)跟QQ安全管家的一個(gè)開發(fā)人員聊過天,得知QQ安全管家是一星期一個(gè)beta版本,一月一個(gè)正式版。小米的MIUI更新周期,每天都有更新給榮譽(yù)開發(fā)組,每周都更新ROM包,提供給用戶下載。百度每天都會(huì)有上百次更新升級(jí)上線,網(wǎng)頁(yè)搜索的結(jié)果頁(yè)每一天都有幾十個(gè)等待測(cè)試上線的升級(jí)項(xiàng)目。可見快速迭代是多么許多公司都推薦的一種開發(fā)模式。
還有一點(diǎn)要注意,快速迭代,不是說一定要做好了,才能上線,半成品也能上線。
在沒有上線之前,你怎么知道哪好那不好。所以半成品也是可以出門的,一定不要吝惜在家,丑媳婦才需要盡早見公婆。盡早的讓用戶去評(píng)判你的想法,你的設(shè)計(jì)是否可以贏得用戶的喜愛??焖侔l(fā)出,緊盯用戶反饋。百度完成了第一版的搜索引擎,也是讓用戶去做的選擇。用百度CEO李彥宏(Robin)的話來說“你怎么知道如何把這個(gè)產(chǎn)品設(shè)計(jì)成最好的呢?只有讓用戶盡快去用它。既然大家對(duì)這版產(chǎn)品有信心,在基本的產(chǎn)品功能上我們有競(jìng)爭(zhēng)優(yōu)勢(shì),就應(yīng)該抓住時(shí)機(jī)盡快將產(chǎn)品推向市場(chǎng),真正完善它的人將是用戶。他們會(huì)告訴你喜歡哪里不喜歡哪里,知道了他們的想法,我們就迅速改,改了一百次之后,肯定就是一個(gè)非常好的產(chǎn)品了?!?/span>
簡(jiǎn)單地分享了一下對(duì)敏捷開發(fā),快速迭代的理解。這里再給大家一個(gè)連接,51CTO的《專題:初探敏捷開發(fā)》,供大家參閱。