物理中的品質是指含有物質的多少,無論位置、狀態、形狀的改變,一個物體的品質不會改變,他是物質的物理屬性。
生活中的品質一組固有特性滿足要求的程度。顯然,我認為我們常說的軟體品質應該屬於第二種。
我們現在做軟體時,對專案經理的一個要求就是要保證軟體的品質,但是這個品質說起來容易,但實施起來就不那麼容易了,原因很簡單,這個品質說起來是個有點虛無縹緲的,就想我們買衣服時,一看覺得品質不好,但又說不出來咋不好,賣衣服的也說這個價位品質已經是最好的,實際上大家都不知道品質是個什麼東西,只不過用來討價還價的介面罷了。
我們也經常聽到我們的領導常說,尤其是對專案經理說,一定要保證產品的品質,但什麼是品質,誰也不一定能拿出過標準。
我當了幾年的專案經理,聽多最多的也就是品質、效率。
我自己對品質有如下感觸:
1. 軟體Bug少不代表品質高。
2. 測試人員無法保證軟體的品質。
3. 品質是雙方一定價格下的一個妥協(這個就像我說的買賣衣服一樣)。
4. 好的品質是不斷修複(或者說重構)出來的。 這點我要強掉一下,我們有些人認為一開始就可以產生或者定義出來高品質的軟體,我覺得是不可能的,就像我們種莊稼一樣,我們把莊稼種在地裡,我們還需要除草,如果天旱了,我們得灌溉,但如果風調雨水,我們灌溉就是浪費。因為我們無法預知一整年是不是會大旱,我們如何一開始就定義做哪些工作來保證品質。
我保證品質的最好的方法,就是不斷的與客戶互動,讓客戶來進行反饋,我們來進行適當(注意是適當,我們只是從客戶那裡拿資訊,不是要求)的修正。
談到這裡,好像和專案經理沒有多大關係,實際上這裡最重要的工作,最主要的工作就是專案經理要完成如下關鍵的幾點:
1. 在客戶的要求和項目的報價之間找一個平衡,來定義產品的特性和細節,這點常常是需要和客戶協商,注意是和客戶協商,我們常常受到開發人員的幹擾。
2. 把握項目的“度”,既不要讓開發人員過度開發導致時間過長,什麼效能,什麼XX思想,客戶在乎嗎,但也不要和客戶差的太遠。
3. 把賣產品提升到賣服務來思考。
總之,軟體的品質就是提高客戶的滿意度。有沒有bug不重要,系統快不快等都不重要。因為有的客戶要求就是快速佔領市場,佔有使用者等,我們開發人員都知道Firefox好用,但市場佔有率還是比不上IE,再好的通訊軟體,在中國想和QQ拼也很難。等一個bug都沒有,系統也會輕輕的走,恰如它輕輕的來。