
瀑布模式
瀑布模型是比較傳統一種開發模式,特別是在2B的傳統企業,包括ERP,MES,WMS,CRM,OA,IBMS等系統當中可以經常見到他們的影子。
現在這種模式仍然流行在一些大的項目或者是外包的一些項目當中。

如上圖所示,瀑布模型優缺點都很突出。
根據以上分析,我們知道瀑布模式強調里程碑,重視文檔,強調分工,避免變化,凡事喜歡規劃和做計劃,但是代價就是拖沓笨重,反應遲鈍。
敏捷開發借助互聯網浪潮開始流行起來,這也是2C的業務特點決定的,看過QQ和微信長大的人,這種體會特別深。互聯網產品不可能一步規劃到位,一般都是核心功能優先,比如微信,先是實現聊天功能,然后才是漂流瓶,錢包,小程序……
互聯網業務有何特點呢?借用雷軍的七字訣:專注、極致、口碑、快。
敏捷無疑更加貼近互聯網的這種業務需求,如果純用瀑布模式,估計黃花菜都涼了。
敏捷還有一個更極致的做法,直接上PPT通過類似眾籌的方式進行開發,這種從群眾中來到群眾中去的個性化定制功能非常的有創意,如果眾籌的結果是沒有人感興趣,就可以直接否定該產品開發,可以避免無謂的“庫存”導致的開發壓力,節省巨大的成本浪費。

Scrum的意思是橄欖球運動的一個專業術語,表示“爭球”的動作。把一個開發流程的名字取名為一項體育運動,你一定能感受到其中的碰撞,沖突,激情。如果是這樣,Scrum如何能提高開發效率呢?
敏捷開發是一種指導思想,Scrum和XP則是敏捷開發的具體開發流程,這里只選擇Scrum進行探討。
我們先來看下Scrum的三個角色:

Scrum是一個理想化的開發流程,前提條件是角色完整,分工明確,配合默契,溝通融洽。如果出現其中任何一個環節的故障,可能都會破壞流程的效率,比如,開發經理和流程管理員脾氣一樣倔強,脾氣互斥,那么整個效率就打折扣。我感覺在招聘人員,團結組建的過程中,我們務必要尋找氣味相投的人,這可以減少開發過程中的沖突。
Scrum和瀑布的本質區別是,一個以文檔為本,一個以人為本。在以人為本的團隊里,領導者的文化就是團隊的文化。
如果領導者不透明,喜歡玩虛假,自大,官僚氣十足,這個團隊基本上就沒什么希望了。人必須是主人,有能動性,這個高度困難。因為如何讓團隊覺得公司的事是我家里的事是高度困難的,因為有些開發人員自己家的事都沒怎么認真過。想要做到這點,需要老板重視,否則中層領導我感覺一般都心有余力不足。



計劃紙牌怎么怎么用的呢?比如A程序員開發一個功能,需要5個小時,B程序員認為只需要半小時,那他們各自取相應的牌,藏在手中,最后攤牌,如果時間差距很大,那么A和B就可以討論A為什么要5個小時...
每個人回答完成后,要走到黑板前更新自己的sprint燃盡圖;



大家如果認真的看完整個Scrum的開發流程,會發現這個過程還真的是很完美,不妨可以用在你的團隊開發過程中。
瀑布敏捷是有邊界的,我覺得團隊在整體學習開發模式優劣后,需要對二者的邊界有一個清晰的認識,并在整個團隊上下都要達成一致的共識,否則后果可能會很嚴重。雙方的邊界如下圖所示

為什么說共識很重要呢?就我踩過的坑進行盤點,有如下幾個問題:
就個人的經驗來看,瀑布和敏捷不是天然分割的,只是針對業務各有側重,應該是你中有我,我中有你的混合體。比如微信第一版的時候,聊天核心功能的迭代一定也有內部的小瀑布,如果沒有計劃-開發-測試-運維根本就無法進行下去。
再比如瀑布,特別對創業團隊,剛開始人手不多,分工不明,架構師有可能要去畫原型圖,做需求調研;產品經理業務模糊,還在探索,各種短板和不足就像黑洞一樣存在你的周邊,你渾然無知。如果你一定要等整個調研完成,PRD文檔周全再做開發,估計也要歇菜。
既然各有利弊,那么中間的這個平衡點如何拿捏就非常重要,如何在前期設計的時候既能不過渡導致交付延遲,又能兼顧后續的演進和變化導致的修改可控,這需要開發經理豐富的實戰歷練和審時度勢的判斷力。
另外叨叨一下,開發模式貫穿做整個開發的生命周期,但是團隊各個成員包括產品經理,技術經理,架構師,開發人員對項目管理的流程理解各不相同,深淺不一,很難想象如果大家沒有達成共識,整個開發團隊的效率會有多高?但是現實當中,大部分團隊成員沒有開發模式的培訓和上下達成一致依然在進行著開發的工作……
轉自: https://www.cnblogs.com/jackyfei/p/10078988.html
???????????????? ?END ?????????????????
推薦閱讀
【1】jetson nano開發使用的基礎詳細分享
【2】Linux開發coredump文件分析實戰分享
【3】CPU中的程序是怎么運行起來的 必讀
【4】cartographer環境建立以及建圖測試
【5】設計模式之簡單工廠模式、工廠模式、抽象工廠模式的對比
本公眾號全部原創干貨已整理成一個目錄,回復[ 資源 ]即可獲得。