中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

從頭開始重寫應用程序的利弊|應用程序所有者指南

發(fā)布于:2021-02-16 00:00:20

0

229

0

博客 商業(yè) 發(fā)展 基礎

你的產品是否有遺留的代碼,它是否遭受了隨之而來的所有缺點?看似簡單的功能平均上市時間是否在飆升?找到愿意在應用程序使用的過時技術堆棧中工作的開發(fā)人員是否越來越難、越來越貴?您的產品是否受到錯誤和/或性能問題的轟炸?

當這些和類似的問題開始困擾產品所有者時,他們可能會面臨一個兩難的境地,即決定是否從頭開始完全重寫應用程序。那么,什么時候值得從頭開始重寫一個遺留應用程序呢?在這篇文章中,我們將看一些能幫助你下定決心并最終做出正確決定的要點。在我們深入研究從頭開始重寫應用程序的利弊之前,讓我們簡要地解釋一下應用程序重寫的含義。

什么是應用程序重寫?

首先,讓我們定義項目重寫的真正含義。這個定義是必要的,以確保我們在同一頁。已經有許多文章討論軟件項目重寫。因此,人們認為重寫的內容有多種定義。

有完全重寫(又稱從頭重寫),還有部分應用程序重寫的功能定義,也稱為修改、重寫、調整或移植。如您所見,軟件產品重寫的概念很快就會變得混亂。

在這里,我們將重點討論從頭開始重寫應用程序。與項目重構相比,這種方法有幾個優(yōu)點,也有一些缺點。

現在,請記住,我指的是應用程序的完全重寫,它有時仍然允許重用某些代碼位。例如,算法的實現或各種(適當隔離的)業(yè)務用例有時可以很容易地重用,只要業(yè)務需求沒有改變。

相反,項目重構非常注重重用舊代碼,只從頭開始重寫某些部分。兩者之間的界限很細,這取決于你假設的定義。

有關重構過程的更精確的解釋,以及何時選擇重構而不是重寫更好,請參閱我們的《重構與重寫移動應用程序-應用程序所有者比較》一文。

從頭開始重寫應用程序的優(yōu)點

更快的迭代

應用程序重寫通常還包括應用程序架構的重新設計。新的體系結構應該確保代碼在將來易于更改和改進。這將導致更快的迭代向前推進,以及更短的反饋循環(huán)。

無限快速發(fā)展

開發(fā)人員不會以任何方式受到現有代碼的限制,從而更容易使用最新的技術。這將幫助您確保應用程序是使用最先進的技術開發(fā)的。這不是一個空洞、浮華的時髦詞。新技術是最流行的技術。軟件工程師喜歡與他們保持同步。這意味著如果您決定擴展您的開發(fā)團隊,市場上將有更多的開發(fā)人員可供選擇。

每一個遺留應用程序的產品所有者都知道為一個舊的語言或框架尋找開發(fā)人員是多么困難。除此之外,技術越受歡迎,它周圍的社區(qū)就越好,規(guī)模也就越大。這意味著有更多關于如何處理開發(fā)人員偶然發(fā)現的bug和問題的知識。反過來,這意味著應用程序開發(fā)過程更快。

避免過去的錯誤

如果您已經組建了一個具有進行大型重寫經驗的開發(fā)人員團隊,那么新的開發(fā)團隊將有可能避免犯以前的開發(fā)人員所犯的錯誤。為此,您還需要完全控制業(yè)務領域知識。

刷新應用程序設計

應用程序重寫允許您重新考慮整個應用程序設計和模塊,以及其優(yōu)化。您有一個很好的機會來修改您的用戶旅程地圖,并確保沿途的每一步對最終用戶都是不言自明的。請記住,設計良好的用戶體驗是不需要解釋的。

重新思考應用程序功能

