質量的定義

 

如何定義質量?這取決於提供的產品或服務是否滿足需求。質量就是滿足需求,不多也不少,這是克勞斯比的定義。這幫助我們很好的理解質量的概念和邊界。在我剛進入軟件開發領域時,糟糕的產品質量讓我深惡痛絕,同時也付出慘重的代價。我知道高質量的軟件是成本最低,進度最快的,但我始終無法做到,也從未親眼目睹過,即使是身邊能力出重的朋友和同事。

 

究其原因,首先,我們無法定義出什麼是質量,總認爲功能越強大,流程越完備,質量越高。有時還自以聰明的添加一些功能糖果,結果導致簡單的事情複雜化,複雜的事情愚蠢化。我清楚記得高度參與的第一個項目,大概有30%-40%的代碼從未在生產環境運行過。第二個項目也沒有好到哪裏去。即使是最近一次開發的項目,愚蠢依然在重複。高層認爲功能太簡單,於是不斷地向流程中添加狀態和節點,然後是數不清的界面元素。你一定猜到了,我們的目標就是同一個界面可以滿足各種類型的用戶的需求,美其名曰:通用。當然,你也一定猜得到,最後我們不得不簡化流程,同時提供另外的快速流程,以滿足多數用戶的需求。悲劇一再上演,相同的情節,不同的時間、地點和演員。

 

其次,我們無法明確定義需求,沒有劃定需求的邊界。沒有明確的定義,你就無法驗證需求,到最後只好祈禱一切進展順利。沒有劃定邊界,需求就會不斷蔓延。這是每一個項目最可怕的惡夢。我曾經參與過一個項目,需求非常之不明確。爲了拿下訂單,銷售人員誇下海口,到了項目啓動之後,就發現這是個無底洞,但大家都當做沒看見,結果可想而知,超出預算200%。

 

如何提高質量呢?首先就要明確需求並對質量的定義達成一致。要求客戶提供業務代表,一同明確需求及其邊界,並在需要時做出業務的決策。要求開發人員依據需求開發,功能上只要滿足需求即可。其次,第一次就把事情做對。如果是製造行業,我們可以明確定義必須第一次就把各種事情做對,軟件開發雖然有其特殊性,我也沒有找出任何理由做不到這一點。爲什麼代碼質量如此差,缺陷如此多?因爲我們沒有時間做得更好。這完全是個藉口,我們沒有時間第一次做好,卻有時間做第二次,第三次。想想看,這個理由絕不適用於聰明人。

 

最後,不斷總結經驗和教訓,不斷改進,同時採取各種有效的預防措施,爭取在錯誤發生前就解決掉。

 

你是一個聰明的Pragmatic Programmer,請將你的時間利用得更有效吧。如果你也有類似的經驗,請與大家一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章