PDCA循環——快速提升軟體品質的必備工具

近年來,軟體項目的規模及其複雜性正在以空前的速度增長,互聯網用戶市場龐大,互聯網公司和相應的軟體產品層出不窮。快速響應需求變化往往是互聯網行業的常態,軟體產品的快速開發迭代對於公司迅速佔領市場、搶佔商機有著舉足輕重的意義。

伴隨著行業的快速發展,原有的研發模式逐漸不能適應高速發展的市場大環境。因此,敏捷開發模式應用而生。敏捷開發方法以其簡單高效、靈活快速、持續交付等特點,與迅猛發展的互聯網節奏有諸多契合,為互聯網的進一步發展提供了助力。在國外以微軟、IBM、Google、Amazon為首的超過50%的軟體企業中已經採用這種方法。調查數據顯示,實施敏捷方法的軟體企業在產品上市時間、交付效率、客戶滿意度方面都會有顯著提升。

一、敏捷開發與軟體品質

敏捷開發模式已經被越來越多的研發團隊和企業重視並使用,但很多敏捷項目的產品品質卻並不盡人意。而且從傳統模式到敏捷模式的轉變,對品質管理團隊來說,從觀念到流程上的革新對團隊來說都是巨大跨越。加之,為了響應敏捷開發快速迭代的要求,能夠如期交付,團隊往往會忽視軟體交付品質。選擇在快速交付後,在客戶發現並回饋嚴重問題後短期內修復問題並發布。

所以,品質問題在敏捷項目很常見,大多數團隊對待品質問題的態度也是輕視,甚至習慣於在客戶有回饋之後再予以修復。經常的崩潰、重啟、出先Bug,會消費者對產品品質滿意度也持續降低,有些用戶甚至轉而應用其他產品。每一個小的品質問題,都會引發一場蝴蝶效應,讓軟體品質問題負面影響漸漸凸顯,對企業聲譽和經營造成很大影響。總的來說,提升軟體的品質,能夠為企業帶來以下幫助:
1、缺陷發現越早修復成本越小,所以在開發過程中提高產品品質管理能很大程度上降低成本。
2、高品質的軟體能夠保障企業聲譽,增加產收;
3、幫助企業自身避免因為軟體品質遭受損失;並且用戶滿意度也直接受到產品品質的影響。


二、PDCA 循環

故而,軟體項目的品質越來越重要,因此研究如何提高軟體項目品質非常有意義。為了協助提高軟體品質水平,很多公司開始注重軟體交付品質,開始注重項目管理,PDCA循環因其易操作性,在中國企業的應用則較為普遍。


PDCA 循環又名戴明循環,被人們尊稱為「統計品質控制之父」的休哈特博士是 PDCA 循環最初的構想提出者。由戴明採納、宣傳,獲得普及,它是全面品質管理所應遵循的科學程式。全面品質管理活動的全部過程,就是品質計劃的制訂和組織實現的過程,這個過程就是按照PDCA循環不停地運轉。 PDCA循環不僅能夠在品質管理體系中運用,也適用於高速迭代的軟體開發領域。

PDCA循環主要分為以下四個步驟:

  • P(Plan)—計劃 ; 
  • D(Do)— 執行; 
  • C(Check)—檢查; 
  • A(Action)—修正。

三、PDCA循環的特點

PDCA循環以英文 Plan(計劃)、Do(實施)、Check(檢查)和Action(處理)四個單詞首字母的組合,分別代表品質管理的四個階段。這四個階段構成了一個完整的迴路,是一個循環往複的過程。PDCA是一個循環往複、不斷迭代的過程。具有以下特點:

  • PDCA 循環是階梯式上升的過程,每個循環是一個管理周期。
  • PDCA 循環注重對現狀的分析和原因的探究,不斷確定更高層次的品質目標,尋求進一步改善的機會。
  • PDCA 循環本身就是個動態的過程,不光可以運用在整個項目的開發中,同時也運用在具體階段相關過程中。

