
近幾年,敏捷開發陸續被眾多開發團隊接受,并逐漸成為越來越多的開發團隊首選的開發方法。特別是隨著DevOps的流行,能很好匹配DevOps理念的敏捷開發得到了更大的市場空間。
敏捷開發之所以廣受認可,是因為強調持續集成、快速迭代、重構、測試驅動的敏捷開發與傳統開發方法相比,能更快速、更有效地交付給客戶可用的軟件,在市場競爭日益激烈、強調新產品快速交付的今天,能更好地支持企業創新。
然而,敏捷開發并不是一劑萬能藥,不能解決軟件開發團隊的所有問題,甚至也不能用以完全取代傳統開發方法(比如瀑布流開發)。曾有研究機構進行過調查,走向敏捷開發的公司中有73%并不完全是敏捷開發,而是敏捷開發與傳統開發同時采用。
“敏捷開發最初是作為傳統開發方法的顛覆者出現的,它摒棄了傳統開發方法在工作流程上的嚴格限制,能更好地彰顯軟件開發者個人的創造力。然而,在管理方面天生不足,比如規劃管理、需求管理、資源管理等方面?!盩echExcel公司創始人兼CEO周鐵人博士告訴記者。
TechExcel是周鐵人博士于1995年在美國加州創建的一家以軟件開發為主要業務領域的公司。最初的10多年來公司一直專注于提供軟件開發工具,近5年來逐步將業務重點轉到軟件項目管理。作為公司創立者的周鐵人對包括敏捷開發在內的軟件開發過程管理和項目管理也有著更為深入和全面的認識?;诙嗄甑能浖_發經驗的積累,周鐵人總結出了一套軟件開發的方法論——SpecDD (需求驅動開發),并基于它推出了一套軟件開發及項目管理的工具。
“讓敏捷開發的團隊有一個好的工具,更好地走上敏捷之路。這是我們推出SpecDD方法論及其相關解決方案的初衷?!敝荑F人說。
SpecDD是一個開發框架,旨在促進敏捷開發過程中的兩個交付件:可執行的軟件和量化的產品設計。周博士說,SpecDD的本質是一種混合開發模式,既兼容敏捷開發的快速、靈活的優點,同時又融入了傳統軟件開發方法在開發過程管理方面的優勢。
因為敏捷開發否定了文檔、流程,也幾乎沒有需求管理,而這些對于大型軟件項目的管理非常必要。以需求管理為例,敏捷開發的入口只有一個簡單的功能列表,而大型軟件項目的需求涉及很多人,制訂功能列表是一個比較復雜的過程,對工作量也需要進行預估。另外,由于敏捷開發沒有需求管理,也就沒有了需求用例管理,而這些用例對將來的測試是非常重要。
SpecDD要求軟件的開發過程由一組連續的迭代組成,每次迭代都含有兩個交付件:改進后的可執行軟件,可以發布給內部團隊和客戶驗證;改進后的“概念產品”,對原始需求更好的理解,包括需求、設計和質量標準的改進。可執行的軟件可以用于市場的商業發布,并為企業帶來成功?!案拍町a品”則在內部團隊進行沉淀,并讓團隊在將來持續獲得成功。
“在SpecDD需求可以被規范化表達和量化,并驅動開發實現和QA測試。量化的需求用于創建實施用例,從而構建可執行的軟件。最后,需求也可用于生成QA測試用例,以量化質量標準。”周博士表示。敏捷開發在2010年之前一直處于普及階段,這一階段的成功也主要是在小項目上的成功,而大項目的成功案例很少,這與敏捷開發在大型軟件開發時的項目管理上支持不足不無關系。隨著敏捷開發在軟件開發過程及項目管理方面的跟進,敏捷開發才開始在大型項目中立足。