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

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

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

0

225

0

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

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

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

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

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

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

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

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

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

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

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

更快的迭代

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

無限快速發(fā)展

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

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

避免過去的錯(cuò)誤

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

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

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

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

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

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

使您的競爭對手受益

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

耗時(shí)

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

也重寫工作特性

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

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

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

浪費(fèi)以前的錯(cuò)誤修復(fù)

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

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

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

什么時(shí)候重寫遺留應(yīng)用程序會(huì)是一個(gè)錯(cuò)誤?

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

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

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

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

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

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

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

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

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

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

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

確保團(tuán)隊(duì)了解您未來的計(jì)劃和其他功能

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

問題是,如果你:

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

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

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

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

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

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

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

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

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

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

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