簡介
軟體過程方法涉及交付(deliverables)和工件(artifacts)的預定義、軟體產品在項目團隊中的開發與維護。過程方法的套用可以完善
軟體設計、
產品管理和
項目管理。
敏捷開發是現代軟體開發中被廣泛使用的範式。過程模型(英語:process models)則意圖解決軟體過程中的混亂,將軟體開發過程中的溝通、計畫、建模、
構建和部署等活動(activities)有效地組織了起來。
軟體過程為軟體的開發定義了一個框架,將自動化工具、軟體開發方法和質量管理緊密結合在了一起。軟體過程構成了軟體項目管理控制的基礎,創建了一個環境以便於技術方法的採用、工作產品(模型、文檔、報告、表格等)的產生、里程碑(milestones)的創建、質量的保證、正常變更的正確管理。
歷史
軟體開發方法(英語:software development methodology, SDM)框架在20世紀60年代開始出現。在信息系統的構建中,
系統開發生命周期(SDLC)可被視作最早的形式化方法。SDLC的主要想法是,在採用框架時應當“以審慎、結構化和方法化的方式開發信息系統。生命周期中的每個階段,從概念提出到系統交付,都應當嚴格、依次地進行”。當時的軟體開發目標是,“在大型商業集團中開發大規模的功能性商業系統,系統需要承載大量數據處理和數據運算任務”。
方法、過程和框架覆蓋範圍甚廣,包含從日常開發的步驟到為特定項目量身定製的靈活框架。一些情況下,組織會正式發布描述過程的文檔。
軟體開發方法歷史中的重要事件有:
1980年,結構化系統分析與設計方法(Structured Systems Analysis and Design Method, SSADM)
1991年,快速應用程式開發
2005年,敏捷統一過程(Agile Unified Process, AUP)
2010年代,基於大規模的敏捷框架(Scaled Agile Framework, SAFe)
2010年代,大規模Scrum(Large-Scale Scrum, LeSS)
實踐
系統/軟體的市場是什麼?
競爭對手有哪些?
系統/軟體的運行平台是什麼?
這個項目可用的時間有多少?
項目需要是什麼?
經過這些年,從最早也最簡單的
瀑布模型開始,已經開發出了許多不同的模型。但是,隨著軟體變得更大和更複雜,這種開發方法已經出現負面影響,尤其是牽扯到有大型團隊的時候。疊代的模型得到了發展,它包括
原型法、演化原型法、
增量開發、
螺旋模型、
V模型和
混沌模型。
這些模型的使用大部分都局限於項目的總體管理,但是現在認為,如果在項目的單獨部分都由最合適的模型控制,則這個項目受到了更好的控制。例如,一個項目用增量開發模型,但是在每一個增量過程,文檔是按照
瀑布模型創建和管理,而代碼開發使用V模型管理。
每個項目的生命周期的正規性和複雜性受到很多因素的制約,包括預算約束,經驗,項目規模和複雜度,開發隊伍。
敏捷軟體開發
敏捷軟體開發(英語:Agile software development),又稱
敏捷開發,是一種從1990年代開始逐漸引起廣泛關注的一些新型
軟體開發方法,是一種應對快速變化的需求的一種軟體開發能力。它們的具體名稱、理念、過程、術語都不盡相同,相對於“非敏捷”,更強調程式設計師團隊與業務專家之間的緊密協作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟體開發過程中人的作用。
敏捷軟體開發(或稱快速程式開發RAD)描述了一套
軟體開發的價值和原則,在這些開發中,需求和解決方案皆通過自組織跨功能團隊達成。敏捷軟體開發主張適度的項目、進化開發、提前交付與持續改進,並且鼓勵快速與靈活的面對開發與變更。這些原則支持許多
軟體開發方法的定義和持續進化。