目標(biāo)讀者
本文讀者主要是從事或關(guān)心敏捷開(kāi)發(fā)的工作者,他們相信敏捷代表了軟件交付方式的重大進(jìn)步,并且希望敏捷管理會(huì)變得更好。
前言
眾所周知,敏捷的優(yōu)點(diǎn)是更快地交付、更好地滿(mǎn)足不斷發(fā)展的客戶(hù)需求。然而,賦予各個(gè)團(tuán)隊(duì)管理自己流程的自由使得高層管理者管理敏捷團(tuán)隊(duì)之間的活動(dòng)變得困難——我們稱(chēng)之為管理“大規(guī)模敏捷”。
具體地說(shuō),敏捷度量指標(biāo),如故事點(diǎn),可以管理單個(gè)團(tuán)隊(duì)的活動(dòng),但對(duì)于計(jì)劃和監(jiān)控跨團(tuán)隊(duì)的進(jìn)度、績(jī)效以及評(píng)估未來(lái)開(kāi)發(fā)的工作量幫助很小。
高層管理者負(fù)責(zé)制定預(yù)算和優(yōu)化資源分配,以便為組織交付最大的價(jià)值,并負(fù)責(zé)根據(jù)整個(gè)組織的預(yù)算跟蹤進(jìn)度。對(duì)于只使用典型敏捷流程的軟件開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),如果沒(méi)有跨團(tuán)隊(duì)的工作績(jī)效數(shù)據(jù)比對(duì),以上管理工作是無(wú)法準(zhǔn)確完成的。對(duì)于將軟件開(kāi)發(fā)外包給使用敏捷但沒(méi)有任何績(jī)效度量標(biāo)準(zhǔn)的供應(yīng)商來(lái)說(shuō),這些管理任務(wù)會(huì)更加困難。
本文首先闡述了管理者在面對(duì)敏捷度量指標(biāo)管理受限時(shí)所面臨的挑戰(zhàn),其次展示了如何將ISO軟件功能規(guī)模度量標(biāo)準(zhǔn)融入敏捷流程,從而使管理者能夠大規(guī)模地評(píng)估和控制敏捷交付。在不改變敏捷基礎(chǔ)流程的情況下,繼續(xù)獲得敏捷團(tuán)隊(duì)在交付業(yè)務(wù)價(jià)值的速度和靈活性方面帶來(lái)的好處。
1、敏捷的好處
敏捷宣言引起了軟件交付的變革。敏捷的好處包括:
更早地交付;
更快地響應(yīng)需求。
也有證據(jù)表明,敏捷降低了開(kāi)發(fā)成本和項(xiàng)目完全失敗的可能性。
2、敏捷度量的問(wèn)題
敏捷度量的目標(biāo)是使用內(nèi)部團(tuán)隊(duì)指標(biāo)規(guī)劃和控制開(kāi)發(fā)進(jìn)度,其中最常見(jiàn)的是“故事點(diǎn)”。然而“故事點(diǎn)”并沒(méi)有相對(duì)客觀的定義。一個(gè)故事點(diǎn)代表了一個(gè)用戶(hù)故事的 “規(guī)?;蜷_(kāi)發(fā)難度”。這混合了兩個(gè)獨(dú)立的概念,并沒(méi)有給敏捷實(shí)踐者或管理者提供什么是一個(gè)故事點(diǎn)以及如何度量。
因此,每個(gè)團(tuán)隊(duì)自行定義“什么是一個(gè)故事點(diǎn)”以及它所表示的“任務(wù)有多大”。在實(shí)踐中,這解釋為“我們估計(jì)需要多少工作量來(lái)處理這個(gè)任務(wù)”。
為給定的用戶(hù)故事確定故事點(diǎn)大小的過(guò)程——例如“規(guī)劃撲克”——是有價(jià)值的,主要是幫助團(tuán)隊(duì)理解需求。就團(tuán)隊(duì)而言,可以將故事點(diǎn)用于評(píng)估下一次迭代的工作量,但是故事點(diǎn)的“規(guī)模”并不適合個(gè)體團(tuán)隊(duì)以外的績(jī)效評(píng)價(jià)和任務(wù)評(píng)估,也就是說(shuō),不適合管理“大規(guī)模敏捷”。
為了更準(zhǔn)確的管理開(kāi)發(fā)任務(wù),一個(gè)組織需要一種客觀的、標(biāo)準(zhǔn)化的方法進(jìn)行評(píng)估和度量,這種方法對(duì)所有類(lèi)型項(xiàng)目都應(yīng)該是有效的并且獨(dú)立于開(kāi)發(fā)技術(shù)和開(kāi)發(fā)人員的效率。
3、使用軟件功能規(guī)模測(cè)量標(biāo)準(zhǔn)方法管理 “大規(guī)模敏捷”
3.1 軟件功能規(guī)模測(cè)量方法概述
軟件功能規(guī)模測(cè)量方法(即功能點(diǎn)法),如IFPUG、Nesma、COSMIC等均有相關(guān)國(guó)際標(biāo)準(zhǔn),本文不再過(guò)多贅述。
3.2 在敏捷中度量軟件規(guī)模
在討論何時(shí)進(jìn)行軟件規(guī)模度量前,首先需要識(shí)別三個(gè)層級(jí)的度量指標(biāo)。參見(jiàn)下圖,該圖從敏捷管理SAFe框架衍生而來(lái)。
圖 1 大規(guī)模敏捷管理框架
簡(jiǎn)單來(lái)說(shuō),只有使用標(biāo)準(zhǔn)化的功能規(guī)模測(cè)量方法,才能在系統(tǒng)和發(fā)布級(jí)別進(jìn)行適當(dāng)?shù)墓浪?、?jì)劃和控制。新建系統(tǒng)早期的功能規(guī)模估算可以采用類(lèi)比法。
在團(tuán)隊(duì)級(jí)別,可以選擇軟件功能規(guī)模測(cè)量標(biāo)準(zhǔn)或繼續(xù)使用現(xiàn)有的故事點(diǎn)。對(duì)于敏捷團(tuán)隊(duì)來(lái)說(shuō),多種方法的組合可能是最成功和最可接受的。例如:
●使用標(biāo)準(zhǔn)的軟件功能規(guī)模測(cè)量方法評(píng)估整體系統(tǒng),有助于目標(biāo)項(xiàng)目規(guī)劃和資源分配;
●在回顧期間(或者在每月一次的DevOps環(huán)境中),使用標(biāo)準(zhǔn)的軟件功能規(guī)模測(cè)量方法,在發(fā)布或迭代級(jí)別評(píng)估已交付或完成的規(guī)模以評(píng)價(jià)團(tuán)隊(duì)績(jī)效,并為未來(lái)的評(píng)估需求積累歷史數(shù)據(jù);
●允許團(tuán)隊(duì)使用已經(jīng)建立的敏捷過(guò)程來(lái)進(jìn)行短期的(迭代)工作評(píng)估,例如 “規(guī)劃撲克”估算故事點(diǎn)。
一些組織已經(jīng)開(kāi)始使用軟件功能規(guī)模測(cè)量標(biāo)準(zhǔn)方法來(lái)評(píng)估已交付的軟件,并評(píng)估從單個(gè)用戶(hù)故事一直到迭代或發(fā)布級(jí)別的整個(gè)可交付成果。每個(gè)組織都應(yīng)該選擇自己認(rèn)為最適合的方法來(lái)度量團(tuán)隊(duì)層面的用戶(hù)故事(故事點(diǎn)或功能點(diǎn))。
3.3 使用功能規(guī)模估算
在評(píng)估系統(tǒng)、發(fā)布或迭代級(jí)別的工作量時(shí),首先需要在該級(jí)別上評(píng)估要交付的軟件產(chǎn)品規(guī)模,并結(jié)合同一級(jí)別的以前交付的相似軟件的“實(shí)際”生產(chǎn)率(而不是“速度”)數(shù)據(jù)。
建立這些評(píng)估過(guò)程應(yīng)謹(jǐn)慎,特別是以下幾點(diǎn):
●通過(guò)測(cè)算大量具有共同特征的歷史開(kāi)發(fā)項(xiàng)目的規(guī)模和工作量來(lái)建立規(guī)模/工作量模型。雖然生產(chǎn)率數(shù)據(jù)可以從外部基準(zhǔn)測(cè)試服務(wù)中獲得,但我們建議每個(gè)組織收集自己的歷史數(shù)據(jù),因?yàn)槊艚莼顒?dòng)中有很多變量會(huì)影響生產(chǎn)率;
●在項(xiàng)目早期評(píng)估新建系統(tǒng)的規(guī)模,可以使用標(biāo)準(zhǔn)的軟件功能規(guī)模測(cè)量方法;
●在項(xiàng)目早期,當(dāng)軟件需求不明確時(shí),可通過(guò)類(lèi)比法和專(zhuān)家判斷進(jìn)行評(píng)估,但估算結(jié)果仍然需要保持相同的度量單位。
3.4 在敏捷合同中使用軟件規(guī)模度量
當(dāng)客戶(hù)和供應(yīng)商存在合同關(guān)系時(shí),具有敏捷開(kāi)發(fā)能力的供應(yīng)商通常會(huì)主張簽訂基于時(shí)間和材料 (T&M)的合同。供應(yīng)商的理由可能是,如果客戶(hù)希望在需求明確之前就開(kāi)始敏捷開(kāi)發(fā),那么投標(biāo)價(jià)格除了包含不同級(jí)別開(kāi)發(fā)人員薪資外,就沒(méi)有其他任何可參考的信息了。
然而純粹的T&M合同是極不平衡的。一份T&M合同對(duì)供應(yīng)商來(lái)說(shuō)是100%安全的——無(wú)論交付什么都能得到報(bào)酬——但留給客戶(hù)的只有通過(guò)總預(yù)算來(lái)控制成本。客戶(hù)沒(méi)有管理機(jī)制來(lái)判斷付款進(jìn)度、供應(yīng)商績(jī)效以及供應(yīng)商的服務(wù)是否物有所值。
一種有助于平衡客戶(hù)和供應(yīng)商之間談判優(yōu)勢(shì)的解決方案就是根據(jù)“價(jià)格/單位規(guī)模”來(lái)簽訂合同,其中交付(或開(kāi)發(fā)) 的功能規(guī)模可用標(biāo)準(zhǔn)的軟件功能規(guī)模測(cè)量方法來(lái)評(píng)估。然后客戶(hù)在其需求的總規(guī)模上承擔(dān)風(fēng)險(xiǎn);供應(yīng)商承擔(dān)報(bào)價(jià)單價(jià)的風(fēng)險(xiǎn)。此外,客戶(hù)也必須在供應(yīng)商合理地給出單價(jià)之前明確相關(guān)要求,并確保交付的功能可以轉(zhuǎn)化為業(yè)務(wù)價(jià)值(只有在使用該功能時(shí)才可能實(shí)現(xiàn))。最終,雙方需要就“完成”的功能何時(shí)可以度量和結(jié)算達(dá)成一致。
4、標(biāo)準(zhǔn)化的軟件規(guī)模度量方法
很明顯,自組織敏捷團(tuán)隊(duì)的價(jià)值觀與更高管理者的價(jià)值觀和合理控制需求之間存在著“文化沖突”。因此,如果管理層希望在現(xiàn)有的敏捷開(kāi)發(fā)團(tuán)隊(duì)中引入一種標(biāo)準(zhǔn)化的軟件功能規(guī)模測(cè)量方法,就必須仔細(xì)考慮敏捷文化,以免破壞團(tuán)隊(duì),喪失敏捷開(kāi)發(fā)帶來(lái)的好處。
最重要的問(wèn)題是什么時(shí)候度量(見(jiàn)上文3.2)以及由誰(shuí)來(lái)度量。“誰(shuí)”這個(gè)問(wèn)題的答案取決于組織的規(guī)模以及客戶(hù)和敏捷團(tuán)隊(duì)之間的關(guān)系(合同或非正式的)。
實(shí)際上,團(tuán)隊(duì)?wèi)?yīng)該自我度量,并將軟件規(guī)模度量視為對(duì)敏捷過(guò)程不可或缺的幫助,而不是額外的任務(wù)。(經(jīng)驗(yàn)發(fā)現(xiàn),使用標(biāo)準(zhǔn)化軟件規(guī)模度量方法可以有效保障需求的質(zhì)量和完整性。)
在項(xiàng)目早期,大型組織在發(fā)布開(kāi)發(fā)計(jì)劃或簽署合同時(shí)引入軟件規(guī)模度量方法,組建度量專(zhuān)家小組是非常有益的,比如:
●內(nèi)部:項(xiàng)目管理辦公室;
●外部:提供功能規(guī)模度量服務(wù)的外部專(zhuān)家供應(yīng)商。
成立度量專(zhuān)家組的優(yōu)勢(shì)在于其度量的客觀性、準(zhǔn)確性和效率。
組織無(wú)論采用哪種解決方案,定期收集度量數(shù)據(jù)并作為組織學(xué)習(xí)的基礎(chǔ)都是至關(guān)重要的。
至于如何向缺乏這些方法經(jīng)驗(yàn)的組織引入軟件規(guī)模度量方法,以“自底向上”的方式進(jìn)行肯定是更好的。換句話(huà)說(shuō),在一個(gè)試點(diǎn)項(xiàng)目中,首先在團(tuán)隊(duì)層面引入軟件規(guī)模度量方法,當(dāng)獲得滿(mǎn)意的結(jié)果并且組織獲得信心時(shí),再橫向擴(kuò)展然后向上(到發(fā)布和系統(tǒng)級(jí)別)。
5、總結(jié):功能點(diǎn)與故事點(diǎn)對(duì)比
6、結(jié)論
設(shè)定目標(biāo)和預(yù)算并據(jù)此進(jìn)行績(jī)效評(píng)價(jià)是每個(gè)組織的標(biāo)準(zhǔn)做法。本文并不是把敏捷軟件開(kāi)發(fā)活動(dòng)排除在這些標(biāo)準(zhǔn)的業(yè)務(wù)實(shí)踐之外。
“故事點(diǎn)”對(duì)于控制或評(píng)估單個(gè)團(tuán)隊(duì)以上級(jí)別的敏捷活動(dòng)幾乎沒(méi)有幫助。而功能點(diǎn)方法可以很容易在更高級(jí)別上替代故事點(diǎn),而且不會(huì)對(duì)敏捷過(guò)程的價(jià)值產(chǎn)生任何負(fù)面影響。在單個(gè)用戶(hù)故事和迭代的層面上,每個(gè)組織可以自行決定是使用標(biāo)準(zhǔn)化的軟件規(guī)模度量方法或故事點(diǎn)進(jìn)行短期評(píng)估。
在已建立的敏捷開(kāi)發(fā)的團(tuán)隊(duì)中引入標(biāo)準(zhǔn)功能點(diǎn)法應(yīng)謹(jǐn)慎處理。本文旨在不破壞敏捷文化的前提下,讓組織相信使用客觀控制和度量方法的好處,同時(shí)也不會(huì)失去敏捷在交付軟件時(shí)的速度和靈活性。(本文由北京中基數(shù)聯(lián)科技有限公司翻譯,僅供學(xué)習(xí)參考使用,版權(quán)歸原作者所有,轉(zhuǎn)載請(qǐng)標(biāo)明出處。若有侵權(quán)請(qǐng)聯(lián)系我們刪除。本文內(nèi)容原文鏈接:https://www.isbsg.org/2021/10/18/2021-it-confidence-conference/)
以上就是軟件造價(jià)評(píng)估公司中基數(shù)聯(lián)為您帶來(lái)的“使用功能點(diǎn)法管理敏捷活動(dòng)”所有內(nèi)容,更多軟件開(kāi)發(fā)成本估算知識(shí)敬請(qǐng)關(guān)注中基數(shù)聯(lián)!