PDCA循環又叫戴明環,是美國質量管理專家戴明博士首先提出的,它是企業全面質量管理所應遵循的科學程序。質量管理活動的全部過程,是質量計劃的制訂和組織實現的過程,這個過程是按照PDCA循環,不停頓地周而復始地運轉的。
ISO9001:2000標準指出, PDCA方法可適用于所有過程。其模式可簡述如下:
P--策劃:根據顧客的要求和組織的方針,為提供結果建立必要的目標和過程;
D--實施:實施過程;
C--檢查:根據方針、目標和產品要求,對過程和產品進行監視和測量,并報告結果;
A--處置:采取措施,以持續改進過程業績。
PDCA循環可通過以下八個主要步驟實現:①分析和評價現狀,以識別改進的區域; ②確定改進的目標;③尋找可能的解決辦法,以實現這些目標;④評價這些解決辦法并作出選擇; ⑤實施選定的解決辦法;⑥測量、驗證、分析和評價實施的結果,以確定這些目標已經實現;⑦正式采納更改;⑧必要時,對結果進行評審,以確定進一步改進的機會。
PDCA是使用資源將輸入轉化為輸出的活動或一組活動的一個過程,必須形成閉環管理,四個階段缺一不可。
在PDCA循環的四個階段中,每個階段都有自己小的PDCA循環。比如,ISO 9001:2000標準的管理職責(5)和資源管理(6)是PDCA循環的P階段,產品實現(7)是D階段,測量、分析(8)是C階段,改進(8)是A階段。而"改進"中的"糾正措施"則是該標準大的PDCA循環中A階段的小PDCA循環。這樣,大環套小環,一環扣一環,小環保大環,推動大循環(圖1)。
若按照PDCA循環前進,能達到一個新的水平;在新的水平上再進行 PDCA循環,便能達到一個更高的水平(圖2)。
在質量管理體系中,PDCA循環是一個動態的循環,它可以在組織的每一個過程中層開,也可以在整個過程的系統中展開。它與產品實現過程及質量管理體系其他過程的策劃、實施、控制和持續改進有密切的關系。
在軟件開發生命周期模型中,我們的先輩參照建筑業的管理模式創建了軟件業的PDCA循環,這是需求分析-設計-實現-測試-發布的瀑布模型。我們很容易將瀑布模型與PDCA循環進行對應。但這種模型只是對PDCA循環的形而上的應用,并沒有揭示軟件研發過程的特點。軟件研發是一種采用團隊協作解決問題的過程,而不是任務完全分隔的方式,可以使開發更有效率并得到一個改良的產品。當團隊在解決問題的時候他們參與四項活動:
研究:確保他們完全理解問題;
設計:開發一種方法以解決問題;
實施:執行設計;
驗證:確認設計方案是否真正解決預定方案。
把這些理解為活動而不是階段是重要的。活動是指你做一些事而達到某種結果;階段是指生命周期中標志項目過程的步驟。活動是交叉開展的,而不是線性的或是完全依賴性的。這點很重要。
受控的迭代模型,將軟件研發過程劃分為初始階段、細化階段、構造階段及交付階段
初始階段:對產品定義取得初步的理解并達成一致,即知道將要交付的是什么?
細化階段:對產品的詳細設計取得初步理解并達成一致,即知道應該如何去構造。
構造階段:完成初始完成整的功能產品構造。
交付階段:交付滿足初始目標的產品。
而研究、設計、實施、驗證則作為一系列的活動分散在四個階段中,在軟件研發過程表現為用例分析、架構設計、詳細設計、編碼、測試等過程。
PDCA在軟件研發的四個階段并非變得模糊,而是顯得更加細致。初始階段應是對軟件研發進行策劃的階段,系統分析師通過用例分析、架構設計、初始模型的建立,實現對軟件研發過程的計劃。而細化階段可以既有初始階段PDCA小循環的具體實施,也有作為構造階段PDCA小循環的計劃,其實現的過程包括對所進行的戶級用例的細化與分解、架構實現方案的進一步確立、類及關系模型的建立,在構造階段,則包含了D階段的編碼實現,也包含了C階段的測試。而在交付階段,實施計劃、實施執行、實施過程檢查及實施總結則直接表現為PDCA循環中的應用。如果理解了分析、設計、編碼、測試、交付是作為活動而不是階段我們對PDCA在軟件研發中的應用不難理解了。我相信,在軟件研發過程中,我們通過細致的PDCA循環,一定會使軟件質量得到持不斷的提高。