如果投機取巧,一旦開發項目陷入可靠性或經濟上的無底洞時麻煩就大了。下面來看看避免技術債務風險的方法。
快速完成一個IT軟件項目而又不產生某種程度的技術負債是很難的。當人們倉促地開發和部署項目時,質量往往會受到損害,因此人們不得不解決兼容性問題,安全漏洞,性能問題以及各種需要大量預算的麻煩事。
但是,即使重要項目嚴格受制于日程限制時,技術債務仍可以減少到可接受的水平,從而可以在時間,質量與成本之間進行合理的權衡。下面來看看減少或消除技術債務而幾乎不會產生負面影響的八種方法。
1. 使運營和業務團隊目標一致
減少發生技術債務的可能性的一種方法是在項目計劃中納入IT運營和業務團隊。金融服務咨詢公司Actualize Consulting的負責人Matt Seu說:“這使運營商在計劃制定過程中有了話語權,并在上市時間與維護成本之間有權衡利弊的余地。”
Seu說:“在迭代計劃中做出明確的決定,以發現何時會發生技術債務以及必須在什么時間范圍內消除技術債務。以這種方式管理技術債務將在項目結束時消除項目風險。”
IT人員和技術服務公司Genesis10的首席執行官Harley Lippman表示,控制技術債務是團隊的工作,應像項目一樣進行管理。他說:“這將使該組織不遺余力地牢記初衷并且不至于白白浪費時間”。專注于漸進式改進。“不妨設立團隊指標以確保團隊協作并將管理技術債務作為工作重點。”
2. 仔細計劃并編制切合實際的預算
要避免技術債務就必須進行周密的計劃并了解大量嚴酷的真相。云聯絡中心提供商Five9的首席技術官Jonathan Rosenberg解釋說:“對產品的發展方向有明確的要求和視野,再加上適當的資源配置和成熟的軟件開發流程,這一切使工程師能夠以適當的技術債務水平創建產品。”
醫療技術軟件開發商MedAcuity的首席軟件工程師Jarman Joerres建議在項目開始時就創建名為“工程準備金”的預算,以應對導致意外技術債務水漲船高的一切意外因素。他說:“規劃可最大限度地減少或消除技術債務的軟件項目的最佳方法是將其包含在計劃和估算中。”
史蒂文斯理工學院的IT副總裁兼首席信息官David Dodd指出,只有當人們理解,進行計劃并從戰略層面上為組織的未來定位時,技術債務才是有用的。他說:“例如,當某個組織故意等待開發新產品所需的新興技術,或計劃開發和發布有助于轉變市場的全新系統時。否則,技術債務就會通過出賣你的未來能力而損害了組織的長期利益。”
3. 設定可實現的目標并衡量結果
應對交付時間的壓力是企業要面對的常態,但是要抵制使用設計捷徑來加快開發進度的誘惑,因為倉促開發的軟件在未來往往很令人操心。
開發架構提供商Skuid的首席技術官兼工程執行副總裁Mike Duensing表示:“架構師的解決方案可針對開發和生產進行擴展”。Duensing強調了這樣做的重要性——與用戶互動以了解其要求并預測未來的變化需求。避免設定不切實際的設計目標也是十分明智的。他說:“與其嘗試發布一大堆功能,不如將解決方案范圍縮小,逐步遞增,從而使你可以分配適當的時間進行適當的設計和測試。”
管理技能培訓組織CTO Academy的聯合創始人Jason Noble建議向所有開發團隊成員強調質量的重要性。他說:“他們必須明白,這必須納入所有流程。”
Noble還建議為每個產品迭代制定可衡量的目標。他表示:“將此設定在可實現的水平。經過多次迭代,技術債務可以得到減少,同時又不影響新產品的功能,同時還要具備可持續性更高和更可靠的代碼。”
為了確保達到質量標準,Noble建議使用靜態分析工具,例如開源產品SonarQube。他說:“這些工具會掃描代碼并提供各種質量指標,類似于文字處理器中使用的閱讀和語法工具。”
4. 建立在牢固且靈活的基礎上
確保你的項目有牢固的架構作為依托。Duensing警告說:“糟糕的建筑結構造就了無法整改的豆腐渣房屋……并可能引發衰退”。經過精心設計,強化的解決方案有助于項目更新更快且成本更低,從而減少發生意外技術債務的可能性。
團隊負責人還必須明白,幾乎每個項目計劃都是從毫無頭緒開始的,并且往往是在制度壓力下發展,以至于產生過于樂觀的態度。聯合利華的子公司uFlexReward的首席執行官Ken Charman表示:“解決技術債務的辦法不是以更詳細的計劃和更嚴格的合同來降低風險,從而解決過度樂觀的問題,而是要更明智地管理交付預期”,這是在推廣一種員工獎勵制度。他認為:“使用寬松的計劃,其獎勵差額大體上基于經驗;這將減少通過放棄功能來實現交付的需要”,他是這樣認為的。
5. 敏捷化
有越來越多的組織漸漸接受敏捷軟件開發,這是將方法交給協作,自行組織的團隊和跨職能團隊的一系列方法和實踐。如果這種方法得到嚴格應用,敏捷開發使組織可以避免技術債務,其方法是快速且以迭代的方式創建和發布新產品。Dodd說:“這一過程將新產品和新功能盡快并逐步地交到用戶手中”。隨著新版本的交付,各種改進和問題都得到了解決,這使技術債務的積累不太可能產生。
敏捷方法認識到項目在生命周期中從未真正完成過,并且也從來都不是完美的。“同時,敏捷方法專注于……針對能力和質量的簡化了的開發”,Dodd說。重要功能往往要頻繁地開發,測試并投入生產。敏捷團隊可能不會發布軟件的“全面(Big Bang)”方法,而是每年發布幾次重大升級。Dodd指出:“這可以使產品保持相當平穩的發展,還可以幫助用戶避免重大的中斷事件。”
6. 避免使用過時的技術
遺留應用程序,過時的技術以及不同的平臺和流程可能會使組織陷入沉重的技術債務,迫使其推遲基本的現代化計劃。DNS和流量管理技術提供商NS1的聯合創始人兼首席執行官Kris Beevers說:“技術債務將大量金錢和寶貴的時間浪費在系統和應用程序上,而這些系統和應用程序并不是為現代企業所需的規模和速度而打造的。”
舊資產和老方法也往往充斥著安全漏洞,難以集成和自動化,并且很可能不再更新。 Beevers指出:“尋找人才來管理基于復雜或過時的代碼構建的遺留應用程序也是一個日益嚴峻的難題。堅持采用過時技術不僅會消耗寶貴的預算,而且還會阻礙公司創新和保持競爭力的能力。”
7. 淘汰沒有得到充分利用的資源
定期檢查現有平臺和應用程序的使用水平,這是另一種減少技術債務的方法。人工智能和機器語言咨詢公司Small Scale AI的首席顧問Rob Peterscheck表示:“也許只要刪除未使用或很少使用的產品(而不是對其進行更新)就可以消除技術債務。實際情況往往是,在技術產品使用最少的地區,技術債務卻最嚴重。”
技術債務是可以減少的,其方法是利用高效的生命周期,專注于對日常需求至關重要的平臺和應用程序并減少不必要的產品(雖然這些工具可能不完全是遺留工具,而是需要穩定的更新和修復程序來服務不斷減少的用戶)。Peterscheck指出:“對于大型組織而言,光是了解環境中的所有應用程序和解決方案以及它們的使用方式就已經夠難了。”
8. 注意警告標志
組織還應注意技術債務達到拐點時必然會出現的警告信號。Beevers指出,關鍵指標包括大量一次性手動變更,沒有足夠的文檔以及沒有與其它應用程序或云端做無縫集成。
只有急于使軟件快速上市時,在一定程度上容忍技術債務才是可接受的。Beevers說:“很多時候,將過渡的軟件先發布出去,以期未來的版本更新,這種做法是可以接受的。”
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。