新聞中心
成長(zhǎng)中的軟件公司是如何處理技術(shù)債務(wù)的?為了解這個(gè)問題,我前后采訪了 200 多位專家,最終知道了最好的軟件工程師和領(lǐng)導(dǎo)者是如何管理技術(shù)債務(wù)的。

在路橋等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站制作,路橋網(wǎng)站建設(shè)費(fèi)用合理。
我們的新產(chǎn)品是客戶開發(fā)工作的一部分。因此,我需要深入了解軟件公司之間的差異,他們的技術(shù)債務(wù)有哪些可控,還有哪些是不可控的。技術(shù)債務(wù)是一個(gè)感性話題,提起它,人們就會(huì)喋喋不休。關(guān)于技術(shù)債務(wù),你去問問公司的工程師就知道了。
在很多情況下(如果不是大多數(shù)情況的話),技術(shù)債務(wù)會(huì)不斷累積,像“滾雪球”一樣,直到產(chǎn)生嚴(yán)重問題。
Stripe 的一份研究發(fā)現(xiàn):在一般的公司中,工程師們要花費(fèi)約 33% 的時(shí)間來處理技術(shù)債務(wù)。技術(shù)債務(wù)不僅打擊了團(tuán)隊(duì)士氣,而且每年給公司造成約 850 億美元的損失??吹竭@種情況,我們是不是該做點(diǎn)什么?
https://stripe.com/files/reports/the-developer-coefficient.pdf
Gartner 和許多其他公司讓我們知道,應(yīng)該做點(diǎn)什么。他們的研究顯示,積極管理技術(shù)債務(wù)的組織能將其交付速度至少提高 50%。
幸運(yùn)的是,我確實(shí)遇到一些公司,它們的技術(shù)債務(wù)管理策略非常可靠。在這些采訪中,有很多讓人眼前一亮的時(shí)刻。Everlane 的工程經(jīng)理 James Rosen 告訴我:
考慮一下,PM 花了多少時(shí)間來策劃要開發(fā)的特性集?,F(xiàn)在,把這個(gè)時(shí)間與工程師們?yōu)榧夹g(shù)債務(wù)尋找商業(yè)理由的時(shí)間做個(gè)比較。分配到技術(shù)債務(wù)上的工程能力幾乎為零,這還那么令人驚訝嗎?
我必須承認(rèn),這并不那么令人驚訝。
然而,我也遇到很多團(tuán)隊(duì),他們花了大量時(shí)間和精力來管理技術(shù)債務(wù),最終卻一無所獲。
我所有的研究都指向一個(gè)簡(jiǎn)單事實(shí):成功管理技術(shù)債務(wù)的公司不僅開發(fā)出適當(dāng)流程,而且還將這些流程完全融入了它們?nèi)粘5拿艚菪袆?dòng)中,成為一種好習(xí)慣。
這些工程團(tuán)隊(duì)控制住了他們的技術(shù)債務(wù),因此,他們的交付速度更快,更可預(yù)測(cè)。結(jié)果,不僅他們的工程師很高興,而且客戶也很高興——雙贏!
做到這種程度,實(shí)際上無需付出太多。你只需要清楚——如何處理小型、中型、大型的技術(shù)債務(wù)。
1. 如何處理小型技術(shù)債務(wù)
工程師在代碼中發(fā)現(xiàn)這種技術(shù)債務(wù)時(shí)就可以順手解決,而且這也在他們正在進(jìn)行的工作范圍內(nèi)。或許,它就是簡(jiǎn)單的重構(gòu)函數(shù)或重命名變量。
Robert C. Martin 說道:”總是讓代碼比你發(fā)現(xiàn)它時(shí)更好。“
這類小工作不需要任何類型的計(jì)劃,每個(gè)工程師都有權(quán)力在沒有任何人批準(zhǔn)的情況下解決這類債務(wù)。在這篇文章中,我們討論了健康代碼庫(kù)所需要的一個(gè)文化特質(zhì),要確保你的工程團(tuán)隊(duì)具備這樣的特質(zhì)。如果不具備,現(xiàn)在就采取措施解決這個(gè)問題。
https://blog.stepsize.com/the-one-cultural-characteristic-you-need-for-a-healthy-codebase/
在這方面,有許多工具可以幫助你,比如 Code Climate、Codacy、Tech Debt Metrics extension for VSCode。
2. 如何處理中型技術(shù)債務(wù)
這種類型的技術(shù)債務(wù)可以在一個(gè)沖刺內(nèi)被解決。它應(yīng)該像任何特性工作一樣經(jīng)過同樣的沖刺計(jì)劃過程,并被嚴(yán)格地考慮。
大多數(shù)工程團(tuán)隊(duì)都沒有做到——還記得 James Rosen 的評(píng)論嗎?Rosen 說,“分配到技術(shù)債務(wù)上的工程能力幾乎為零,這還那么令人驚訝嗎?”
企業(yè)優(yōu)先考慮為客戶提供價(jià)值的工作,這是對(duì)的。況且,處理技術(shù)債務(wù)并不能做到這一點(diǎn)。
但技術(shù)債務(wù)卻阻礙了你向客戶提供價(jià)值的能力。
要明確說明這是如何發(fā)生的,請(qǐng)確定哪些債務(wù)妨礙了關(guān)鍵的主動(dòng)性工作,或者在工程師生產(chǎn)力方面讓企業(yè)損失慘重,或者是導(dǎo)致影響客戶體驗(yàn)的 Bug 原因。
記錄技術(shù)債務(wù)并量化其成本,這讓你可以優(yōu)先考慮這些債務(wù),如果解決了這些債務(wù),就會(huì)像新功能一樣為客戶帶來價(jià)值。技術(shù)債務(wù)歸工程組織所有。他們的責(zé)任是解決它,并最終為它提供商業(yè)理由。
遺憾的是,這正是我們現(xiàn)有的工具迄今未能做到的地方。
Jira 很適合管理項(xiàng)目,但跟蹤和監(jiān)控技術(shù)債務(wù)卻很糟糕?!猆nqork 首席工程師 Jake Peyser
代碼質(zhì)量工具只有助于發(fā)現(xiàn)一方面的技術(shù)債務(wù),但其他大多數(shù)就無法捕獲了。
https://blog.stepsize.com/7-examples-of-sneaky-tech-debt-and-how-to-spot-them/
工程團(tuán)隊(duì)處理技術(shù)債務(wù)的時(shí)間有限,他們需要充分利用這些時(shí)間。
幸運(yùn)的是,Stepsize 可以幫助他們從工作流中捕獲和跟蹤技術(shù)債務(wù),這樣他們就能量化其造成的業(yè)務(wù)成本,并優(yōu)先處理最重要的債務(wù)。
每個(gè)工程師都可以直接從他們的工作流(包括編輯器、PR 和 Slack)中報(bào)告技術(shù)債務(wù)和成本。這些報(bào)告都會(huì)被送到 Stepsize 網(wǎng)站,它們?cè)谀抢锉徽沓伞凹夹g(shù)債務(wù)項(xiàng)”,描述和記錄代碼庫(kù)中的問題。最后,每一張 Jira 工單上都會(huì)加上相關(guān)的技術(shù)債務(wù)項(xiàng),解決它們可以更有效地為客戶提供價(jià)值。
我們建議工程團(tuán)隊(duì)負(fù)責(zé)人承擔(dān)管理這個(gè)過程的責(zé)任。他們個(gè)人掌握其團(tuán)隊(duì)所擁有的代碼庫(kù)中的技術(shù)債務(wù),并在需要解決債務(wù)的時(shí)候與 PM 溝通。
3. 如何處理大型技術(shù)債務(wù)
這種技術(shù)債務(wù)不可能立即解決,甚至不可能在一次沖刺中解決。我采訪過的最好的公司每季度都有技術(shù)規(guī)劃會(huì)議,所有的工程主管都會(huì)參加。工程經(jīng)理負(fù)責(zé)重點(diǎn)介紹匯報(bào)給他們的大型技術(shù)債務(wù),并為那些他們認(rèn)為最重要的債務(wù)提出商業(yè)理由。
這個(gè)過程聽起來很費(fèi)力,但對(duì)于 Stepsize 的用戶來說卻非常容易。他們的個(gè)人貢獻(xiàn)者已經(jīng)定期報(bào)告來自一線的債務(wù)。這些數(shù)據(jù)由每個(gè)團(tuán)隊(duì)和他們的領(lǐng)導(dǎo)者持續(xù)地審查和整理,他們將大量的債務(wù)——以及理解業(yè)務(wù)成本的必要數(shù)據(jù)——傳遞給他們的工程經(jīng)理。Stepsize 甚至可以揭示每個(gè) Jira 史詩(shī)的技術(shù)債務(wù)。然后,領(lǐng)導(dǎo)層可以利用他們對(duì)公司更廣泛的優(yōu)先事項(xiàng)和愿景的理解,對(duì)大型債務(wù)進(jìn)行相應(yīng)地排序。
每個(gè)大型債務(wù)經(jīng)過批準(zhǔn)后,就會(huì)被安排到路線圖中,就像特性工作一樣。這樣,工程負(fù)責(zé)人就有了他們需要的所有數(shù)據(jù),可以監(jiān)控每個(gè)技術(shù)債務(wù)項(xiàng)的處理進(jìn)展。
4. 小結(jié)
任何現(xiàn)代軟件公司都應(yīng)該能運(yùn)用這個(gè)過程來處理小型、中型、大型的技術(shù)債務(wù)。然而,不同的公司之間有一點(diǎn)不同:商業(yè)目標(biāo)。
妥善管理技術(shù)債務(wù)意味著解決阻礙你實(shí)現(xiàn)商業(yè)目標(biāo)的債務(wù)。如果你的業(yè)務(wù)是建立在正常運(yùn)行時(shí)間和可靠性的基礎(chǔ)上,那就把任何會(huì)讓它們處于危險(xiǎn)中的債務(wù)償還掉。如果開發(fā)速度是你的競(jìng)爭(zhēng)優(yōu)勢(shì),那么就消除任何浪費(fèi)工程時(shí)間或增加新員工理解代碼難度的債務(wù)。如果你想減少客戶流失,就解決導(dǎo)致質(zhì)量問題的債務(wù)。
明確處理每一筆債務(wù)的商業(yè)理由。因?yàn)楫?dāng)你這樣做的時(shí)候,你就會(huì)更好、更快地交付軟件——而且可以讓你的工程師們開心。
網(wǎng)頁(yè)題目:采訪了200多位工程師,我找到管理技術(shù)債的好方法
本文地址:http://fisionsoft.com.cn/article/dpicheh.html


咨詢
建站咨詢
