1 軟件開發(fā)度量

      在多數(shù)行業(yè)中,決策基于數(shù)據(jù)而產(chǎn)生。重要的 KPI 一般是隨時(shí)間測量的,數(shù) 據(jù)表示某種事件或模式,該事件或模式是某個(gè)操作的觸發(fā)因素。舉一個(gè)簡單的例 子:工廠中一條重要裝配線的吞吐量(即每分鐘裝配的產(chǎn)品數(shù)量)。當(dāng)吞吐量低 于某個(gè)閾值時(shí),說明出現(xiàn)了問題。因此,維修人員將確定問題并進(jìn)行維修。

      在軟件行業(yè)中,人們經(jīng)常提到“軟件工廠”。這些團(tuán)隊(duì)專注于軟件開發(fā),為 客戶提供相應(yīng)價(jià)值。例如:移動(dòng)應(yīng)用程序中的新功能、網(wǎng)站上的新功能或 ERP 系 統(tǒng)的更改。
那么如何衡量開發(fā)團(tuán)隊(duì)的產(chǎn)出呢?為了解決這個(gè)問題,制定了功能規(guī)模度量 的 ISO 標(biāo)準(zhǔn)。目前有 5 種方法(按字母順序排列)。

    •    COSMIC-FFP (ISO/IEC 19761)
    •    FiSMA (ISO/IEC 29881)
    •    IFPUG (ISO/IEC 20926)
    •    Nesma (ISO/IEC 24570)
    •    UKSMA-Mark II (ISO/IEC 20968)

      在這些方法中,IFPUG、Nesma 和 COSMIC 是最常用的方法。這些方法不 考慮技術(shù)層面或非功能需求,而是通過量化軟件的功能點(diǎn)來度量軟件的功能規(guī)模。正如 100 平方米的磚墻具有與 100 平方米玻璃墻具有相同的表面積一樣,用 Java編寫的 1000 個(gè)功能點(diǎn)的軟件系統(tǒng)與用 Cobol 開發(fā)的 1000 個(gè)功能點(diǎn)的應(yīng)用程序 提供的功能數(shù)量相同。

      功能點(diǎn)分析師對一組功能用戶需求(例如用戶故事、用例、功能設(shè)計(jì)等)進(jìn) 行分析,并確定這些需求的功能規(guī)模,還可以確定在特定時(shí)間段(一個(gè) sprint 或 一個(gè)版本)內(nèi)添加、修改或刪除的功能規(guī)模。這是由 Nesma 開發(fā)的,也是其標(biāo)準(zhǔn) 的一部分。Nesma 將其稱為“項(xiàng)目規(guī)模”,度量單位為“增強(qiáng)功能點(diǎn)(EFP)”。因此,有兩種功能規(guī)模:
    •    應(yīng)用程序規(guī)模:應(yīng)用程序在某一時(shí)刻的功能規(guī)模。例如,應(yīng)用程序 X 當(dāng) 前為 1000 FP。
    •    項(xiàng)目規(guī)模:在一定時(shí)間內(nèi)添加、修改或刪除的功能規(guī)模。比如,在 SprintY 中,添加了 25 個(gè) FP,修改了 15 個(gè),刪除了 5 個(gè)。項(xiàng)目規(guī)模為 25+15+5=45個(gè)增強(qiáng)功能點(diǎn)(EFP)。

2 團(tuán)隊(duì)績效指標(biāo)

      通過測試每個(gè)Sprint或者每個(gè)版本的EFP 數(shù)量,可以比較不同團(tuán)隊(duì)的生產(chǎn)率 差異。例如,當(dāng)獲取到所花費(fèi)的工時(shí)、這些工時(shí)的成本以及發(fā)現(xiàn)的缺陷數(shù)量等數(shù) 據(jù)時(shí),就可以確定以下指標(biāo):
    •    項(xiàng)目交付率:每個(gè) EFP 花費(fèi)的工時(shí);
    •    成本效率:每個(gè) EFP 花費(fèi)的工時(shí)成本;
    •    程序質(zhì)量:每 1000 EFP 中的缺陷;
    •    交付速度:每月 EFP。

      對每個(gè)團(tuán)隊(duì)的上述指標(biāo)進(jìn)行監(jiān)控,就可以知曉團(tuán)隊(duì)情況。當(dāng)開發(fā)的 EFP 較少時(shí),則可能存在問題。功能點(diǎn)是產(chǎn)生價(jià)值的代表,團(tuán)隊(duì)開發(fā)的功能越多,用戶 使用該功能的機(jī)會(huì)就越多。通過上述指標(biāo)可以進(jìn)行團(tuán)隊(duì)之間的對比,管理層可以了解到效率更高,更具 價(jià)值的團(tuán)隊(duì)。
      人們通常用生產(chǎn)率進(jìn)行比較,因?yàn)樗?dú)立于費(fèi)率或內(nèi)部成本。在 ISBSG 術(shù) 語中,經(jīng)常使用生產(chǎn)率,而不使用正確的術(shù)語—項(xiàng)目交付率(PDR)。對于大多數(shù) 人來說,很難處理有很多小數(shù)的數(shù)字,而在計(jì)算每小時(shí)的功能點(diǎn)時(shí)得到的結(jié)果就 是這樣的數(shù)字,因此將這個(gè)計(jì)算結(jié)果反轉(zhuǎn)為每個(gè)功能點(diǎn)的小時(shí)數(shù),稱為 PDR。即PDR 是每個(gè)功能點(diǎn)花費(fèi)的工時(shí)。圖 1 為不同團(tuán)隊(duì)之間的 PDR 對比。
圖1 不同團(tuán)隊(duì)的項(xiàng)目交付率對比

      例如,團(tuán)隊(duì) A 是一個(gè) 8 人的 Java 團(tuán)隊(duì),而團(tuán)隊(duì) C 是一個(gè) 5 人的 Cobol 團(tuán)隊(duì)。團(tuán)隊(duì)的生產(chǎn)率很大程度上取決于技術(shù)環(huán)境。因此,將每個(gè)團(tuán)隊(duì)的生產(chǎn)率與行業(yè)的 市場平均水平進(jìn)行比較是有意義的。