保證軟體開發質量的一種管理學

2022-01-13 12:02:39 字數 2336 閱讀 2390

軟體開發和其他製造業的區別在於,軟體的成本在於研發,而不是製造,製造業可以有既有的模式來進行流水線的工作方式,大大的提高產品的質量。

雖然,軟體有這種固有的特點,但是我認為還是可以借助製造業的管理經驗來管理軟體開發。尤其是,軟體不會受許多物質條件的限制,也就有了很多更大的發揮空間。

乙個產品,如何才能稱之為質量高的產品?我認為應該滿足一下條件:

1.符合消費者的需要(功能性)

2.健壯

3.高效(競爭力的體現)

其實傳統製造業要弄個新產品出來,並不比軟體開發容易。先要構思,然後一步一步修改,市場宣傳,諸如此類,不管哪個環節,如果是軟體開發來說,都比較節省成本,因為軟體要部署比硬體部署技術手段要容易多了。正因為如此,我們應該對提高軟體開發質量保持信心的。

提高軟體開發的質量,首先要貫徹乙個恰當的開發流程。

以前有什麼瀑布型,現在有什麼敏捷型,他們固然是有其優點,但是往往實際工作中沒有得到普及,為什麼?因為沒有建立具體化的實施機制和管理層沒有理解和在團隊中推動這些,這和製造業的老闆有很大的不同。中國的軟體業是新生的,英雄主義的,而不是工業化的。

管理層對開發沒有概念,完全依賴某些高階的開發者,是問題的根源。要改變,首先就要對抗英雄主義,要建立機制,而不是依賴個人經驗(雖然機制是基於經驗的)。

機制,是將一些含糊不清的過程,用文字表述出來,並量化實施的方法。麥當勞和肯德基的成功,不是因為它有很多牛b的廚師,而是因為他能將某個牛b的廚師的經驗給總結出來,並能制定乙個可以重現的過程。這是有難度的,國內那些山寨麥當勞就做不出統一的口味。

要做乙個好產品容易,要做很多很多一樣水準的產品就難,而這正是工業化的精髓。

所謂保證產品的質量的含義,其實質就是建立乙個科學的生產流程。並且要用製造業的態度去提高軟體產品的質量。

首先要明白生產者和消費者的關係:

生產是為了滿足消費者。

不能滿足消費者的不是產品,是垃圾。

因此從生產關係來看,首先就有如下關係:

生產者是要服務消費者的。但是如何才能服務消費者?靠自己的開發知識等等,這些雖然沒錯,但是生產的關鍵除了內在的因素,外在的因素更值得重視。這就是生產的條件和前提。生產的前提是什麼?是你需要知道消費者需要什麼。

如果把生產者和消費者看做生產線的兩個環節,出來的是最終產品,你會發現所謂的現實中的消費者其實是在生產線的第一環節的:

沒有「消費者」的輸出,就沒有「生產者」的輸入,就不會有最終的產品出來。任何企業,他的生產關係都不會那麼簡單,實際上需要許許多多的生產人員組成一條長長的生產線。但是,每兩個生產單元的關係,都離不開上圖所示。因此這裡先把他們一般化:

b單元依賴a的輸出,對於任何乙個b來說,他應該保證a的輸出是符合自己的要求的,也就是他才是消費者,才是老大。我用紅線分隔了ab,分別代表了輸入,和輸出。乙個生產環節要成功,首先要重視輸入,輸入不嚴格,劣質,注定輸出也是劣質的。而b自身的輸出,由後繼的c來保證其質量。上面已經提到了,所謂的質量,就是要滿足三個條件:功能,品質,效能。如果每乙個b都能履行自己監督的義務,那麼乙個成功的生產過程就出來了。

如何提高b的監督水準?

b之所以會積極的監督a,是因為b需要依賴a的產品輸出,這是天然的約束關係。但是b同時也要提高自己評判產品質量的能力。如何提高產品的質量?在其他生產線不容易,但是在軟體開發生產線,我認為答案可以很直接,那就是測試**。每個b都為a編寫測試**,a通不過,自然要退回去重寫。

企業中生產線不會只有一條。

乙個軟體企業應該有三條生產線:

1.設計生產線

2.編碼生產線

3.管理生產線

設計生產線連線外部消費者,由消費者做開端,到最終編碼人員組成。

設計生產線的難度在於是散開的。而且,越是後端越是多生產環節,涉及的人員越多,對管理的壓力也就越大。消費者-〉框架設計師-〉中層設計師-〉編碼主管-〉編碼者,會越來越複雜。

編碼生產線位於設計生產線的末端成員組成,這本身就是龐雜的。

管理生產線的任務,在於跟蹤生產環節出現的質量問題,收集生產資料,以真正改善生產結構。

總結:提高軟體開發質量,首先是關注開發流程,而開發流程,要關注開發的一般環節,所謂環環相扣,做好一般的環節,自然就會水到渠成。

如何利用缺陷的管理提高軟體開發質量一 質量之旅

如果你問開發部門經理 開發時主要關注點是什麼?80 以上的經理會說,提高產品的質量很重要。再問 你如何評判你的質量?他們會快速反應 客戶滿意度和是否滿足需求。再問 過去的質量如何?如何衡量你的質量?如果他們在做客戶滿意度的話,他們會說客戶的指標,否則就是無答。軟體開發質量聽起來是很虛,大家都說重要,...

軟體開發還遠不是一種「科學」

很多大學裡是把軟體開發相關的專業劃入工科的,這給人一種錯覺,讓人認為軟體開發也是乙個工程學科,就像土木建築,動力機械那樣。但這從根本上錯了,土木建築,動力機械的背後有確實的科學定律作為支撐,而軟體開發的背後基本上什麼都沒有,遠不是一種 科學 也正因此,軟體工程 的現實意義也就遠不如 土木工程 動力工...

軟體開發質量管理的一些思考

pmbok裡關於質量管理主要有3個過程 制定質量管理計畫 質量保證 qa 質量控制 qc 書看了5 6次,還是發現比較抽象,難以理解。實際專案中,怎樣才幹合理的考慮各種資源制約,更好的執行質量管理呢?一般的正規流程大致例如以下 需求分析 客戶評審與確認 概要設計 內部評審 具體設計 內部評審 編碼 ...