軟件工程筆記:敏捷不是萬能藥

敏捷不是萬能藥

— 筆記整理自 北京理工大學 計算機學院

對敏捷的誤解

  • 對人的要求很高
    • 自組織,自管理,全職能
  • 敏捷沒有文檔,也不做設計
    • 不是沒有文檔,強調高效,靈活的交流
  • 敏捷好,其他方法不好
    • 爭論沒有實際意義
  • 敏捷就是XP,就是SCRUM
    • 敏捷方法成千上萬, 追求的符合敏捷宣言所倡導的就是敏捷
  • 每個項目都要遵循敏捷標準
    • 世界上沒有同一片樹葉,要做到無招勝有招
    • 有諸多因素會影響我們選擇和實施項目

宣言真的能落地麼?

  • 每次迭代後無法交付

    • 需求不清
    • 開發流程過長
    • 代碼質量不高
    • 管理混亂
  • 引入適合自己團隊的技術工程實踐

    • 測試驅動
    • 領域驅動
    • 結對編程
    • 持續集成
    • 持續交付
    • 重構
    • 以上這些根據團隊情況來引入

敏捷誤區

  • 需求拍腦袋隨意改動不是快速試錯迅速響應用戶需求(不能沒有底線和方法)
  • 代碼質量低劣不停出更新版本不是快速迭代(不考慮質量問題的出版本不能算上是迭代,無意義)
  • 不寫正規設計文檔不是降低溝通成本和最好的文檔是代碼(不要爲不寫文檔找藉口)
  • 領導站身後指揮程序員寫代碼不是結對編程(領導要做領導的事, 比程序員還專業嗎? 不要開玩笑, 最好引入專業的代碼review團隊)
  • 產品質量不靠設計靠測試不是測試驅動開發(這是對TDD的嚴重誤解)
  • 研發時間短不是敏捷(不論項目大小, 只知道喊口號, 沒日沒夜加班, 儘早交付, 這不是敏捷)

敏捷與需求分析

  • 過分追求敏捷,完全拋棄傳統瀑布模型,會導致很多問題
  • 需求分析是Scrum和XP敏捷方法最薄弱的環節之一
  • 軟件外包時問題尤其嚴重,當需求無法從最終客戶手裏獲得的時候,再優秀的方法論都是擺設,毫無意義
  • 敏捷應當把整理需求與開發一樣當做一個逐漸推進的過程,通過迭代開發等方式來降低需求錯誤的代價,努力專注核心需求,儘早產出可用的軟件來幫助需求的準確推進

不要停止思考

  • 個人與互動 勝於流程與工具
    • 如何降低溝通成本?最高效的面對面談話?
  • 可用的軟件勝於面面俱到的文檔
    • 要不要文檔? 要多少? 有什麼用? 怎麼用?
  • 與客戶合作勝於合同談判
    • 喫飯喝酒不是正確的方式
    • 如何引導客戶? 需求隨意改動不是敏捷開發
  • 響應變化勝於遵循計劃
    • 變化要解決什麼問題? 爲什麼要變? 變多少?

敏捷建議

  • 不同的團隊具有不同的最佳實踐
  • 項目人員越多,越不適合敏捷開發,最好5~6人
  • 小型團隊的入門實踐推薦: TDD,迭代和自組織團隊

結論

  • 軟件工程是非常實踐,非常工程,非常靈活的一套方法
  • 頂級目標:實現商業目標,創造高品質產品,讓客戶滿意,增強客戶盈利能力等,技術離開市場變得一文不值
  • 老闆和客戶不關心到底採用XP,SCRUM還是瀑布,只關心能隨時看到效果,隨時修正,容易應對變更
  • 敏捷不是萬能藥,不要過分迷信

擴展話題

1 ) 爲什麼要做敏捷

  • 互聯網+的時代,要求業務能夠快速多變的應對, 要求有一種開發模式能夠根據業務快速的變化而變化
  • 敏捷是一種更適合互聯網+時代的開發方式
  • 敏捷提供了一種低成本誰錯的機會,比如一個idea到上線可能只需要幾天, 這樣可以快速響應用戶來適應我們的產品
  • 這樣可以讓我們的創新能夠以一種低成本的方式來交給市場來驗證
  • 很多企業都在用敏捷:google,facebok, 以及國內的bat等主要互聯網公司

2 ) 敏捷要怎麼實施

  • 建立一個符合自己公司的敏捷標準,通常是12~15條規則
  • 需要一個團隊敏捷誠實度模型,比如第一等級,第二等級,第三等級是什麼,比如第一等級是基本可以按照敏捷歷年開一些早會,需求劃分等基本標準,依次第二,第三級別會更高
  • 根據這個敏捷模型來做一些敏捷的試點,比如:找幾個團隊,來嘗試開早會,拆分任務,回顧會議,迭代等,5~6個迭代之後,我們就可以做敏捷誠實度的評審, 看看誠實度達到了幾個等級
  • 可以藉助一些輔助工具來做一些白板和任務牆等等

3 ) 敏捷之後更高效的開發模式

  • 在一兩年敏捷操作之後, 更高效,更快的一種開發模式,比如看板
  • 看板和scrum有什麼不一樣, scrum有2~4周的迭代週期,看板則是任務驅動,更細粒度的拆分, 當一個活做完之後使得團隊可以快速的再運轉, 這種模式對團隊誠實度要求更高(業務的理解,技術能力,測試能力)

閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章