敏捷開發(fā)
CDALEVEL Ⅲ 數(shù)據(jù)科學(xué)家考試大綱
1. 領(lǐng)會:理解敏捷式開發(fā)的關(guān)鍵思想钾恢,了解敏捷式開發(fā)相比于傳統(tǒng)瀑布式開發(fā)模式的
區(qū)別及其優(yōu)勢氯析。
2. 熟知:理解 Scrum、看板余素、極限編程独柑、精益編程等敏捷式開發(fā)方法盈厘,熟悉 Scrum 開
發(fā)規(guī)則,熟悉 Scrum 團隊成員與角色霍骄。
3. 應(yīng)用:應(yīng)用 Scrum 模式進行數(shù)據(jù)科學(xué)項目開發(fā)
敏捷式開發(fā)的關(guān)鍵思想
學(xué)習(xí)這個其實都不是什么系統(tǒng)讀台囱,都是學(xué)學(xué)容器,體驗微服務(wù)之類读整,然后模擬的做點試驗簿训,團隊都不算,但從各種體驗和思想上去理解敏捷才是更重要米间,敏捷是怎么產(chǎn)生的强品,為何可以敏捷,和之前有何不同屈糊,給我們的思想和啟發(fā)的榛,而不是看幾本書學(xué)點技術(shù)會的,那就是不確定性逻锐,所以學(xué)這個也是不確定夫晌。每個公司或團隊是否適用,或者什么項目和開發(fā)適合昧诱,自己的需求和客戶需求等等晓淀。
這就像互聯(lián)網(wǎng)的快速迭代其實和社會發(fā)展一樣,應(yīng)對環(huán)境的變化盏档,應(yīng)對客戶需求的變化才是大難題凶掰。就像我們青春期時候叛逆,反感父母給的學(xué)習(xí)生活蜈亩、戀愛或工作上建議懦窘,又比如我談戀愛,開始從對異性一無所知到不斷接觸試錯稚配,還比如精益創(chuàng)業(yè)畅涂,團隊快速組件,快速迭代道川,宣傳裂變午衰。所有自己體會總結(jié)就是要空杯學(xué)習(xí)苹丸,吸取前人的經(jīng)驗的同時也要敢于根據(jù)自己和當(dāng)時情況,從頭開始的一種應(yīng)對不確定性的思維苇经,并且重要的也是一些共同的是要先忘掉所謂的建議流程,但不是亂來宦言,而是重新定義問題扇单,找到問題本質(zhì),運用新的思維去分析和解決這些奠旺。
對的蜘澜,這其實就是很多學(xué)習(xí)平臺在強調(diào)的元認知和提升認知的重要性,就像大數(shù)據(jù)要先想到各種分析維度一樣响疚,總是按一些個人總結(jié)是局限的鄙信。在變化創(chuàng)新的智能時代,更需要學(xué)習(xí)這些認知能力忿晕,所以正如1中作者說的從一種尋找固化的“標(biāo)準”執(zhí)念装诡,逐漸轉(zhuǎn)變到接受“不確定性”,不再試圖評估所謂的“成功”践盼,不再說服他人接受自己的所謂“正確”鸦采。這也是一種價值和人生態(tài)度,大家不再是盲目追逐什么咕幻,而是找到自己的態(tài)度和定位渔伯,遇見更好的自己,從容做好當(dāng)下肄程,并努力實現(xiàn)理想锣吼,憧憬未來。
所有說了這么多不確定的廢話其實就是說敏捷已經(jīng)是時代思維蓝厌,不只是研發(fā)玄叠,也從研發(fā)運營貫穿到業(yè)務(wù)了,還有敏捷市場褂始,人力資源等等诸典。回到比較接近的IT吧崎苗,看下敏捷式開發(fā)相比于傳統(tǒng)瀑布式開發(fā)模式的區(qū)別及其優(yōu)勢狐粱,雖然對我可能還是有些遠,不確定性更多其實胆数。
敏捷式開發(fā)相比于傳統(tǒng)瀑布式開發(fā)模式的區(qū)別及其優(yōu)勢
瀑布模型的優(yōu)點:
1肌蜻、需求設(shè)計開發(fā)分開,可以容易劃分工序和檢查點
2必尼、前一階段完成后只要關(guān)注當(dāng)下和后續(xù)階段
3蒋搜、可在迭代模型中每輪迭代很類似一個小的瀑布模型篡撵。
增量迭代應(yīng)用于瀑布模型。每次迭代產(chǎn)生一個可運行的版本,同時增加更多的功能豆挽。每次迭代必須經(jīng)過質(zhì)量和集成測試育谬。
4、提供了各個階段的指導(dǎo)參考模板帮哈,便于設(shè)計膛檀、編碼、測試有章可循娘侍。
瀑布模型的缺點:
1咖刃、階段劃分固定,會產(chǎn)生很多無用的文檔憾筏,工作量大
2嚎杨、只有一個階段的開發(fā)完成,才能看到結(jié)果
3氧腰、通過過多的強制完成日期和里程碑來跟蹤各個項目階段枫浙。
4、不適應(yīng)用戶需求的變化
瀑布模型也是來自傳統(tǒng)工業(yè)管理古拴,所以例子就非常多了自脯,造飛機、輪船斤富、汽車啥的就是
敏捷開發(fā)的特點:
1膏潮、原則是保持簡單,所以一頁紙能說明得就用一頁紙满力,重交互而不是流程
2焕参、可以演示交互的軟件重于求全完備的文檔
3、協(xié)作重于談判PK
4油额、隨時應(yīng)對需求等變化叠纷,所以更以解決需求問題為中心
我們看很多服務(wù)模式就是適合敏捷,比如婚慶策劃的服務(wù)潦嘶,當(dāng)然更重要是看客戶是否可以完整涩嚣,清晰描述需求。
如果客戶大概有個模板掂僵,并明確描述自己的主題之類航厚,那么只要和策劃溝通好具體細節(jié)就好了,接下來策劃直接給出?案例結(jié)果給客戶再繼續(xù)锰蓬,這就是比較貼近瀑布模式了幔睬。但往往客戶也無法知道自己的需求了,就看看模板說個喜歡的芹扭,然后設(shè)計可以先做個樣例麻顶,圖片赦抖、案例視頻甚至是AR等,給客戶反饋提出改進辅肾,如此迭代队萤,甚至可能最后幾天,客戶又有新的想法靈感做些改變矫钓,這時候就是貼近敏捷的方式了浮禾。當(dāng)然這需要便捷和成本小的場景了。
理解 Scrum份汗、看板、極限編程蝴簇、精益編程等敏捷式開發(fā)方法杯活,熟悉 Scrum 開發(fā)規(guī)則,熟悉 Scrum 團隊成員與角色熬词。
常見敏捷開發(fā)方法
Scrum
scrum來源于橄欖球旁钧,寓意“密集爭球”,就是一個團隊朝著一個共同目標(biāo)互拾,一起向前快速推進歪今,這里就是指我們開發(fā)中總是以當(dāng)前的階段為重,比如某個重要測試遇到問題颜矿,人手不夠寄猩,那么其他相對不緊急的階段的其他人員就可以幫你測試,研發(fā)等也是類似骑疆。
scrum只是個大概框架田篇,還需要多實踐才能體會了
scrum的開放原則:
1、保持簡單
2箍铭、接受變化: 變化的關(guān)鍵是先把工作細化分成小段泊柬,然后可以根據(jù)實際情況調(diào)整優(yōu)先級順序
3、不斷迭代:一般是小于30天一次迭代诈火,迭代過程sprint兽赁,時間為1~3周
4、協(xié)作冷守,這是關(guān)鍵刀崖,減少一切不必要的中間環(huán)節(jié)
5、減少浪費:真正發(fā)現(xiàn)問題本質(zhì)拍摇,類似非暴力溝通講得蒲跨,找問題看客戶的真正需求是最優(yōu)價值的事情。這也是精益創(chuàng)業(yè)的精髓
一般是5~9人團隊
總之過程是以產(chǎn)品為目標(biāo)授翻,建立需求列表或悲,做sprint計劃孙咪,執(zhí)行,每天討論問題和進展巡语,一段時間演示結(jié)果翎蹈,再做回顧反思,如此重復(fù)男公。
人員組成:產(chǎn)品負責(zé)人荤堪,scrum master , 開發(fā)團隊team
但是人員要求也相對較高枢赔,類似開源團隊澄阳,復(fù)合型T型能力架構(gòu),專注一個核心技能踏拜,并要學(xué)習(xí)廣泛涉獵其他技能碎赢,互相幫助學(xué)習(xí)。
同時開發(fā)是要嚴謹精益速梗,但是又不是階段性的完美肮塞,而是類似漸進式開發(fā)一樣,逐步迭代優(yōu)化姻锁,也是種boosting的理念枕赵。
看板
可以參考?之前的《敏捷無敵之DevOps時代》云享會學(xué)習(xí)筆記-實例化看板
http://www.reibang.com/p/8fd3b207807d
總結(jié)看板的原則:
1、同一個時間段注重幾個重要事位隶,保持專注
2拷窜、減少浪費
3、客戶需求是第一的
可視化
限制在制品
管理流動
顯式化流程規(guī)則
簡歷反饋環(huán)路
協(xié)作式改進涧黄,試驗中演進装黑。
而極限編程和精益編程其實有很多相關(guān)和同樣的思維,這之前很重要的是理解精益的思維弓熏,從一般的精益創(chuàng)業(yè)來說恋谭,精益創(chuàng)業(yè)就是精益思維運用到創(chuàng)業(yè)的過程中去。
目前接觸很多類似的項目挽鞠,當(dāng)然都是偏互聯(lián)網(wǎng)支持的其實都是可以看出很多相似的精益思想在里面
精益的目的是快速產(chǎn)品疚颊,有效傳播和反饋,驗證改進信认,一個項目定義好產(chǎn)品主要屬性目標(biāo)材义,找到一兩個客戶痛點和需求,分享和收益模式嫁赏,既可以開始通過群其掂、微信朋友圈等各渠道傳播,目的是連接最終用戶潦蝇,這時候不一定大而全款熬,只要有個主要功能和頁面深寥,即使頁面不是那么好看,然后在小心的試錯過程中迭代優(yōu)化贤牛,而很多甚至是業(yè)務(wù)和客戶都很快的加入了產(chǎn)品的創(chuàng)作惋鹅,像內(nèi)測版本一樣,更有項目參與感殉簸,就像第二種婚慶布置那樣闰集,客戶也可以操作學(xué)習(xí),甚至參與了設(shè)計般卑。然后通過持續(xù)集成發(fā)布武鲁、A/B測試,客戶分群蝠检,定制推薦等方式馬上試錯和驗證改進產(chǎn)品沐鼠。
總結(jié)精益的七個原則:
消除浪費:對客戶沒有帶來價值的事務(wù)就是浪費。?客戶有需求就馬上改進發(fā)布蝇率,創(chuàng)新的吸引也是,有優(yōu)惠活動也是馬上刽沾,不要浪費在其他地方本慕。
增強學(xué)習(xí):通過短期迭代周期、重構(gòu)侧漓、集成測試和頻繁的客戶反饋會議增強學(xué)習(xí)锅尘。學(xué)習(xí)的是發(fā)現(xiàn)真正的問題和客戶需求能力
較遲決定:管理不確定性的最佳方法是收集信息,最后的責(zé)任時刻給予承諾布蔗,打破部件間的依賴關(guān)系藤违。應(yīng)對不確定性,多客戶群多平臺都收集反饋
盡快交付:短期迭代或者小批量提供有價值的反饋機會纵揍,促進有效的決策制定顿乒。這是關(guān)鍵了
團隊授權(quán):精益專注于團隊,因為決策制定和管理的來源讓團隊了解最佳選擇和成本泽谨。專注于團隊璧榄,而不是企業(yè)架構(gòu)
建立整體:確保質(zhì)量是嵌入在整個系統(tǒng)的,系統(tǒng)需要構(gòu)建自動化測試吧雹,安裝和持續(xù)集成骨杂。?自動化的工具使用是關(guān)鍵,無論是開發(fā)還是業(yè)務(wù)銷售雄卷,能快速下單就不要用微信轉(zhuǎn)賬等
目光長遠搓蚪,腳踏實地,快速失敗丁鹉,快速學(xué)習(xí)妒潭。目光是產(chǎn)品悴能,是更多的客戶數(shù)據(jù)反饋和功能,一兩個失敗是正常的杜耙,在快速的運營數(shù)據(jù)分析同時支持業(yè)務(wù)的應(yīng)變改進搜骡。
核心思想還是以產(chǎn)品和客戶為中心
極限編程
極限編程其實就是為了適應(yīng)精益創(chuàng)業(yè)的思維過程
極限的方式也是快速發(fā)布、試錯佑女、驗證和反饋改進
精益編程
類似的就可以體會下
精益軟件開發(fā)的七大原則:
消除浪費
強化學(xué)習(xí)
注重質(zhì)量
推遲承諾
盡快交付
尊重員工
優(yōu)化整體
準時化開發(fā)=迭代開發(fā)+持續(xù)集成+多次交付
零庫存? =?每次迭代都給出可以發(fā)布的版本
參考
《敏捷無敵之Devops時代》?王立杰?許舟平? 姚東
《DevOps實踐——馭DevOps之力強化技術(shù)棧并優(yōu)化IT運行》?