Scrum敏捷開發(fā)培訓分享(一)
近期公司在著重推進項目的敏捷開發(fā),雖然以前也接觸過,但還是去參加了下敏捷開發(fā)的培訓,對于產品經理來說,如果推行了敏捷開發(fā),則產品經理的協(xié)調溝通作用會更加的凸顯出來,畢竟前期沒有文檔,只有演示稿甚或是圖紙的情況下,溝通是非常重要的,特別是確認所有的需求功能點,并給需求功能點的優(yōu)先級排序,確定敏捷開發(fā)的迭代周期,這些都需要溝通去解決,例行的會議也會比較多,產品經理肯定都要參與其中。對互聯網行業(yè)來說,敏捷開發(fā)能更快速的響應不斷變化的需求,對產品經理來說,如果同時參與的項目多一點的話,那就更加的杯具,你會發(fā)現一天下來,思緒都會串線。所以說瀑布有瀑布的好處,敏捷有敏捷的好處,看從哪個角度看,中大型的項目用敏捷更加合適,小型項目還是瀑布比較合適。
下面就講講何為敏捷?敏捷開發(fā)是一種面臨迅速變化的需求快速開發(fā)的能力,它有四個核心思想:第一是強調面對面的溝通,也就是說溝通很重要,人和人的相互交流勝于任何流程和工具;第二是要把精力集中在可執(zhí)行的程序上,可以運行的產品勝于編制綜合性文檔,也就是強調了原型、模型、Demo等的重要性;第三個是團隊合作和團隊激勵,合作勝于談判,敏捷開發(fā)能將需求、開發(fā)、測試等全部團隊成員融合成一個整體,大家都是一條線上的螞蚱;第四個是超強的適應能力,適應變化勝于按部就班,敏捷開發(fā)的特點就是快速,對于互聯網行業(yè)來說,這點非常重要。那么為什么要采用敏捷開發(fā)的方式呢,有如下幾點:
互聯網行業(yè)的特點
就是以快吃慢,例子見微信和米聊;版本發(fā)布成本很低,一般都是迭代發(fā)布的,例子很多,有很多產品都是一周或者兩周發(fā)布一個小版本;追求創(chuàng)新,或者說是適度的創(chuàng)新,無論最終有沒有真的創(chuàng)新,但初衷肯定都是要創(chuàng)新的;需要快速響應用戶的變化,時間就是一切,同一個產品先發(fā)布和后發(fā)布的差別是很大的;需求不確定性高,這個在軟件行業(yè)也很常見;關注用戶行為,倡導以用戶為中心的產品設計。正是這些特點,從而使敏捷開發(fā)順理成章的成為首選。
產品開發(fā)的特點
正如前面所說,產品需求的不確定性是比較高的,往往做著做著又會發(fā)現新的需求,或者發(fā)現原來的方向已經不對了,就需要馬上進行調整;再者需求的變更是不可避免的,我想這點很多人都認同。
降低項目風險,確保正確的方向
敏捷開發(fā)能夠縮短項目的反饋周期,因其將項目分成了若干個迭代周期,每個迭代周期結束都能立即反饋。且通過不斷的溝通,還能減少理解上的偏差,配合反饋,減少誤解,從而降低修正錯誤的代價。且每個迭代周期的結束都能接受驗證,從而能快速的適應變化,及時的適應新的需求,保證產品的正確性。
那么如何進行敏捷開發(fā)呢?敏捷開發(fā)的體系建設主要有如下六個方面:
1、組織建設,也就是團隊建設,建立以產品經理為主導,包含產品、設計、前后臺開發(fā)和測試的team,快速進行產品迭代開發(fā);扁平化的團隊管理,大家都有共同目標,更有成就感;
2、敏捷制度,要找準適合自身的敏捷開發(fā)方式,主要是制定一個完善的效率高的設計、開發(fā)、測試、上線流程,制定固定的迭代周期,讓用戶更有期待;
3、需求收集,這個任何方式下都需要有,需求一定要有交互稿,評審通過后,一定要確定功能需求列表、責任人、工作量、責任人等;
4、工具建設,是指能夠快速完成某項事情的輔助工具,比如開發(fā)環(huán)境的一鍵安裝,各種底層的日志、監(jiān)控等平臺,發(fā)布、打包工具等;
5、系統(tǒng)架構,略為超前架構設計:支持良好的擴容性和可維護性;組件化基礎功能模塊:代碼耦合度低,模塊間的依賴性??;插件化業(yè)務模塊:降低營銷活動與業(yè)務耦合度,自升級、自維護;客戶端預埋邏輯;技術預研等等;
6、數據運營與灰度發(fā)布,點擊率分析、用戶路徑分析、渠道選擇、渠道升級控制等等。
敏捷開發(fā)的經驗
重點明確,及時調整。通過分析需求的緊急性和重要性,做出優(yōu)先級的判定,優(yōu)先級從1排到10,沒有重復;迭代中嚴格按照優(yōu)先級順序開發(fā),即使最后時間不夠,也能保證最需要的功能開發(fā)完成;每次迭代前重新調整需求的重要性,及時加入重要的業(yè)務需求和用戶需求,將重要性不高的需求往后調整。
傾聽用戶的聲音、相信用戶的直覺。在迭代中充分關注線上版本用戶的反饋,并且主動聯系用戶了解困擾,在當個迭代或下個迭代快速優(yōu)化;通過對用戶反饋的及時響應獲得用戶的認可和口碑。
勇于創(chuàng)新、小步快跑。在迭代中勇于創(chuàng)新,快速實現創(chuàng)新想法,并在后續(xù)的迭代中不斷優(yōu)化。
持續(xù)不斷地發(fā)現問題,解決問題。通過每天的版本發(fā)布來檢驗團隊在每日立會上做出的承諾;測試和驗證功能的開發(fā)程度;對于功能的實現第一時間給出反饋,并能快速調整,而不會像瀑布式等到開發(fā)末期才發(fā)現實現上的問題。
持續(xù)提升整個團隊的產品能力。專門的團隊面向一個產品領域;持續(xù)優(yōu)化用戶體驗和產品流程;通過產品迭代的心跳保持產品團隊的用戶和市場敏感度;提升產品經理的產品感覺、提高技術團隊的產品意識;團隊伴隨業(yè)務而成長,獲得更高的成就感。
最后,敏捷不僅僅是一個項目快速完成、而是對整個產品領域需求的高效管理;敏捷不僅僅是簡單的快,而是短周期的不斷改進、提高和調整;敏捷不僅僅是開發(fā)完成快速就上線,而是快速形成原型、全員測試反饋修改提高;敏捷不僅僅是一個版本只做幾個功能,而是突出重點、果斷放棄當前的非重點;敏捷不僅僅是隨時增加需求,而是每個迭代周期對需求的重新審核和排序。