4 敏捷的挑戰(zhàn)-衡量交付的價(jià)值
對(duì)于傳統(tǒng)的、瀑布式的軟件開發(fā)項(xiàng)目,功能性和非功能性需求一般在前期就已經(jīng)確定了,在開發(fā)階段不允許(或很少)進(jìn)行更改。因此,就可能會(huì)導(dǎo)致在經(jīng) 過長(zhǎng)期的交付和測(cè)試階段后,軟件的需求變更可能已經(jīng)很小。
敏捷開發(fā)的主要思想是通過短的反饋循環(huán)快速交付軟件。敏捷開發(fā)是軟件行 業(yè)中主流的方法,其優(yōu)勢(shì)如下:
? 靈活性和適用性:敏捷方法,如Scrum或看板,優(yōu)先考慮適應(yīng)性。為了 使團(tuán)隊(duì)能夠快速響應(yīng)客戶或市場(chǎng)需求,它們甚至可以在開發(fā)過程的后期更改需求、設(shè)計(jì)和優(yōu)先級(jí)。
? 以客戶為中心:敏捷專注于通過迭代開發(fā)周期為客戶提供價(jià)值。通過客戶或其它利益相關(guān)者的定期反饋可確保交付的產(chǎn)品與客戶需求一致。
? 快速交付價(jià)值:敏捷強(qiáng)調(diào)在sprint(小型增量迭代)中交付工作產(chǎn)品。這意味著軟件的功能部分可以快速交付,在開發(fā)過程的早期提供可見的交付。
? 質(zhì)量提升:持續(xù)的測(cè)試、頻繁的評(píng)審和迭代有助于提高產(chǎn)品質(zhì)量,及早發(fā)現(xiàn)并解決問題,可以降低最終產(chǎn)品出現(xiàn)重大缺陷的可能性。
? 增強(qiáng)團(tuán)隊(duì)協(xié)作:敏捷可以促進(jìn)跨職能團(tuán)隊(duì)之間的協(xié)作。每日站會(huì)、定期溝通和對(duì)任務(wù)的共同所有權(quán)都培養(yǎng)了團(tuán)隊(duì)合作和集體責(zé)任感。
? 透明度和可見度:敏捷實(shí)踐通過項(xiàng)目進(jìn)度、挑戰(zhàn)和障礙對(duì)所有團(tuán)隊(duì)成員可見的方式來提高透明度,有助于團(tuán)隊(duì)及時(shí)發(fā)現(xiàn)和解決問題。
? 風(fēng)險(xiǎn)緩解:將項(xiàng)目分解為更小的迭代可以實(shí)現(xiàn)更好的風(fēng)險(xiǎn)管理。可以及早發(fā)現(xiàn)問題或障礙,并在更短的時(shí)間內(nèi)解決,從而降低項(xiàng)目的總體風(fēng)險(xiǎn)。
? 強(qiáng)調(diào)持續(xù)改進(jìn):敏捷方法強(qiáng)調(diào)持續(xù)改進(jìn)。在每次迭代結(jié)束時(shí),團(tuán)隊(duì)都會(huì)反思哪些工作的好,哪些不好,并為下一次迭代做調(diào)整。
? 適應(yīng)性規(guī)劃:敏捷不依賴于僵化的長(zhǎng)期規(guī)劃。計(jì)劃會(huì)根據(jù)反饋、不斷變化的市場(chǎng)條件或新的需求進(jìn)行調(diào)整,從而實(shí)現(xiàn)更有效、更現(xiàn)實(shí)的規(guī)劃。
? 客戶滿意度高:讓客戶參與整個(gè)開發(fā)過程并提供滿足需求的功能,敏捷通常會(huì)帶來更高的顧客滿意度和更好的產(chǎn)品市場(chǎng)適應(yīng)性。
這些優(yōu)勢(shì)有助于敏捷在產(chǎn)品交付方面的普及和成功,敏捷產(chǎn)品更符合客戶需求,質(zhì)量更高,并能以更高效和適應(yīng)性更強(qiáng)的方式完成。
4.2 敏捷調(diào)查
在大多數(shù)企業(yè)中,每個(gè)團(tuán)隊(duì)的預(yù)算是可以預(yù)測(cè)的(每個(gè)團(tuán)隊(duì)成員的工作時(shí)間*每個(gè)團(tuán)隊(duì)成員成本),但產(chǎn)生的價(jià)值卻并非如此。使用故事點(diǎn)度量的團(tuán)隊(duì)有時(shí)可能看起來非常高效,但實(shí)際上可能并沒有產(chǎn)生預(yù)期的價(jià)值。如下圖所示。
在圖中,假設(shè)一個(gè)團(tuán)隊(duì)開始開發(fā)最小可行產(chǎn)品(MVP),并且正在進(jìn)行的開 發(fā)使用Scrum(一個(gè)用于項(xiàng)目管理的敏捷框架)。
在圖中的Y軸上,每次sprint的固定容量為1000工時(shí)。這些工時(shí)用于需要進(jìn)行的各種活動(dòng)。在第一次sprint中,可以在新增功能(綠色模塊)上占用大量 的工作量。當(dāng)然,也有一些必要的任務(wù)不能直接提供功能規(guī)模,例如設(shè)置測(cè)試環(huán)境等。這些任務(wù)(紅色模塊)是必要的,但不會(huì)產(chǎn)生可見的價(jià)值。因此,團(tuán)隊(duì)?wèi)?yīng) 該盡可能少在這些沒有產(chǎn)生可見價(jià)值的任務(wù)上耗費(fèi)工作量。
隨著時(shí)間的推移,客戶可能會(huì)更改已開發(fā)的功能(藍(lán)色模塊),甚至刪除已開發(fā)的功能(橙色模塊)。在sprint中后期,可能會(huì)出現(xiàn)新的紅色模塊。比如:代碼重構(gòu)和bug修復(fù), 在MVP上線后,可能還需要三線支持。
如前所述,許多團(tuán)隊(duì)使用主觀的、相對(duì)的、工作量估算的故事點(diǎn)方法。他們將故事點(diǎn)分配給所有需要工作量的任務(wù),但沒有考慮任務(wù)類型。因此,紅色模塊也會(huì)分配故事點(diǎn),因?yàn)樗鼈円残枰ぷ髁?。下圖解釋了這一說法。
當(dāng)看到開發(fā)的故事點(diǎn)時(shí),管理層可能會(huì)對(duì)團(tuán)隊(duì)的表現(xiàn)非常滿意,因?yàn)閳F(tuán)隊(duì)每次sprint可以產(chǎn)生80個(gè)故事點(diǎn),因此他們認(rèn)為估算是準(zhǔn)確的。然而,當(dāng)查看以添加、修改和刪除功能綜合來表達(dá)提供的價(jià)值時(shí),團(tuán)隊(duì)績(jī)效會(huì)隨著時(shí)間的推移而下降。
例如,當(dāng) MVP 的功能規(guī)模為 500 功能點(diǎn)時(shí),故事點(diǎn)度量方法并不能看出:MVP 何時(shí)準(zhǔn)備就緒,是否能夠按時(shí)交付且與業(yè)務(wù)功能保持一致。而功能點(diǎn)度量方法可以。
功能規(guī)模測(cè)量的 Nesma 標(biāo)準(zhǔn)(ISO/IEC 24570-1983)中定義了特定時(shí)間段(例如,sprint、月份、版本、季度等)內(nèi)項(xiàng)目規(guī)模的概念,如下所示:
項(xiàng)目規(guī)模=新增功能+修改功能+刪除功能
項(xiàng)目規(guī)模是開發(fā)團(tuán)隊(duì)創(chuàng)造的價(jià)值,與項(xiàng)目規(guī)模相關(guān)的度量指標(biāo)如下:
? 生產(chǎn)率:工時(shí)/項(xiàng)目規(guī)模;
? 成本效益:成本/項(xiàng)目規(guī)模;
? 交付速度:項(xiàng)目規(guī)模/月數(shù);
? Sprint 質(zhì)量:缺陷數(shù)/項(xiàng)目規(guī)模。
通過測(cè)量這些指標(biāo)以及故事點(diǎn),團(tuán)隊(duì)、產(chǎn)品負(fù)責(zé)人和管理層可以了解團(tuán)隊(duì)的真實(shí)績(jī)效,也可以使用ISBSG數(shù)據(jù)對(duì)團(tuán)隊(duì)績(jī)效進(jìn)行基準(zhǔn)測(cè)試。
5 度量方法的特點(diǎn)
好的度量方法都有共同的特點(diǎn),這些特點(diǎn)能夠有效地衡量團(tuán)隊(duì)績(jī)效或項(xiàng)目進(jìn)展:
1、相關(guān)性:應(yīng)與項(xiàng)目目標(biāo)直接一致,必須度量對(duì)預(yù)期結(jié)果有實(shí)際影響的指標(biāo);
2、清晰度:應(yīng)該易于理解和解釋,模棱兩可或復(fù)雜的指標(biāo)可能導(dǎo)致混淆和 誤解;
3、可度量:度量是可量化的,或者至少有一個(gè)明確的度量方法??梢噪S著時(shí)間的推移進(jìn)行一致的跟蹤和比較;
4、可實(shí)施:好的度量應(yīng)該是可實(shí)施的,并可以指出需要改進(jìn)的地方;
5、及時(shí)性:應(yīng)及時(shí)提供信息,實(shí)時(shí)或定期更新的度量方法通常更有價(jià)值, 因?yàn)檫@樣有助于快速調(diào)整和決策;
6、一致性:在不同的時(shí)間、團(tuán)隊(duì)或部門之間保持一致和可比性。一致性確保了評(píng)估進(jìn)程的可靠性;
7、成本效益:收集和分析過程不應(yīng)過于耗費(fèi)資源。使用該方法的成本應(yīng)取決于其提供的價(jià)值;
8、戰(zhàn)略一致性:應(yīng)與企業(yè)更廣泛的戰(zhàn)略目標(biāo)掛鉤,因?yàn)檫@樣有助于衡量實(shí) 現(xiàn)這些總體目標(biāo)的進(jìn)展情況;
9、背景:需要了解度量方法的背景,在不考慮背景的情況下進(jìn)行比較很可能會(huì)產(chǎn)生誤判;
10、閉環(huán):良好的度量方法有助于形成閉環(huán)。
在下表中,從企業(yè)管理層面(包括利益相關(guān)者,如產(chǎn)品所有者、高級(jí)IT經(jīng)理和管理層)對(duì)故事點(diǎn)度量方法和功能規(guī)模度量方法的特點(diǎn)進(jìn)行了評(píng)價(jià)。
表中各符號(hào)含義:+++:非常相關(guān),++:主要相關(guān),+:部分相關(guān),-:相關(guān) 性不大,---:不相關(guān)
那么,為什么在使用功能規(guī)模度量方法的企業(yè)卻不多呢?在傳統(tǒng)的軟件開發(fā)時(shí)代,人們把許多項(xiàng)目的失敗原因都?xì)w咎于功能點(diǎn),因此功能點(diǎn)在當(dāng)時(shí)使用并不 廣泛。此外,反對(duì)使用功能點(diǎn)還有一層原因:由于需要經(jīng)過認(rèn)證的專家來度量功能規(guī)模,因此使用功能點(diǎn)方法的成本非常昂貴。
如今,有一種技術(shù)可以從用戶故事中自動(dòng)度量功能規(guī)模。此外,由于sprint中開發(fā)的功能通常是有限的(通常每個(gè)sprint 不超過100個(gè)功能點(diǎn)),因此手動(dòng)度量所需時(shí)間非常短。例如,使用功能規(guī)模度量方法可以在2到4小時(shí)內(nèi)度量一個(gè)Sprint的項(xiàng)目規(guī)模。Scrum大師或產(chǎn)品所有者都能夠很容易地學(xué)習(xí)該方法。
6 總結(jié)
故事點(diǎn)度量對(duì)團(tuán)隊(duì)層面的規(guī)劃非常有用。但是,故事點(diǎn)方法不適用于進(jìn)行團(tuán)隊(duì)間的相互比較或與行業(yè)數(shù)據(jù)(如ISBSG數(shù)據(jù))進(jìn)行比較。
功能規(guī)模度量中的指標(biāo),如生產(chǎn)率、成本效益、交付速度和Sprint質(zhì)量,是客觀且可重復(fù)的,它們不依賴于非功能性和項(xiàng)目需求。
企業(yè)應(yīng)致力于提升團(tuán)隊(duì)功能規(guī)模度量能力和使用自動(dòng)度量功能規(guī)模的技術(shù),從而幫助管理層提高其企業(yè)的價(jià)值交付能力。
以上就是軟件造價(jià)評(píng)估公司中基數(shù)聯(lián)為您帶來的“故事點(diǎn)和功能點(diǎn)度量方法的主要差異分析(下)”所有內(nèi)容,更多軟件開發(fā)成本估算知識(shí)敬請(qǐng)關(guān)注中基數(shù)聯(lián)!