我一直敏捷最近讀了(這個問題的部分原因是編程here極端的高德納公司把降啓發),現在一直熱衷於極限編程了好幾年。但我想知道這些方法在某些「極端」問題空間中可能會有多合適,例如編碼爲space shuttles。
您認爲如何?一些領域是否與「現代」方法本質上不相容?是否有一個明確的指標來映射給定的域到最好的方法?
我一直敏捷最近讀了(這個問題的部分原因是編程here極端的高德納公司把降啓發),現在一直熱衷於極限編程了好幾年。但我想知道這些方法在某些「極端」問題空間中可能會有多合適,例如編碼爲space shuttles。
您認爲如何?一些領域是否與「現代」方法本質上不相容?是否有一個明確的指標來映射給定的域到最好的方法?
總之,沒有沒有。不適用於每個域。
某些領域/應用程序更適合於非常嚴格的缺陷控制和測試(可能非常昂貴),並且成本必須合理(例如,生命危險) - 這些包括醫療設備,航天飛機和軍事裝備等。
許多其他域/應用程序不能證明這些費用。
即使在一個單一的領域,你會發現不同的答案(航天飛機本身的操作計算機與宇航員攜帶的筆記本電腦)。
像往常一樣,這樣的問題,答案是「這取決於」......太多的因素處於危急關頭,給每個領域的一般答案。
我認爲很多人對他們使用的方法感到滿意,並且被更新的方法所關閉。即使對於極端的問題空間,TDD和其他敏捷實踐也有明顯的好處。顯然必須在這樣的空間中進行大量的測試,特別是與少量關鍵任務應用相比。
無論您的領域如何,先期設計都傾向於在開發過程中發生顯着變化的大規模故障。引入敏捷實踐(甚至可能是混合或瀑布式和敏捷式)在我看來肯定是有益的。
我曾經和那些幫助計劃太空任務的人們說過話,比如卡西尼和火星車。每一行代碼都由整個團隊進行檢查。敏捷開發實踐都是按迭代週期工作的。在每個週期結束時,產品所有者從後面的日誌中選擇他們希望看到的下一個模塊,或者他們可能會插入一些全新的模塊。在沒有出現錯誤空間的關鍵系統中,系統的所有必要功能和規則都很早就明確設定。這意味着敏捷實踐可能不適合。
就像使用正確的工具來完成工作一樣,我說使用正確的工作方法。沒有普遍正確的答案/範例/工具/等等......都必須放在上下文中。
這個問題對於SO來說太「大」了。 – 2010-02-04 14:25:29