您有機會驗證您的產品是否以最有效的方式解決了用戶的問題,并決定它真正應該具有哪些功能。重寫是一個很好的機會,因為您可能會重新訪問用戶旅程圖或類似的文檔。

從頭重寫應用程序的風險

使您的競爭對手受益

決定完全重寫而不同時維護舊的應用程序就像給你的競爭對手一年或兩年的自由時間(例如,在構建新功能方面)。從商業(yè)角度看,這是一個很長的時間。由于如此糟糕的戰(zhàn)略規(guī)劃,整個公司都倒閉了。

耗時

時間是重寫過程中消耗的關鍵資源。如果不能達到目的并解決關鍵問題,其中的一部分將被浪費掉。在重寫過程中,可能會出現一些最初隱藏的業(yè)務需求,并且可能會發(fā)生額外的延遲。

也重寫工作特性

重寫將丟棄應用程序中按要求工作的部分。重寫要求開發(fā)人員重新實現所有特性。當應用程序用另一種語言或框架重寫時,這是不可避免的,當產品繼續(xù)使用相同的技術堆棧時,這是反對重寫的一個優(yōu)點。

因此,當我們談論使用完全相同的技術重寫應用程序時,即使是一段非常好的代碼也常常需要重寫。為什么?因為它可能不適合新的架構。如果我們要留下這樣一段舊代碼,我們就必須立即使用一些適配器,以便新的體系結構可以使用這個舊部分。這是一個危險信號,因為遺留代碼不應該控制新的體系結構。

當然也有一些例外,例如,你可以復制一些數學算法,但這種情況很少見。

浪費以前的錯誤修復

以前為修復bug所做的努力都白費了。項目的前一個版本可能有很多專門知識和開發(fā)時間用于修復bug。開發(fā)人員可能被迫解決僅從所使用的技術和框架衍生出來的問題。應用程序中的一些bug總是與使用過的庫和架構相連接,否則就不會出現。進行一次徹底的重寫就好像所有的努力都是徒勞的。

提高利益相關者的期望

你必須滿足組織的期望。當應用程序被重寫時,來自整個公司的利益相關者肯定會期望投資回報。例如,它可以是更好的用戶體驗/用戶界面設計、開發(fā)速度的提高、整體產品性能的提高、用戶對應用程序的評價提高、用戶保留率的提高,或者是更多的新用戶。產品所有者必須管理這些期望。你將是那個讓利益相關者相信蛋糕值蠟燭的人。

什么時候重寫遺留應用程序會是一個錯誤?

當一個新團隊看到一個繼承的項目代碼時,說服客戶并重新開始似乎是明智之舉。碰巧,對于應用程序擁有者來說,這并不總是最好的選擇。

此外,用與原始版本相同的開發(fā)團隊重寫應用程序很少是個好主意。假設開發(fā)人員由于各種原因(緊迫的截止日期、低技能的開發(fā)人員)積累了太多的技術債務。如果這是唯一的原因,公司絕對不應該進行完全重寫。

如果開發(fā)人員要求重寫決策僅僅是希望擺脫他們負責的混亂局面(除其他外),這表明您缺乏可靠的流程。每一個應用程序擁有者都應該知道,給團隊一張白紙而不花時間去發(fā)現為什么這些問題會首先出現,并且可能會改進組織流程,這很可能會導致同樣的情況——技術債務不斷增加。

即使你確信你有一個優(yōu)秀的開發(fā)團隊,這在很大程度上取決于行業(yè)的活動周期。如果你的競爭對手給了你很大的壓力,你不應該以重寫為目標。決定完全重寫意味著發(fā)布新特性將在很長一段時間內停滯不前。

當然,除非您有時間和資源進行重寫并并行維護當前產品版本。如果您的業(yè)務集中在市場的特定利基,您的上市時間指標將是最重要的。在這種情況下,你應該利用你所有的資源,以確保你將能夠獲得所需的部分市場蛋糕。

為你的應用程序重寫做一個潛在開發(fā)團隊的背景調查

