前幾天讀到一篇文章:為什麼中國的 996 幹不過美國的 955 (文未有鏈結)
看過後有些感觸,也進行了一些思考,由此引申到軟體工程的質量控制,下面把自己的一些相法記錄下來
文中提到的一些觀點,我是比較認同的
關於工作的槓桿率,即單位工作時間產出的價值:
關於產品質量:
國內目前的 it 大環境實質上是鼓勵 60 分產品,不重視 80 分或者 100 分產品。花乙份精力,可以把產品做到 60 分;花兩份精力可以把產品做到 80 分;但是花 10 份精力才能做到 100 分。
有部分網友可能會說,用60分的產品也沒什麼不好。比如一口德國造的鍋600塊,可以用十年。國產的鍋60塊,可以用一年。同樣是600塊,我用國產的鍋也挺好,而且每年都可以換新鍋。說的沒錯,從消費者的角度出發,同樣的投入,得到的價值是差不多的。但是如果從生產者出發,我們就能看到差距了。假如生產一口國產鍋需要工人工作2個小時,那麼10口鍋就是20小時的工作量。假如生產一口德國鍋需要的人工是國產鍋的兩倍,那麼就是4小時,也就是說人家4小時的工作價值=我們20小時的工作價值。這就是我們經常說的為什麼別人每天工作8個小時就按時下班回家了,而且還拿著那麼高的工資。
好了,說回軟體工程,情形是類似的,捫心自問一下,我們996趕出來的軟體可以打多少分?自己的工作價值是多少?各位同學,做高質量的產品,是在提公升自己的工作槓桿率。
更為關鍵的是,低效忙碌的加班,對自己技能的提公升並沒有幫助。還是以製鍋為例,如果不做出改變,你掌握的永遠是2小時的低端製鍋工藝,加班已經占去了你很多的業餘時間,你將很難再有精力去提高自己,綜合下來,你損失的不僅僅是勞動所得,而且是成長和進步的機會。
當然,我理解,大部分同學的工作是無奈的,沒有選擇權的,被安排下來的活,必須趕時間完成。還有,現狀在一定程度上是由需求決定的,廣大的消費者都去買60塊的鍋,那麼企業自然也沒有動力生產更高質量的鍋,現狀的改變還有賴於消費價值觀的改變。可能我們短時間內無法改變這種現狀,但是我希望大家能認清現狀,並勇於向自己的直接上級提出好的建議,逐漸的推動現狀的改變。而且如果因為你的推動,進而促進了工作效率的提公升或產品價值的提高,相信你會得到認可與回報(即使你在當下的工作中沒有得到回報,回報也會體現在你找一下份工作當中)。
相信大部分同學是認同做高質量產品這件事的,但在實際工作中執行起來可能會困難重重。因為資源永遠是有限的,需要在對質量的高要求與有限的資源之間尋求一種平衡。大公司還好一些,相對資源充足,捨得花成本在質量控制上。
重點說創業公司,質量控制這件事,做的不足與過了都不行:
做的不足,線上問題頻出,客戶投訴多,這個鍋質量團隊得背。
做的過了,容易被吐槽流程複雜,影響生產力,相比之下,這個鍋更重,質量團隊可背不起。(引申點:如何減少無效流程?這裡不展開)
現實中質量控制往往會向生產力妥協。但妥協的結果就是線上質量得不到改善,甚至會惡化,真是進退兩難。遇到這種情況,誰來決策?領導唄?領導肯定不會說不要生產力,但領導也從來不會說放棄質量。要質量高一點還是要生產效率高一點,就看領導心裡向那個方向傾斜了。最終就是領導心裡那桿稱,決定了整體產品質量的上限。實情是:從大公司出來的高管,往往比較重視質量,而草根創業的老闆,往往更偏向業績,質量也往往會向業績讓路(這是是短期業績,因為質量不好,肯定會影響長期業績)。
那麼領導心中那桿稱的平衡點在**?對質量的要求是什麼?
領導專業,則能夠清楚的定義現階段的質量要求。
領導不專業,則知道要保證質量,但並不知道要保證到什麼程度才算合適。
大部分的情況下,領導並不是質量方面的專家,所以領導可能不太能講清楚對質量程度的要求。在乙個公司裡,基本會有乙個質量團隊來負責保證質量,領導往往一句話,產品的質量就靠你們質量團隊了!我們來分析一下這句話:
第一,保證質量,沒有說保證到什麼程度,可操作範圍大。
第二,這個擔子可不輕,產品質量僅僅是乙個質量團隊能保證的嗎?
就這兩點,我們分別來說說看。
第一:關於保證質量的程度
做為一名質量經理,工作的難點在**?組建團隊?制定標準?推進實施?相信做為一名有經驗的質量經理,這些應該都不是問題。難點是領會領導心中對質量控制程度的要求,把領導沒有說出來的東西描繪出來,並落實為具體的指標。首先你要準確領會這個度,然後再根據這個度制定相應質量控制方案。如果你理解有偏差,或者根本不能領會,即摸不透領導想到達到什麼程度,那麼後續開展工作則可能會遇到很大的麻煩。中國有句話:拿捏分寸,職場如官場,分寸拿捏的好才能得到領導的賞識。所謂的分寸,就是領導雖然沒說,但是內心想要的東西(這個太難了,具體如何做到,我也不是很有經驗)。如果上下理解不一致,在遇到與其他部門的利益衝突時,將很難得到領導的支援。所以,即使再困難,我們也要去領會,去嘗試和領導溝通,盡量準確的還原領導的想法與要求。並在和領導溝通時,向領導傳達你的建議,使你的方案和管理措施得到領導的支援,所以最後就變成了,如何說服領導認可你的方案。
所以我認為好的軟體質量經理難就難在:不盡要有專業的軟體知識,豐富的管理經驗,完善的質量控制方案,還要有理解領導,說服領導的能力。
第二:產品質量僅僅是乙個質量團隊能保證的嗎?
注:這裡的質量團隊指測試團隊,因為大部分情況下大家說的質量團隊指的就是測試團隊。廣義上來說,質量團隊不僅僅包含測試部門,還包括所有與提公升質量相關的人。
先說一下,產品的質量分為適用性質量與符合性質量。
一組固有特性滿足使用要求的程度就叫適用性質量;
一組固有特性滿足規定要求的程度就叫符合性質量。
單純看定義有點難以理解兩者的區分,有必要說明一下。
眾所周知,產品是設計和製造出來的,產品設計的好壞,滿足使用者需求的程度,就是產品的適用性質量,而製造出來的產品,是不是達到了設計的要求?其符合設計要求的程度,就是產品的符合性質量。所以又可以稱為產品的設計質量和製造質量。我們在軟體工程所說的質量,通常指的是產品的符合性質量。測試驗證軟體實現了需求文件所描述功能的過程,是保證軟體符合性質量的過程。而需求是否合理,產品最終是否滿足使用者的需求,則是軟體的適用性質量的範圍。
我們往往強調軟體的符合性質量,而忽略了軟體的適用性質量。
以我呆過的一家小公司為例,軟體質量很差,經常出線上故障。老闆非常重視,擴充了測試團隊,加大了測試力度,結果卻並不理想。為啥呢?仔細梳理一下,發現真正是測試漏測的bug的比例很少,有很大一部分都是使用者需求得不到滿足,如:扣分規則與預期不一致,設計過於複雜,以致於使用者自己操作過但是找不到記錄,新的改動未通知使用者,導致使用者不知道如何使用,或者找不到入口,使用者用的好好的功能,產品經理私自增加功能導致使用者不滿意等,然後還有一部分是產品架構設計引起的和**發錯引起的,可見很大一部分都是適用性質量出了問題。
這些適用性質量的問題,不僅僅是靠質量團隊就能解決的,而是需要從整個公司層面出發,需要各部門之間的合作,涉及從使用者到銷售,客服,從銷售到市場,從市場,客服到產品,再從產品到開發,測試,運維,再到運營,銷後的一整套流程。假設在傳達使用者需求時就就出了偏差,試想做出來的產品即使沒有任何bug,可能也不會使使用者滿意。這就是方向性的問題,就好比一條路修歪了,無論這條路的質量再好,也無法到達終點。而且還有失之毫釐,謬以千里的放大效應。
我想強調的是,測試只是整個質量控制過程中的一部分,測試部門所做的測試工作,基本都屬於保證符合性質量的的範疇。在設計質量沒有保障的情況下,加強測試起到的往往是謬以千里的放大效應。所以產品總體質量的提公升,應該先考慮設計質量,而提公升設計質量,需要從控制需求開始。
等等,不一而論,可見,無論是產品的設計質量,還是符合性質量,都不是都不是單純依靠質量團隊所能解決的。
那麼如何解決呢?規範化與標準化唄,什麼是規範化?什麼是標準化?當然就是軟體工程開發流程那一套東西了,這些東西都是前人實踐出來的,相信前人如果不是踩過坑,也不會弄這麼多繁文縟節。而人類的本性就是好了傷疤忘了痛,雖然有歷史教訓,但是我們從來都不吸取。這裡我簡單列舉一下軟體研發過程中應該具備,但是往往被小公司省略的一些流程,而這些流程對提公升軟體質量至關重要:
這些誰都懂,但是就是執行不下去。為啥呢?慢,影響生產力。
但是回過頭來想一想,那個生產效率更高呢?長期生產低質量的軟體,就像前面生產鍋的例子一樣,經常996,勞動強度大,然而還得不到提公升,無法實現價值最大化。
很多的軟體創業公司,當產品出現問題時,往往會歸因到人才不足,資源有限,很少會歸因到規範化與標準化。「招一些自動化工程師吧,以後測試基本上自動化了,不僅就不需要這麼多人了,質量還能上乙個台階」,如果這些話出自老闆嘴裡,還好,質量經理還有機會予以糾正。但如果這些話出自質量經理嘴裡,那麼就危險了,有可能在偏差的路線上越走越遠。在規範化和標準化還沒有起步的情況下,就盲目引入自動化,效果是要打折扣的。孰不知規範化與標準化對質量的影響,是遠大於自動化所帶來的收益的。
說在最後,企業處在不同的階段,對質量控制程度的要求也不盡相同。不能千篇一律,用同樣的高標準要求,對於有些小公司的確做不到,也沒必要。但也不能停滯不前,隨著企業的發展,要不斷的提高對質量的要求,質量的提公升,其實就是生產效率的提公升啊。
最後希望奮鬥在一線的程式設計師們都不用996,就能產出高質量的產品,實現財富自由,成為人生贏家。
從Issue 這個詞引申出來的文化
issue 這個詞在軟體流程的各種管理工具上用的非常廣泛。我的理解是,開題代替中文的 乙個軟體缺陷 乙個軟體新特性 乙個軟體使用問題 等。金山詞霸的解釋是 出版,發行,報刊等 期 號,論點,問題,結果,水,血等的 流出 vi.發行,流出,造成.結果,進行辯護,傳下 vt.使流出,放出,發行 鈔票等 ...
讀書 格魯夫給經理人的第一課 管理槓桿率
管理槓桿率 經理人產出的定義 經理人的每一項管理活動對整個組織都有或多或少的影響。至於對整體產出的有多大,則在於這些活動的槓桿率大小。經理人的產出 他直接管轄部門的產出 他間接影響所及部門的產出 經理人從事的活動有很多會影響別人,不管是他提供意見與判斷 指示方向 告訴下屬資源分配方式,還是偵測錯誤等...
讀書 格魯夫給經理人的第一課 管理槓桿率
管理槓桿率 經理人產出的定義 經理人的每一項管理活動對整個組織都有或多或少的影響。至於對整體產出的有多大,則在於這些活動的槓桿率大小。經理人的產出 他直接管轄部門的產出 他間接影響所及部門的產出 經理人從事的活動有很多會影響別人,不管是他提供意見與判斷 指示方向 告訴下屬資源分配方式,還是偵測錯誤等...