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

從頭開始重寫應(yīng)用程序的利弊|應(yīng)用程序所有者指南

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

0

224

0

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

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

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

什么是應(yīng)用程序重寫?

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

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

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

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

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

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

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

更快的迭代

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

無限快速發(fā)展

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

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

避免過去的錯誤

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

刷新應(yīng)用程序設(shè)計

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

重新思考應(yīng)用程序功能

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

從頭重寫應(yīng)用程序的風(fēng)險

使您的競爭對手受益

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

耗時

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

也重寫工作特性

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

因此,當我們談?wù)撌褂猛耆嗤募夹g(shù)重寫應(yīng)用程序時,即使是一段非常好的代碼也常常需要重寫。為什么?因為它可能不適合新的架構(gòu)。如果我們要留下這樣一段舊代碼,我們就必須立即使用一些適配器,以便新的體系結(jié)構(gòu)可以使用這個舊部分。這是一個危險信號,因為遺留代碼不應(yīng)該控制新的體系結(jié)構(gòu)。

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

浪費以前的錯誤修復(fù)

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

提高利益相關(guān)者的期望

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

什么時候重寫遺留應(yīng)用程序會是一個錯誤?

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

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

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

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

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

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

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

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

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

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

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

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

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

問題是,如果你:

  • 從業(yè)務(wù)的角度了解您的領(lǐng)域,

  • 甚至有一個模糊的產(chǎn)品路線圖,

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

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

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

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

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

從頭開始重寫應(yīng)用程序的利弊——結(jié)論

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

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

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