2013年10月23日 星期三

[書摘] 軟件開發成功路線圖 - 敏捷模式



前一陣子陪老婆在逛掏寶網 無意見看到這本書,介紹Agile的書很多,但是以Pattern 的方式來介紹倒是第一次看到,而且又很便宜馬上就買了下來。

所謂的Pattern 有幾個重要的元素:
(可以參考Teddy 大大的 - Design Patterns入門實作班0.5天投影片)
  • Name
  • Context
  • Problem
  • Force
  • Solution
  • Consequence
也就是說任何的方法和Pattern 的產生都是為了解決特定的問題,而Scrum其實就是把這些Pattern 組合起來的一個Process,這本書的特色知一就是以圖片的方式告訴我們,這些方法對於解決某些問題比較有效,但是對於另一個問題可能就不怎麼相關。

 這本書把要解決的問題分成兩大類:

商務價值類(帶來的好處):


  • 縮短上市時間
  • 增強產品實用性(市場價值)
  • 提高品質質量
  • 提高靈活性
  • 增加透明度 
  •  降低成本
  • 延長產品生命週期

 解決異味:

  • 商務異味:
    • 交付品質無法另客戶滿意
    • 交付新功能需太長時間
    • 有些功能客戶沒有使用
    • 軟件對於客戶不適用
    • 軟件開發過於昂貴
    • 我們與他們的對立 (RD vs QA vs Marketing vs Sales vsCustomer)
  • 流程異位:
    • 客戶?客戶無法經常性的參與
    • 另管理層訝異 - 缺乏透明度
    • 瓶頸資源 - 項目成員同時屬於過多團隊
    • 項目反覆拖延
    • Bug 追蹤系統有數以百計的bug仍未解決
    • 在Release 前需要一個固化(Code freeze )週期
    • 沒能經常集成(Integration) - 通常是Integration太痛苦

下面列出一些書本的範例:



舉例來說,如果要提高產品的實用性,把客戶拉近來作為團隊成員可能就比寫一堆文檔和用戶故事有效的多。



而要提高產品的品質,使用TDD開發模式就比較重要,會比只有使用Iteration 頻繁發佈和Stand up Meeting有用, 畢竟沒有良好的測試,越頻繁的發佈只會造成更多的慘案~:P


針對客戶想要一切的問題(不管是客戶還是老闆總是想要一切啊!!),最重要的就是把客戶拉近團隊來,並且透過backlog讓客戶了解實際的工作量。


有興趣的人可以去買這本書來讀一讀! (可惜都沒有正體中文版~:P)
張貼留言