我們可以通過這種模式對項目和產品進行檢查處理,對成功的經驗加以肯定並適當地推廣,將其標準化;對失敗的教訓加以總結,並將未解決的問題放到下一個PDCA循環里,如此循環,直到問題被成功解決。在具體的實施操作過程中,PDCA循環,又可以在計劃、實施、檢查和處理,四大模組中細分為下圖中的八個步驟。

在整個項目開發周期中,PDCA循環本身就是個動態的過程,不光可以運用在整個項目的開發中,同時也運用在具體階段相關過程中。


四、PDCA循環如何提升軟體品質

1、每個迭代的PDCA循環

軟體開發的每個迭代實際上都是一個 PDCA循環,經歷了計劃(需求分析)、實施(程式碼開發)、檢查(產品測試)和處理(發布上線)四個階段。但發布上線並不意味著結束。需要從內部和外部兩個方面,不斷收集回饋,識別改進機會,制訂改進策劃,進而實施計劃和監控,檢驗效果。實現內環和外環兩個層面的良性循環。

 

2、產品功能的PDCA循環

在軟體開發的每個迭代的PDCA循環中,還可以根據影響軟體品質的最主要的三個方面,拆分出每個環節對應的PDCA 循環。通常軟體項目的品質問題主要集中三個方面,他們分別是:產品功能、研發過程、團隊協作。那麼我們就可以從這三個方面入手,在每個迭代PDCA循環的基礎上,在影響軟體品質的三個方面,同時引入PDCA循環。形成內外雙循環的模式。

這裡的產品可以是最終交付給用戶的產品 , 也可以是階段、過程所產生的結果比如需求階段的需求文檔,如果需求沒有調研清楚,開發階段的產品那肯定會受到影響。所以這一階段的PDCA循環過程交替時,要特別關注輸入和輸出的產品需求,如發現品質問題,必須要回饋到前面的過程並採取糾正措施,給予提前的品質管控和干預。產品功能階段的品質提升,需要盡量在以下方面做到優化:

  • 規範化研發模板;
  • 精細化需求文檔;
  • 測試前移,缺陷早發現早修復;
  • 降低Bug的修復的成本;
  • 建立明確的需求調研與分析體系;
  • 建立完善的需求評審與確認體系。

3、研發過程PDCA循環

研發過程,分為管理過程和技術過程兩種類型。管理過程包括了計劃、監控、資源分配和組織工作。技術過程則以軟體工程方法為特徵。無論是技術過程還是管理過程 , 都對軟體的交付品質都有著直接的影響。在研發過程中,引入PDCA 循環模式,能夠快速準確的發現問題,有效的保證軟體品質。研發階段的品質提升,需要盡量在以下方面做到優化:

  • 程式碼設計規範
  • 程式碼文檔規範
  • 程式碼評審規範
  • 及時的Bug回饋機制

4、團隊協作PDCA循環

指完成整個項目中所需的時間、人力、資金設備等。人是整個項目中最不可控的因素、人員的有效管理是品質保證的前提條件。時間和資金得不到保障 , 產品的投入和研發投入將大大減少,同時產品測試的時間也會被大幅度壓縮,而這些則是軟體品質的直接保障。

  • 加強團隊溝通,打造敏捷團隊;
  • 加強客戶溝通,明確項目需求;
  • 注重團隊內部回饋;
  • 根據PDCA循環的實施和回饋情況,制定有效的改進策略。

​

隨著軟體研發行業的不斷發展與完善,軟體項目品質管理逐也受到越來越多企業的重視。當前的軟體品質的提升和管控,主要集中在產品功能、研發過程、團隊協作領域的品質整體態勢的監控和評價。通過PDCA的動態循環模式,可以有效實現軟體品質管理的精細化、準確化,實時化。幫助企業實現軟體品質的可預測、可控制、可改進、可優化,為企業綜合實力提升和研發能力持續改進提供強有力的支撐。