摘要:
這年頭IT界流行“用數據管理過程”、“用數字說話”,軟件度量成為熱點話題!一方面一堆專家在“嘩眾取寵”,而另外一方面企業(yè)在推行軟件度量的實踐中遇到了各式各樣的問題,軟件度量在軟件企業(yè)中的實施效果不甚理想。一個軟件企業(yè)應該從何做起度量工作呢?希望本文能給大家?guī)碛幸娴膯l(fā)!
形形式式的度量陷阱
N年前,老板對我們過程改進工作曾指示:能量化的工作盡量量化,不能量化的就不要勉強。當時覺得這個指示非常好,我也相信這個觀點很多人都會認同。實際上應該是這樣嗎?軟件度量就必須用數字來說明問題嗎?量化的結果一定比非量化的結果更準確客觀嗎?
沒有一套好的度量工具,很難做好度量工作!這是很多人的認識。而一些度量工具的生產廠商,更加是大力渲染,目的還不是為了更容易從軟件企業(yè)的口袋里面掏錢唄!要做好度量工作,真的需要一套強大的度量工具嗎?
處于手工作坊的軟件公司,難以進行軟件度量,軟件度量只能在有一定過程基礎的公司進行。另外,對于小公司、小項目沒有度量的必要,度量更適用于大公司、大項目。是這樣嗎?難道小公司、不規(guī)范的公司、小項目就不能利用軟件度量來改善生產力嗎?
軟件生產活動是智力活動,要客觀度量是很難的,要做好將會是很花成本的事情,而且開始階段要忍受比較高的成本,軟件度量所帶來的效果,需要長時間才能體現。軟件度量難道就沒有立竿見影的效果嗎?難道軟件度量是大公司、有錢公司才能玩得起嗎?
形形式式的度量陷阱,還遠不止以上這些呢!
什么是度量?
我一直想搞清楚度量的定義,在網上查了一大輪,只能找到一些讓人看了還不如不看的“學院派”的定義。搞清楚什么是軟件度量,非常重要,將會讓我們少走彎路,直接發(fā)揮度量的價值。看看下面我對度量的定義:
度量是這樣的一種活動:基于一定的目的,采用一定的辦法或者標準,對目標事物進行觀察,得到客觀的評價結果,根據評價結果,采取適當的行動。
這個定義,反應了度量活動的四個要素:
1.基于一定的目的。
2.采用一定的辦法或者標準。
3.得到客觀的評價結果。
4.采取適當的行動。
下面我們以度量水的溫度為例來體會一下度量的定義。
如果有人給你一個度量任務,要求你度量水的溫度,你會怎樣做?
你會不會馬上想到用溫度計?
不好意思,如果是這樣,你就落入了度量的其中一個陷阱了。你應該先問,為什么要度量水的溫度?不同的目的,做法是不一樣的。
如果度量的目的是為了判斷煲水的時候水是不是開了。你還會用溫度計嗎?當然你可以用能測量一百攝氏度的溫度計來度量水的溫度,但我們更多的會用肉眼觀察水的形態(tài),來判斷是否水開了,如果想更簡單一點的,買一個水開的時候會響的水壺或者是搞個飲水機就可以搞定了。
如果度量水的溫度,目的是希望水溫合適,好幫BB洗澡呢?有些媽媽會用溫度計,有些媽媽會用自己的手直接去感覺水溫,兩種辦法都可以。
一個小小的度量水溫的問題,都很有學問,大家發(fā)現,不同的目的下,做法是不一樣的。有些做法很簡單實用,不需要什么專門的工具,直接用手感覺溫度,或者肉眼觀察就可以了。相反,如果我們搞不清目的,就很可能殺雞用牛刀,甚至是受到傷害,一個不小心,你就可能直接用手去感覺開水的溫度了。
另外我們也發(fā)現,度量的結果不一定都是數字來的,只要滿足目的,越簡單越好。水是否開的問題,我們只需要知道水是否開了就可以了,度量結果只有兩個:是或者否,我們不需要知道這水是攝氏多少度。度量并不需要很精確,滿足目的就好!
度量的目的不是光為了得到一個結果,而是要根據度量的結果采取行動。如果媽媽發(fā)現水溫不夠,她會加入一些熱水,如果覺得太熱,就會加入冷水。這些行動的目的就是為了讓BB有適合的水溫洗澡。
首先應該度量的指標——公司的效益指標
如果要做度量工作,最開始應該度量什么呢?我建議應該首先度量公司的效益,度量效益的目的是對公司生產力狀況有一個準確的認識,更準確地分析出問題所在,為決策提供更準確的依據。
那么公司的效益該如何度量呢?
公司有兩大生產力指標,成本與收入。公司近一年的總體成本,包括人工、采購、水電費、房租費等全部費用加起來,財務肯定會有這樣的一個數字。公司近一年所有人員的工作時間,所有人員包括開發(fā)、測試、行政、財務等,凡在公司的工作的所有人,這些人上了多少天的班,一定也會知道,每個公司都有考勤請假的記錄嗎,就算沒有也可以大概估算。這樣我們可以得到公司全部人員一年的總體工作時間,單位是小時。這樣我們有這樣的一個指標:
成本指數 = 公司總費用/總工作時間,單位:元/小時
這個數字表明,在這個公司工作的每一位員工,每工作一個小時,其實是需要這樣的一個成本的。沒有算的公司盡快算算,你可能會發(fā)現,原來這個數字還相當大呢,遠遠超過這個人的時薪。
關于收入,我們有這樣的一個指標:
收入指數 = 公司總收入/總工作時間,單位: 元/小時
這個數字表明,在這個公司工作的每一位員工,每工作一個小時,為公司帶來多少的價值。
如果收入指數大于成本指數,說明公司是在賺錢的。公司的生產力就可以看這兩個數字了,我們希望盡量降低成本指數,盡量提高收入指數,于是我們會得到下面這個指標:
效益指數= 收入指數:成本指數
企業(yè)最終追求的是提高效益指數,成本大沒關系,效益指數高就沒問題了。這些指標都可以繼續(xù)細化,如:可把成本分類,成本會分成人工成本、非人工成本,人工成本有可以分為工程類人員人工成本、支持類人員人工成本等,經過細分,可以發(fā)現自己的成本構成不合理的地方,進行相應的改善。如:把收入細分,看看收入的組成,收入都是由哪些部門哪些人產生的,這些都能幫助企業(yè)提高收入。
公司的效益指標的度量是任何公司都可以做的,而且應該是第一時間就要做的度量,并且要持續(xù)地做的。公司所做的任何工作,市場活動、過程改進工作、度量工作等等,最終目的還是為了提高效益指數!
每個軟件公司都可以并且應該做好的度量——缺陷度量
就算一個開發(fā)極不規(guī)范公司,我想總會對缺陷有一定的管理辦法吧?至少缺陷會被記錄下來(哪怕是各種方式),而不會只是口頭說而毫無記錄吧?
大多數軟件公司都會有一套管理缺陷的系統(tǒng),我們應該如何把缺陷度量做得更好呢?
我們需要目標驅動地把度量工作做好,首先有兩個最基本的要求:
1.缺陷被準確的記錄和跟蹤。
2.客觀地依據缺陷狀況對軟件發(fā)布進行決策。
根據這兩個要求,我們需要詳細定義缺陷的屬性,這些缺陷的屬性就是我們要度量的內容。很多公司都會定義缺陷的描述、嚴重程度等屬性,另外也會規(guī)定發(fā)布的時候,什么嚴重級別的缺陷不能超過多少個等要求。
以上兩個目標只是缺陷度量的兩個基本目標,如果更深入一點,我們希望能預防缺陷的再次發(fā)生,最簡單有效的辦法就是:直接讓項目組成員一起來分析缺陷的原因,讓大家避免重犯。
如果想做更系統(tǒng)更深入的分析,就需要考慮在組織層面來做這個分析工作。這時有必要增加缺陷一個屬性,叫做“缺陷來源”,就是說產生這個缺陷的源頭是在哪里,是需求沒有分析到位,還是設計沒有做好,還是編碼出問題?按“缺陷來源”來分析公司不同類型的項目的缺陷情況,您就會發(fā)現公司的軟件開發(fā)過程最有問題的是哪個過程?哪些過程做得比較好?這些分析結果會很好的指引過程改進的方向。
缺陷度量有很多可以發(fā)掘的地方,這是每一個公司都應該做好也是最有條件做好的一種度量。
成功的基礎——軟件規(guī)模度量
最近有這樣的一個辯論,功能點VS代碼行,辯論的焦點就是用哪一種來代表軟件規(guī)模更好一點。項目規(guī)模的度量大有學問,如果您想去聽聽專業(yè)的軟件功能點法課程,您可能要付上高昂的學費,并且有可能學了后還不知道如何用上這個辦法。這里不詳細談論這兩種辦法,這兩種辦法實施難度頗高,我們看看有什么更簡單適用的辦法。
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |