計劃階段的目的是確定項目目標,並且對項目完成後會是什麼樣產生一個高屋建瓴的看法。計劃通常會伴隨着可行性研究,即從經濟、操作模式,以及技術要求等多方面對項目進行考察。經濟方面考量的是此項目是否有足夠的損益(P&L)潛力。操作和技術方面則從適應性、人力資源和其他日常事務的角度進行論證。計劃階段的成果是給項目設定其體的目標,給出時間表,併爲整個系統做出預算。
在此過程的分析階段,團隊將彙集各個方面對系統功能的要求,決定項目的規模範圍(在當前版本中包含哪些功能以及不包含哪些功能),並向用戶和管理層徵求初期反饋意見。分析階段可以說是開發過程中鼓重要的階段,因爲只有在這個階段,項目的各個相關方纔能在預算允許的條件下最大限度地塑造系統功能。
設計階段將系統功能的詳細規格具體化,包括流程圖、業務規則、界面以及日常報表和其他文檔的輸出格式等。設計階段的一個目的就是將整個工程分成各個模塊,並分配給各個軟件開發團隊,各個模塊都有設計良好的接口,不同軟件開發團隊開發的模塊可以無縫拼接起來。這種對內部計算機模塊軟件包的早期規範能讓將來不同軟件開發團隊之間溝通更爲流暢,項目也能得以平穩運行。設計階段還要列出測試用例,即功能路徑,這在將來會用做驗證代碼正確性的藍本。
最後的階段是實施階段,這就涉及實際編程了。軟件開發團隊或者是個人程序員按照設計階段的要求開發軟件模塊。開發團隊先按照之前定義的測試用例對每個模塊自行測試,當項目管理對整個開發的單獨模塊都滿意後,就可以開始項目的整合工作了。整合,顧名思義,就是將各個單獨的模塊組裝到一起,形成一個新的功能系統。
儘管計劃周密的項目在帷合階段不會遇到太大的問題,但是仍然會有剩餘工作需要處理。爲了保證系統不同模塊之間正確溝通,可能需耍編寫一些腳本,另外還可能需要開發安裝包,最重要的是需要對系統進行詳盡測試以保證正常運行。測試工作一般由開發人員之外的專職人員來進行。測試人員要根據設計階段定義的測試流程認真勤勉地監控系統每個功能的運行情況,然後記錄所有的“漏洞”( bugs)—也就是測試用例中預想結果與實際結果的不同之處。這些程序漏洞將被回送給開發團隊來解決,隨後再返回到測試團隊。
實施階段成功完成後,就進入了系統的部署和維護階段。在維護階段中,將解決系統中所有與預期表現不相符的問題,例如新發現的漏洞等。