10年前,Martin Fowler 和其他10多位軟件開發領域的領軍人物共同起草了《敏捷宣言》,這也標志著敏捷開發方法的正式誕生。這些年來,作為敏捷開發方法的專家,Martin Fowler一直在為敏捷開發的普及而努力。日前,作為特邀演講嘉賓的Martin Fowler來京參加“中國敏捷開發”大會,本報記者就敏捷開發的相關問題采訪了這位敏捷開發界的泰斗人物。
到目前為止,軟件開發領域最為常用的開發方式是瀑布式開發方法,它強調軟件開發要按照嚴格的流程,即按照需求分析、設計、編碼、測試、維護的步驟來完成軟件。與之相比,敏捷開發并不要求有嚴格的軟件開發流程,而強調快速交付、快速迭代、快速集成,從而使得軟件開發項目盡快投入使用,比如測試驅動開發甚至顛覆了瀑布式開發方法的流程。兩種開發方法有著根本上的差別。那么,敏捷開發方法未來是否會最終取代瀑布式開發方法呢?
對此,Martin Fowler回答非常謹慎,他并沒有給出記者所預想的敏捷開發方法會取代瀑布式開發的回答。他說自己不愿意對未來做出預測,但是他認為敏捷開發方法一定會繼續普及。
“我認為,軟件開發領域應該同時存在多種開發方法,每種方法都有自己的長處和短處,也都有自己擅長的領域。敏捷開發也并一定適合所有領域。”Martin Fowler回答說,“但可以肯定的是,敏捷開發已經成為了主流,并且敏捷開發適合的領域還在拓展。”
Martin Fowler還以公共基礎設施管理系統和戰略性的應用系統為例來說明敏捷開發的適用領域。他說:“相對而言,戰略型的應用開發用敏捷開發比較適合,而在公共設施領域應用敏捷則需要多權衡一下。因為前者要求快速響應,要求比較高的軟件質量,要求能夠迅速根據市場變化調整自己的開發方向,這正是敏捷開發的優勢。而對于公共基礎設施管理系統強調低成本,要求可靠、不能產生災難性的后果,在這種情況下,程序員可能更偏愛傳統開發方法。”
采訪中,Martin Fowler多次強調,軟件開發時一定不要拘泥于現有的條條框框,所有的決策都要根據具體的應用場合而定。比如,對于一個軟件按項目到底選擇哪種開發方法,以及程序員如何從傳統的開發方法向敏捷開發轉型,都是沒有通用的方法的。