國(guó)際上,軟件度量的標(biāo)準(zhǔn)方法是“功能點(diǎn)”(FP),這也是ISO標(biāo)準(zhǔn),本身有近40年的歷史。是一種嚴(yán)謹(jǐn)?shù)摹⒖扇〉靡恢滦越Y(jié)果的方法。
隨著敏捷方法論的出現(xiàn),新的度量方法也就誕生了,那就是“故事點(diǎn)”(SP)——方法歷史較短,至今沒(méi)有形成國(guó)際標(biāo)準(zhǔn);是相對(duì)的,主要是基于團(tuán)隊(duì)的自我感知。
我們遇到業(yè)界中三個(gè)常見(jiàn)的問(wèn)題:
1、故事點(diǎn)與功能點(diǎn)有什么區(qū)別和聯(lián)系?
2、敏捷項(xiàng)目的度量能用功能點(diǎn)方法嗎?
3、故事點(diǎn)比功能點(diǎn)更快、更容易嗎?
第1個(gè)問(wèn)題,——
故事點(diǎn)是一種“相對(duì)”的度量,敏捷小組先選定一個(gè)最簡(jiǎn)單的故事,其規(guī)模=1,其他的故事的規(guī)模,與之相比較,用“斐波那契數(shù)列”來(lái)(1,2,3,5,8,13)相應(yīng)的表示。不同敏捷小組選定的基線是不一樣的。
而功能點(diǎn)則是有明確定義的,不同團(tuán)隊(duì)可取得一致性的度量結(jié)果。
在估算故事點(diǎn)的時(shí)候,團(tuán)隊(duì)總是難免要考慮到產(chǎn)品之外的因素,例如:需要投入的工作量。而功能點(diǎn)分析的時(shí)候,只考慮產(chǎn)出物自身的功能和特性,以及復(fù)雜程度。
故事點(diǎn)的方法,基本上是開(kāi)發(fā)者視角。
而功能點(diǎn)方法,是用戶視角,或者說(shuō)是業(yè)務(wù)視角??梢酝瑫r(shí)為開(kāi)發(fā)者和最終用戶服務(wù)。開(kāi)發(fā)者用來(lái)管理項(xiàng)目的產(chǎn)出,最終用戶(Product Owner),可以用此來(lái)建立預(yù)期——通過(guò)明確地去定義產(chǎn)品的功能和特性。
第2個(gè)問(wèn)題,敏捷項(xiàng)目肯定是可以用功能點(diǎn)方法的。對(duì)于敏捷,這兩種方法都可以用來(lái)度量規(guī)模,并進(jìn)行一系列的績(jī)效管理。
敏捷項(xiàng)目的每個(gè)sprint周期已經(jīng)固定了,一般是2個(gè)星期。所以,在這個(gè)層次,我們推薦敏捷團(tuán)隊(duì)繼續(xù)使用故事點(diǎn)的方法。
而在整個(gè)項(xiàng)目的層次,例如在這敏捷項(xiàng)目開(kāi)始時(shí),或者有產(chǎn)出物時(shí),功能點(diǎn)方法更加有效。
項(xiàng)目開(kāi)始時(shí),可以用功能點(diǎn)來(lái)估算整個(gè)backlog的規(guī)模以及成本、工期。而在項(xiàng)目結(jié)束時(shí),可以用功能點(diǎn)來(lái)統(tǒng)計(jì)實(shí)際的產(chǎn)出規(guī)模,計(jì)算實(shí)際的生產(chǎn)效率;比較敏捷與其他方法的績(jī)效。
第3個(gè)問(wèn)題,答案也是肯定的——故事點(diǎn)肯定是功能點(diǎn)更快、更容易。
使用故事點(diǎn)的方法,幾乎不用什么培訓(xùn)和練習(xí),所有的人都會(huì)很快的掌握和應(yīng)用。
而功能點(diǎn)方法,使用者需要有專業(yè)知識(shí),并經(jīng)過(guò)大量訓(xùn)練;需要了解用戶故事的詳細(xì)信息。
故事點(diǎn)方法提倡敏捷團(tuán)體在一起討論,為用戶故事計(jì)數(shù),以此來(lái)衡量故事的難度和所需的工作量。 如此,可以保證敏捷團(tuán)隊(duì)都能夠很好地理解故事。
而功能點(diǎn)方法的使用,讓敏捷團(tuán)隊(duì)的每個(gè)成員都有這方面的技能是不現(xiàn)實(shí)的,通常的做法就是在整個(gè)組織層面成立“功能點(diǎn)專家小組”,為各個(gè)敏捷團(tuán)隊(duì)服務(wù)。
無(wú)論如何,將敏捷團(tuán)隊(duì)成員納入規(guī)模估算的工作中,要比讓他們強(qiáng)迫接受功能點(diǎn)專家的結(jié)論要強(qiáng)。
“快和容易”不是關(guān)鍵,關(guān)鍵是你需要什么樣的度量,需要什么樣的信息——更好地管理產(chǎn)出物、制定決策、管理預(yù)期。
故事點(diǎn)度量的最大缺陷就是“缺乏一致性”,在一個(gè)敏捷小組的內(nèi)部,用此方法是不成問(wèn)題;但是不能在多個(gè)敏捷團(tuán)隊(duì)之間進(jìn)行橫向比較。
對(duì)于整個(gè)組織而言,需要的是——建立生產(chǎn)率基線、缺陷密度基線、測(cè)試案例密度基線、產(chǎn)品路線圖、年度預(yù)算、人力資源計(jì)劃等等。
對(duì)于這個(gè)組織級(jí)的管理需求,使用功能點(diǎn)方法,可以有效地來(lái)建立度量基礎(chǔ)。
除此之外,功能點(diǎn)方法也可以幫助組織迅速提升業(yè)務(wù)分析、需求管理等方面的能力;可以有效地幫助IT組織從“成本型”向“價(jià)值型”轉(zhuǎn)型。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。