精實軟體開發流程的準則

Lean Software Development Overview
http://codebetter.com/blogs/darrell.norton/articles/50341.aspx


什麼是Lean Software Development (LSD)?
LSD 是套用lean準則的軟體開發方法.

那什麼是lean? 根據National Institute of Standards and Technology Manufacturing Extensions Partnership的解釋:

“A systematic approach to identifying and eliminating waste through continuous improvement, flowing the product at the pull of the customer in pursuit of perfection.”

LSD相對於其他agile方法論來說, 它注重於策略性規劃. 所以它並不偏向管理方面(例如scrum), 也不偏向工程方面(例如XP), 但是它提供以下準則, 供你來改進軟體開發流程

以下是LSD的七個準則:

1. 杜絕浪費
在軟體開發流程中, 任何不會改進程式品質, 減低產生程式碼所需要的時間或精力, 或是不會產生價值給顧客的. 都是一種浪費.

2. 健全學習
為了要能開發系統去產生價值給客戶, 必須去學習很多事情. 有些是開發技術, 有些是需求收集確認和分析. 要有適當的安排去學會這些技能

3. 決定盡可能晚
在需要做出決定前的最後一刻, 才做出決定. 避免中間改變而導致不必要的浪費. 有時候不做任何事情也是一種決定.

4. 交付盡可能快
交付越快越好, 這是iterative development的基礎. 需求的改變通常是呈現非線性成長. 典型的9到12月的專案, 需求會有25%的修改. 而一個月的專案, 大約有1~2%的修改. 在後者的狀況下, 顧客比較願意接受在下個版本, 再加上新功能.

5. 授權給團隊
為了讓團隊能負責任, 能得到激勵, 並且凝聚在一起, 他們需要被授權, 以讓他們能對自己的結果負責

6. Build integrity in 
The authors make the distinction between perceived integrity and conceptual integrity. Perceived integrity is the customer’s experience with your software. Conceptual integrity is how well the architecture and system components flow together to bring about the perceived integrity. Obviously testing, unit and integration, is a major part of integrity

(不是很清楚他要表達什麼, 知道的人幫忙分享一下)

7. 系統性思考
不要局部最佳化, 要從整體的角度來思考. 否則將會導致tragedy of the commons(共有財的悲劇)的狀況發生

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(3) 人氣()