如何管理軟件產(chǎn)品的技術(shù)債務(wù)?
軟件產(chǎn)品的資產(chǎn)、負(fù)債及控制權(quán)碎片化地以不同的形式分散到不同地方,比如以文檔、溝通、報(bào)表、數(shù)據(jù)、試驗(yàn)、資金流動(dòng)等方式提現(xiàn),這些碎片化的非結(jié)構(gòu)性數(shù)據(jù)量大、語義可能還會(huì)矛盾、難以管理、度量,這些多維度的碎片資產(chǎn)負(fù)債表最終會(huì)被壓縮到軟件產(chǎn)品的一維線性源代碼字符序列里或者二維源代碼章節(jié)里。
軟件產(chǎn)品研發(fā)完整的生命周期與流程一般包括4大部分:(a).市場(chǎng)營(yíng)銷,(b).產(chǎn)品、項(xiàng)目與服務(wù)銷售,(c).產(chǎn)品管理,(d)項(xiàng)目管理。每一部分都會(huì)對(duì)軟件產(chǎn)品的資產(chǎn)負(fù)債表兩邊產(chǎn)生一定影響。
軟件產(chǎn)品研發(fā)流程的4大部分還可以進(jìn)一步細(xì)分為:
(a).市場(chǎng)營(yíng)銷:創(chuàng)意采集、管理與篩選,內(nèi)部POC概念驗(yàn)證(技術(shù)、業(yè)務(wù)等),市場(chǎng)測(cè)試,面向客戶與市場(chǎng)的POC概念驗(yàn)證,商業(yè)需要(需求)調(diào)查統(tǒng)計(jì)(網(wǎng)站引流、點(diǎn)擊訪問統(tǒng)計(jì)、問詢記錄統(tǒng)計(jì)、調(diào)查問卷、已投產(chǎn)項(xiàng)目服務(wù)跟蹤與數(shù)據(jù)統(tǒng)計(jì)),選擇用戶及客戶代表溝通,
(b).產(chǎn)品、項(xiàng)目與服務(wù)銷售:銷售提案與跟蹤,合同生命周期跟蹤,銷售現(xiàn)金主要流入(產(chǎn)品許可證銷售收入),銷售現(xiàn)金附加流入(產(chǎn)品二次開發(fā)與項(xiàng)目定制銷售收入),其它現(xiàn)金流入
(c).產(chǎn)品管理:產(chǎn)品管理-商業(yè)計(jì)劃,產(chǎn)品管理-產(chǎn)品規(guī)劃,產(chǎn)品管理-需要分析,產(chǎn)品管理-需求分析
(d).項(xiàng)目管理:項(xiàng)目管理-探索,項(xiàng)目管理-建設(shè),項(xiàng)目管理-完善,項(xiàng)目管理-服務(wù)
軟件產(chǎn)品的源代碼只是上述高維度復(fù)雜事物在一維或者二維空間的投影,這個(gè)投影可以方便人類使用眼睛觀察復(fù)雜高緯度事物,但人類無法通過改變投影的形狀來改變實(shí)際事物的運(yùn)轉(zhuǎn),如需影響改變實(shí)際的復(fù)雜高緯度事物,還需要實(shí)際去操作實(shí)際的事物而不是其投影。對(duì)于軟件產(chǎn)品研發(fā)來說,就是需要首先超控變更市場(chǎng)營(yíng)銷、產(chǎn)品、項(xiàng)目與服務(wù)銷售、產(chǎn)品管理與項(xiàng)目管理里面的每一個(gè)細(xì)分實(shí)踐領(lǐng)域,然后最終反應(yīng)到軟件產(chǎn)品源代碼的變更上。
因此可以使用一套基于代碼的統(tǒng)計(jì)和度量方法對(duì)軟件產(chǎn)品的資產(chǎn)負(fù)債表進(jìn)行度量和作為管理的初始輸入。
比如:代碼復(fù)雜度、團(tuán)隊(duì)人力資源對(duì)代碼的熟悉掌握程度。
復(fù)雜的代碼通常也對(duì)應(yīng)著復(fù)雜得不可分解的需求與設(shè)計(jì),一般也蘊(yùn)含著大量的技術(shù)債務(wù)。
當(dāng)有團(tuán)隊(duì)人力資源交接時(shí),對(duì)應(yīng)軟件產(chǎn)品的功能模塊的技術(shù)債務(wù)也會(huì)突然上升很多,人員對(duì)軟件產(chǎn)品的熟悉程度通常也和軟件產(chǎn)品相關(guān)功能的資產(chǎn)負(fù)債率成線性比率關(guān)系。比如在全部更換軟件產(chǎn)品團(tuán)隊(duì)人力資源后,短期內(nèi)新團(tuán)隊(duì)接受不下來的話,相當(dāng)于技術(shù)債務(wù)接近軟件產(chǎn)品的全部資產(chǎn),軟件產(chǎn)品線所有者基本失去了對(duì)該產(chǎn)品的控制權(quán),可能連簡(jiǎn)單的變更操作都不能進(jìn)行,幾次新的項(xiàng)目迭代可能就會(huì)廢掉整個(gè)產(chǎn)品線。
理想中的軟件產(chǎn)品資產(chǎn)負(fù)債表運(yùn)營(yíng)還需要一整套項(xiàng)目管理系統(tǒng),用來建立起市場(chǎng)營(yíng)銷、產(chǎn)品、項(xiàng)目與服務(wù)銷售、產(chǎn)品管理與項(xiàng)目管理里面的每一個(gè)細(xì)分實(shí)踐領(lǐng)域的演化歷史及之間的關(guān)聯(lián)關(guān)系,并最終如何與源代碼關(guān)聯(lián)起來的關(guān)系。這樣軟件產(chǎn)品系統(tǒng)生命周期內(nèi)的演化就可以相對(duì)精確地被度量和操控,任何新的變更影響都能得到及時(shí)分析和管理,技術(shù)債務(wù)可以在管理能力范圍內(nèi)健康可控地演化。
(0) Comments