敏捷開發流程是最近很流行的方法. 它強調要以 iterative 和 incremental 的方式來進行. 可是這樣的做法是怎麼出現的呢? 應該不會平白就發生吧? 讓我們來看看它的歷史吧.
 
d0133561_4ed323e31a9d2  
 
1930: Bell 實驗室提出了利用一連串的 PDSA (plan-do-study-act) 來改善品質. 
 
1940: 戴明 (Edwards Deming) 受到 Bell Lab 的啟發, 提出了 PDCA (Plan-do-check-act), 也就是戴明環, 用來提高產品質量和改善產品生產過程. 每個循環是獨立的, 也就是每個循環可以是無關的. 
 
1950: NASA 開始將 IID 的觀念實施到專案中, 來開發超音速噴射機. 並且認為專案成功的主要原因之一, 就是使用了 IID 的做法. (W.H. Dana, The X 15 Lessons Learned, NASA Dryden Research Facility, 1993)
 
1960: 受到硬體專案成功的影響, NASA 開始將 IID 使用到軟體開發的專案上面.
 
1972: O’Neill 將 IID 用在 life-critical system, 並且這系統超過一百萬行的程式碼. 獲得了IBM Outstanding Contribution Award.
 
1976: Tom Gilb 寫了一本叫做 Software Metrics, 裡面有詳細介紹的他使用 IID 的經驗. 他是早期推廣和使用 IID 最熱心的人士之一.
 
1988: Richard Zultner 試著將戴明的 14 點應用到軟體開發上面, 所以在 1988 年提出了 "The Deming Approach to Quality Software Engineering”.
 
1990: Rational 公司(提出 UML 的那家)的 Kruchten and Walker Royce, 提出了 RUP, 也是一個很流行的 IID 流程.
 
1995: 在微軟 J. McCarthy 的 "Dynamics of Software Development 一書中, 很多 IID 的實踐可以在本書中找到, 像是 daily build 和 smoke test 等等.
 
2000: 美國國防部 (DoD) 將美軍軍規 MIL-STD-2167 軟體發展與文件製作 (Software Development and Documentation), 改成擁抱 Evolutionary Acquisition (EA) and Spiral Development (SD)
 
2001: 17 個 guru 聚在一起, 對於好的軟體開發方法該有哪想作法, 提出了一些見解. 也就是有名的 agile menifesto. 
 
由這些歷史看來, IID 並非只能用來軟體上面, 一開始都還跟軟體無關. 所以不要再問 agile 能不能用在硬體上面, 當初, agile 還是向非軟體界借鏡的.
 
另外, 看起來新的東西, 好像都是在大公司的研究部門孵化, 然後才漸漸被人採用. 一般小公司或是新創公司, 為了求生存, 好像沒空搞這些有的沒的.
 
不過, 有趣的是, 現在反而大型公司, 或者是非軟體公司不容易執行 agile. 可能是因為組織的笨重, 或是保守的心態, 已經無法快速反應變化了....
 

    全站熱搜

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