2010年9月19日 星期日

Q42 反覆發展法僅適用在你希望能成功的軟體專案

You should use iterative development only on projects that you want to succeed. - Martin Fowler

『反覆與漸增』(iteative and incremental)是大部份近代軟體發展法的核心,如UP,XP,SCRUM等,這是大家都懂,但卻不容易做到的觀念,何謂反覆發展(iterative development)?就是『接受改變』(embrace change)(Beck2000)。我曾翻看去年幾篇部落格文章,諸如"千奇百怪的需求"、"好人難為"、"早點來"等,內容都談到發展者對客戶或老闆的需求改變,心裡十分痛苦,我也曾在相關的意見箱哩,說這種現象並不希奇,問題是你要用何種發展方法來應付這種『自然現象』,Agile methods,MDA,或者遵守一些設計原則,如OCP,DIP ...,或者一些設計樣式(design patterns)!我看都可以, 不過不管用何種方法,就如Martin Fowler所講,『反覆與漸增發展方法』應該是核心所在。

追蹤者