如何定義質量?這取決於提供的產品或服務是否滿足需求。質量就是滿足需求,不多也不少,這是克勞斯比的定義。這幫助我們很好的理解質量的概念和邊界。在我剛進入軟體開發領域時,糟糕的產品質量讓我深惡痛絕,同時也付出慘重的代價。我知道高質量的軟體是成本最低,進度最快的,但我始終無法做到,也從未親眼目睹過,即使是身邊能力出重的朋友和同事。
究其原因,首先,我們無法定義出什麼是質量,總認為功能越強大,流程越完備,質量越高。有時還自以聰明的新增一些功能糖果,結果導致簡單的事情複雜化,複雜的事情愚蠢化。我清楚記得高度參與的第乙個專案,大概有30%-40%的**從未在生產環境執行過。第二個專案也沒有好到**去。即使是最近一次開發的專案,愚蠢依然在重複。高層認為功能太簡單,於是不斷地向流程中新增狀態和節點,然後是數不清的介面元素。你一定猜到了,我們的目標就是同乙個介面可以滿足各種型別的使用者的需求,美其名曰:通用。當然,你也一定猜得到,最後我們不得不簡化流程,同時提供另外的快速流程,以滿足多數使用者的需求。悲劇一再上演,相同的情節,不同的時間、地點和演員。
其次,我們無法明確定義需求,沒有劃定需求的邊界。沒有明確的定義,你就無法驗證需求,到最後只好祈禱一切進展順利。沒有劃定邊界,需求就會不斷蔓延。這是每乙個專案最可怕的惡夢。我曾經參與過乙個專案,需求非常之不明確。為了拿下訂單,銷售人員誇下海口,到了專案啟動之後,就發現這是個無底洞,但大家都當做沒看見,結果可想而知,超出預算200%。
如何提高質量呢?首先就要明確需求並對質量的定義達成一致。要求客戶提供業務代表,一同明確需求及其邊界,並在需要時做出業務的決策。要求開發人員依據需求開發,功能上只要滿足需求即可。其次,第一次就把事情做對。如果是製造行業,我們可以明確定義必須第一次就把各種事情做對,軟體開發雖然有其特殊性,我也沒有找出任何理由做不到這一點。為什麼**質量如此差,缺陷如此多?因為我們沒有時間做得更好。這完全是個藉口,我們沒有時間第一次做好,卻有時間做第二次,第三次。想想看,這個理由絕不適用於聰明人。
最後,不斷總結經驗和教訓,不斷改進,同時採取各種有效的預防措施,爭取在錯誤發生前就解決掉。
你是乙個聰明的pragmatic programmer,請將你的時間利用得更有效吧。如果你也有類似的經驗,請與大家一起分享。
軟體質量的定義
11.1 概述 11.1.1 軟體質量的定義 軟體質量定義為 1 與所確定的功能和效能需求的一致性。2 與所成文的開發標準的一致性。3 與所有專業開發的軟體所期望的隱含特性的一致性。11.1.2 軟體質量的度量和評價 影響軟體質量的因素可以分為兩大類 1 可以直接度量的因素,如單位時間內千行 klo...
如何定義測試用例的質量標準?
在定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件 test ware 之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試 知識的傳遞和測試的管理等,而且更重要的是能更快 更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達...
如何定義測試用例的質量標準?
在定義測試用例的質量標準之前,先要了解設計測試用例的目的。測試用例是測試工作中最重要的元素或測試件 test ware 之一,是測試執行的基礎。測試用例不僅能有效地幫助實施後繼的回歸測試 知識的傳遞和測試的管理等,而且更重要的是能更快 更有效地發現缺陷,確保測試的系統性和全面性,在測試的深度和廣度達...