正如我已經提到的,從頭開始重寫應用程序的關鍵是確保指定的團隊能夠達到預期。理想情況下,您希望了解開發(fā)人員是誰,他們的背景是什么,以及他們的總體經驗。您可以在專業(yè)社交媒體(如LinkedIn)或開發(fā)人員的私人Github存儲庫中查找此類詳細信息。

如果你決定與一家軟件開發(fā)公司合作,這將變得更加容易。一家重視客戶透明度的公司會愿意與您分享其中的一些細節(jié)。例如,您可以獲得有關特定開發(fā)人員參與的項目的詳細信息或有關客戶滿意度的一些指標。

請記住,您可能無法獲得確切的產品名稱,因為許多項目是在嚴格的保密協(xié)議下開發(fā)的。在這里,您可以閱讀一篇關于如何檢查應用程序開發(fā)的潛在合作伙伴的深入文章。

要重寫的項目有許多形狀和大小。如果你有一個大的,復雜的產品,你最好雇用一個非常適合的軟件工程師團隊。

從長遠來看,對于以前從事過復雜領域和大型代碼庫項目的經驗豐富的開發(fā)人員來說,支付額外的費用是值得的。這些經驗豐富的開發(fā)人員可以引導您完成收集業(yè)務需求的過程,向您提出明智的問題,從而能夠快速掌握業(yè)務領域的細節(jié)。

確保團隊了解您未來的計劃和其他功能

大家一致認為這并不總是可行的?;蛘咧辽俨皇峭耆?。也就是說,我并不是想說服任何人重新使用瀑布模型(這對于IT項目來說是一個完全的錯誤)。

問題是,如果你:

  • 從業(yè)務的角度了解您的領域,

  • 甚至有一個模糊的產品路線圖,

  • 能夠掌握并規(guī)劃一套幾乎完整的功能,

  • 可能還有某種用戶旅程圖……

它將使開發(fā)人員和負責選擇正確的體系結構模式的人員的工作變得更加容易。您對預先計劃的產品功能了解得越多,未來的代碼就越不復雜。同樣,我們討論的不是瀑布過程,而是一個良好的產品設計研討會/產品發(fā)現的結果。

通常,軟件開發(fā)機構也會提供產品設計研討會服務。這是一個向開發(fā)團隊傳達應用程序遠景和需求的理想機會。這些研討會的幾天將為團隊提供未來幾個月的足夠知識。與軟件工程師一起,您可以嘗試將這些特性調整為對啟動應用程序至關重要的少數特性(最小可行產品)。

同時,呈現給開發(fā)人員的更廣闊的視野將使他們能夠規(guī)劃體系結構。他們將能夠以一種使添加新特性幾乎不費吹灰之力的方式來構建它,極大地限制了遺留代碼在未來的影響。什么是遺留代碼,為什么要擔心它?在我們的文章中,您可以閱讀更多關于重構和重寫應用程序的比較。

從頭開始重寫應用程序的利弊——結論

對于開發(fā)者和產品擁有者來說,重新編寫一個應用程序似乎很有誘惑力,但從商業(yè)角度來看,這并不總是最好的選擇。作為產品所有者,您必須考慮許多因素,以確保這是您的組織蓬勃發(fā)展所需要的。獲取免費電子書-產品所有者指南。

如果您根據本指南決定重寫是一條路要走,請記住前面還有很多需要考慮的注意事項。首先也是最重要的是,你必須確保你依賴的是一個經驗豐富的開發(fā)團隊,對他們來說,這不是他們的第一次牛仔競技。

在復雜的應用程序重寫中成功的幾率與開發(fā)人員的經驗以及他們創(chuàng)建的團隊的優(yōu)秀程度成正比。除此之外,確保盡一切努力向他們傳達你對應用程序的看法。團隊對業(yè)務領域的理解越深入,他們的工作就越有效率。