敏捷開發,是心頭的朱砂痣還是墻上的蚊子血?

4 評論 3742 瀏覽 16 收藏 10 分鐘

真正的敏捷團隊會說:敏捷開發,其實一點也不“敏捷”。

初讀張愛玲的《紅玫瑰和白玫瑰》是在初中,15歲少不更事只看得出作者對活在情欲里男女的奚落和諷刺。后來經歷的多了,發覺生活的瑣事無不應驗了張愛玲的話,娶了白玫瑰,最終成了桌上的米飯粒;娶了紅玫瑰,也逃不過化成蚊子血的無奈。

當我拿到敏捷的命題,腦海中浮現出的第一個念頭便是如此。傳統開發團隊花一場2-3萬的價格請敏捷教練做著培訓,真正的敏捷團隊則會搖搖頭說:敏捷開發,其實一點也不“敏捷”。

敏捷開發不是開發方法

敏捷開發誕生的標志,是2001年2月,由Martin Fowler,Jim Highsmith等17位軟件開發專家起草的敏捷宣言發表,敏捷聯盟成立。

從這個配圖,這個形式,你想到了什么?

20世紀90年代,軟件開發過程日益變重,開發效率降低,響應速度變慢;21世紀,為了應對快速變化的需求,縮短交付周期,“敏捷開發”應運而生。

敏捷開發,從本質上來說是一種思想,和共產主義宣言一樣——我們認同同樣的價值觀,也決心將這樣的價值觀發揚光大。而價值觀本身,是不具備可操作性的。所以, 敏捷開發常會和XP、SCRUM等名詞一同出現,前者是指導思想和原則,后者則是實打實的開發流程和方法。

SCRUM作為目前實踐敏捷開發過程中,操作性較強、效果較為明顯的開發方法,在國內外受到了普遍的推崇。所以在今后的系列文章中,我們將選擇SCRUM作為敏捷開發的具體開發方法,進行介紹。畢竟,我們不能去圍繞著一個虛無的概念和價值觀去討論和學習。

敏捷開發,可能一點都不“敏捷”

前幾日,我的一個朋友向我咨詢敏捷開發,言語中透露出對目前研發團隊現狀的擔憂,希望敏捷開發能夠改善團隊中的種種問題,提升開發效率。像我這位朋友這樣的情況,在國內的研發團隊中絕不是個例。

【敏捷開發】因為頂著“敏捷”兩個字,常被作為解決開發效率問題的靈藥,其實這應該是一個翻譯的問題。敏捷開發中的敏捷,更多是“靈活”“靈敏”之意。指的是對“變化”更加敏捷地響應,而不是針對開發效率。

客觀上說,當你的團隊由傳統瀑布流轉向敏捷開發的懷抱之時,你們的開發效率可能會被降低。

原因如下:

  • 更多的時間被花費在溝通上:敏捷開發強調溝通,溝通的頻率和時長都會增加,以SCRUM為例:每一個迭代周期開始之前,都要對本次迭代的需求進行充分討論,例如需求的規模、優先級等,對于新手團隊,這個討論極有可能是漫長低效的。
  • 學習成本更高:敏捷開發團隊的內部,并不做非常詳細的職責劃分。與之前的分層開發中各司其職的情況相比,對成員的綜合素質要求更高,即所謂“全棧工程師”。(當然,實際執行的過程中會有所變通,不會真的要求每個人都是全棧工程師)但是相比之前,必然會帶來更多的學習成本,間接導致開發效率的下降。
  • 收集數據花費更多的精力:敏捷開發的成熟度越高,要求的數據越多,數據的收集會帶來精力的消耗。假如工程師不能理解數據的意義,就會覺得自己在做無用功。

那我們還有必要去嘗試敏捷開發嗎?

方法本身是沒有對和錯的,紅玫瑰白玫瑰各有各的綻放。萬種風情的佳人不見得能天長地久,時間久了怕只剩下“中年女人的艷俗”。男人陰影里沒有任何光澤的白玫瑰,也能在和裁縫的關系里綻放光彩。

