軟體Bug太多是咋會事?聽大火球給你講清楚其中原因!

  • 2019 年 10 月 7 日
  • 筆記

摘要:

客戶說:你們的APP品質還不錯,只有一個八阿哥(bug)!!

你很開心:請問是什麼缺陷呢?

客戶繼續說:就是打不開!

溫馨提示

本文分音頻版和文字版兩個部分,兩部分內容一樣。

建議你首先收聽音頻版,感受大大大火球老師的語言魅力。然後再學習文字版,仔細品味個中道理。

音頻版

提示:如果你在公眾地方收聽音頻版,請帶上耳機不要影響他人噢。

文字版

軟體的八阿哥太多,咋辦?

什麼是八阿哥?

軟體的八二哥太多了,怎麼辦?本期我們來扯淡一下項目的品質管理。

什麼是八阿哥呢?

它就是英文單詞bug的中文音譯,bug的意思指的是蟲子,用來比喻軟體的缺陷和問題。我們把bug這個英文單詞拉長來讀一次:b~u~g ~ ,是不是這個bug音就好像八阿哥呢!(是不是很牽強?哈哈哈)

我們很多軟體都有很多的品質問題,八阿哥實在太多了,怎麼辦?很簡單,搞一個四阿哥就可以搞定了。

有一次我們有個客戶還過來安慰我們,他說:哎呀,你們的那個APP品質還可以啦,只有一個缺陷,那就是打不開!

項目的品質管理相當的重要。接下來我們將會來看一下常見的幾種品質管理辦法。

最後搞一個大的「鬼門關」

第一種,在最後搞一個很大的鬼門關。

比方說在大學裡面的期末考試,有一個很嚴肅的考試製度:考試不及格,你不能重考,只能重修。而且這個防作弊的措施甚至比高考的防作弊還要嚴格。

結果取得了很好的效果,大學生們在晚上該打遊戲的還是繼續打遊戲,白天上課該睡覺的還是繼續睡覺,然後在考試之前的那幾天突擊學習、臨急挖坑。而個別的同學還充分的發揮他們的聰明才智,跟學校玩起了作弊與反作弊的遊戲。

本來呢,學校搞這麼一個巨大的關卡,是希望能倒逼同學們能在平時就認真學習。結果呢,完全達不到效果,學生們是不見棺材不流淚,見了棺材就作弊!

很多公司也是類似的採用這種的管理辦法,為了保證項目的品質,他們也在項目的後期設一個大關,守關者通常就叫做品質部,或者叫驗收部,搞一個超級嚴格的品質標準。結果效果也相當的好,基本上沒有什麼項目是能通過這個驗收標準的。這個時候該怎麼辦呢。沒關係的,項目的工期、項目的死期已經到了,不管項目的品質如何,該交付的還是會交付的。

在過程中增加多個檢查點

在項目的後期設一個品質大關,這恐怕是不可行的一種做法,所以有很多公司採取了另外一種策略,那就是在項目的過程中增加N多的檢查點。還設定專門的部門來負責項目的過程和項目的品質,這些部門通常就會叫做PMO(項目管理辦公室)、SEPG(軟體工程過程組)、品質部、測試部、驗收部等等。

結果效果怎麼樣?效果相當的理想,整個過程有N多的評審、項目小組要輸出N多的文檔,整個過程以及這些輸出物完全符合CMMI十級的要求(當然,我開玩笑了,CMMI最多是五級)。

項目似乎取得了很好的效果,客戶又來表揚我們了:哎呀,你們這個軟體做得相當好啊,只有一個缺陷,那就是不能運行!

我們看一下這樣的一種品質管理辦法的特點:那就是有一個過程,裡面有N多的檢查點,還有專門的角色和崗位來負責項目的過程和項目的品質。

這樣子會怎麼樣?這樣子會導致負責過程、項目品質的部門和項目小組之間的大鬥法。負責過程和品質的部門為了更好的控制和管理項目,他們的過程就會越來越細,評審越來越多,要求項目小組輸出更多的文檔。而項目小組,為了更好的開展工作,他們還專門招聘項目文檔編寫員。當然他們招聘的時候並不會叫這個名字,他們會說我們招聘的是項目助理。

這樣公司就會出現很神奇的現象:管理層希望通過獨立的負責項目過程和品質的部門更好地管理項目、把控項目的品質,這些負責過程和品質的部門也非常努力認真去工作了。而項目小組安排了專門的崗位來應付這些部門的檢查,以便他們能安心的集中火力的去幹活。你是不是覺得有點怪怪的嘛?

取消測試崗位

有一個老闆實在是受不了項目的品質問題,他發了一個大招:他取消掉所有的測試崗位,老闆認為:如果有測試人員,程式設計師就不會關注自己的工作品質。現在我把測試崗位都取消了,他們就不能推卸責任了。

我就問這個老闆,你們項目的品質改善了多少?

這個老闆說改善了一點點吧,不過卻幫我節省了很多的人力成本,現在我們不需要測試部和品質啦。

老闆的這個做法讓我陷入了深入的思考,我想了幾個拷問靈魂的問題:

  • 第一個問題,一個人不應該對自己的工作品質負責嗎?幹嘛還要搞另外一個部門來檢查我的品質呢,好像品質是別人的事情。
  • 第二個問題,為什麼要等東西做出來以後才在後面去檢查他呢?缺陷不是應該是預防的嗎?如果做出來就符合品質要求,這豈不是更好!

項目應該怎樣進行品質管理呢?

最後請回答一個選擇題:項目應該怎樣進行品質管理呢?

以下是四個選擇,你會選哪一個選項:

  1. 在項目的後期搞一個品質大關
  2. 在項目的整個過程中,增加n多的檢查點
  3. 找專人專職來負責項目的品質
  4. 品質內建,內建的英文單詞就是build in

選項ABCD,你會選哪一個呢?

其實在前面的分享裡面,我都分別吐槽了選項ABC的做法,而選項D品質內建什麼意思呢?是不是覺得雖然是有點不懂但覺得很厲害呢?沒錯了,正確的選項就是第四個:品質內建

尾聲

我是大大大火球。

本期的案例純屬藝術創作,如有雷同,那就是真的!

什麼是項目的品質內建呢?如何做項目的品質管理呢?請繼續留意我的分享!

感覺不錯的話,趕緊轉發一下吧!

下期再見。

知識點小結

什麼是軟體中的八阿哥?

八阿哥就是英文單詞bug的中文音譯,bug的意思指的是蟲子,用來比喻軟體的缺陷和問題。

項目的品質管理相當的重要,常見的幾種品質管理辦法有:

  1. 在項目的後期搞一個品質大關
  2. 在項目的整個過程中,增加n多的檢查點
  3. 找專人專職來負責項目的品質
  4. 品質內建,內建的英文單詞就是build in

第1種做法:希望通過後面搞個品質大關,倒逼項目組在前期就做好品質工作,這是「理想很豐滿,現實很骨感」的很好詮釋。

第2種做法:把後面的品質大關拆解為整個過程的N個小型檢查點,問題能更早的發現,也能更早地修正。但實踐中常見問題是:為了過程而過程,為了檢查而檢查。

第3種做法:搞獨立的品質崗位或部門,並且結合第2種做法一起實施。實踐效果是:品質管理變成了扯皮和鬥法!

第4種做法:品質內建是什麼意思?核心思想主要有:每個人都應該對自己的工作輸出有不可推卸的品質責任;我們希望預防缺陷,做出來就符合品質要求,而不是後面才去檢查。