要判斷敏捷開發是否合適,你得明白要用敏捷開發解決什么問題。很多企業想轉型敏捷開發的原因是“開發人員的效率低下,這么多人還完不成老板要開發的功能和速度”。就像我前文提到的朋友說他們也是出于這個目,想提高開發人員的效率,更快地更多地開發出功能。

我當時就給這個朋友潑了涼水,因為敏捷開發不是用來解決所謂的“開發效率”問題的,提升開發效率可以從人的技能培養、流程優化、工具改進等方面來提升,而跟敏捷開發本身沒太大關系。

開發團隊向敏捷轉型,本質上屬于管理轉型的一部分。它不是提升團隊的工作效率,而是將整個研發體系,轉變成能夠更好響應市場快速變化的模式。它解決的是企業效益最大化的問題。絕不可從開發人員完成功能數量和速度的層面來評價。

下面我們來看一個敏捷培訓中常常出現的翻銅板游戲,這會幫助你理解敏捷開發:https://v.qq.com/iframe/player.html?vid=f0318pmtfnf&tiny=0&auto=0

敏捷開發并不能提升每個人的開發效率(翻銅板的速度),但是快速交付能夠避免一定的資源浪費,這能帶來一定程度的變快。而最大的區別,還是在于這種開發方式對于變化的響應能力。

一個敏捷團隊,相比于傳統軟件開發團隊,最大的區別在于:

  • 擁抱變化。傳統瀑布流開發方式,強調計劃。而計劃是死的,人是活的。計劃執行過程中,有人休假、有人離開都會打破計劃的執行,最終的結果就是delay。而敏捷開發的快速交付,可以擁抱這種變化。
  • 快速響應。市場環境的變化,越來越要求產品、服務的響應及時。比如按照傳統方式,規劃半年一個版本,一旦需要調整需求,后面所有的計劃都得改變,會為項目管理帶來極大的挑戰,變化的成本奇高,多數情況下會因為多數人的反對而不了了之。
  • 快速將功能推向市場變現。前幾年所有人口中的互聯網思維都離不開八個字“小步快跑,快速迭代”,而這幾個字的出處正是敏捷開發。我們不追求一次性推出大而全的產品,因為這讓試錯和調整的空間趨近于零。敏捷要做的,就是不停的推出產品,不停的調整。
  • 在有限的資源條件下,做最值得做的事。因為Backlog的每一項都具有按唯一優先級順序,都是已經排好序了,敏捷要求逐項完成用戶故事,而不是全面開花。因為其評價結果是二值的,做完就是1,做不完就是0,沒有75%一說,因為做完了才能交付,做完了才能投向市場變現。什么事最值得做,什么事就優先級最高,需要一個復雜的評定過程,在之后的文章我們會詳細說明。

最后

寫了這么多,想必各位看官已經對敏捷開發的概念有了一定的理解。在之后的文章里,我們將會帶您全面地走進敏捷開發的世界,我們拒絕掉書袋,一切以實踐和可操作性為主。敏捷開發究竟是蚊子血還是朱砂痣,待你真正理解之時自會有答案。

同時,如果您對敏捷有何疑惑或者是獨到見解,我們也歡迎您在文章下方留言。

關于敏捷開發的問題將會邀請Worktile首席架構師徐子巖,在系列結束之時為大家一一回答,敬請期待。

#專欄作家#

袁林,人人都是產品經理專欄作家。分享SaaS運營和企業管理/協作/辦公的相關知識

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自 Pexels,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 特別同意作者說的敏捷對開發的要求更高(全棧工程師),我所在的團隊就是號稱自己是敏捷的團隊,然鵝開發都是junior的。這時候是很難互為backup的,術業有專攻。

    回復
    1. 牛逼

      來自湖南 回復
    2. 厲害了

      來自湖南 回復
  2. 的確如此

    回復