本篇我將從7個(gè)方面來談一談我對(duì)于項(xiàng)目優(yōu)化的理解者吁,并且將在后續(xù)的文章里通過不斷踐行記錄整個(gè)項(xiàng)目優(yōu)化的過程刀闷。
WHAT:項(xiàng)目優(yōu)化是什么根时?需要達(dá)到的目標(biāo)是什么病梢?
- 項(xiàng)目優(yōu)化是什么胃珍?
按照百度百科的解釋:優(yōu)化就是通過新的方式、方法或者新的技術(shù)蜓陌、算法得到更優(yōu)的解決方案觅彰。
那么在項(xiàng)目優(yōu)化中我的理解是:“更優(yōu)”意味著對(duì)于優(yōu)化這件事應(yīng)該從來是沒有終點(diǎn)的,不必想著一步到位钮热,階段性的優(yōu)化目標(biāo)更為合理填抬;“解決方案”意味著不僅僅是從技術(shù)層面的優(yōu)化,也應(yīng)該是從用戶需求霉旗、產(chǎn)品設(shè)計(jì)痴奏、技術(shù)方案、技術(shù)實(shí)現(xiàn)厌秒、產(chǎn)品落地推廣读拆、運(yùn)營跟蹤反饋等等多維度的系統(tǒng)性的進(jìn)行。
- 需要達(dá)到的目標(biāo)是什么鸵闪?
對(duì)于項(xiàng)目優(yōu)化顯性出來的目標(biāo)無外乎就是讓產(chǎn)品體現(xiàn)出更好用檐晕,更好用是一個(gè)模糊非量化的詞,正所謂“不可量化蚌讼,便無法優(yōu)化”辟灰,在量化更好用時(shí)也許可以得到以下大方向上的目標(biāo):
對(duì)于內(nèi):優(yōu)化的目標(biāo)是減少后期的維護(hù)成本,提高開發(fā)效率
對(duì)于外:最基本的應(yīng)該是穩(wěn)定篡石,而后才是降低用戶的學(xué)習(xí)使用成本芥喇;降低操作門檻直達(dá)用戶意圖;統(tǒng)一交互體驗(yàn)凰萨;增強(qiáng)信息及視覺感官效果…
WHY:為什么做或者說要達(dá)到目標(biāo)的動(dòng)機(jī)是什么继控?
對(duì)于組織來說所有想要達(dá)成的目標(biāo)也許源于較為深層次的動(dòng)機(jī):降本增效,獲取更高的價(jià)值交換胖眷。
WHO:優(yōu)化這件事應(yīng)該由誰來做武通?誰定義完成?
- 誰來做珊搀?
一個(gè)項(xiàng)目那就必定涉及的不僅僅是單方面冶忱,從單方面帶來的優(yōu)化效果應(yīng)該是有限的,也只能夠體現(xiàn)單方面的微薄的效果境析,要體現(xiàn)一個(gè)復(fù)利效果那么就應(yīng)該涉及產(chǎn)品囚枪、設(shè)計(jì)派诬、研發(fā)、測(cè)試眶拉、運(yùn)營推廣等多方面的進(jìn)行
- 誰定義完成千埃?
誰都可定義完成憔儿,但又誰都不可定義完成忆植,完成的定義最簡單直接的方法就應(yīng)該是從目標(biāo)當(dāng)中去找尋答案:檢驗(yàn)是否有成效地達(dá)到目標(biāo)即可定義是否完成。
WHEN:何時(shí)開始做谒臼?何時(shí)完成朝刊?
- 何時(shí)開始?
優(yōu)化需要滿足一個(gè)最根本的特征:那就是有可優(yōu)化的東西蜈缤,并且這個(gè)東西與我們預(yù)期在某種程度上存在不可容忍的差異拾氓,這個(gè)階段就是優(yōu)化開始的時(shí)候。
- 何時(shí)完成底哥?
在WHAT已經(jīng)提到過咙鞍,優(yōu)化是找尋更優(yōu)的解決方案,更優(yōu)意味著沒有終點(diǎn)趾徽,那么是否這件事情就需持續(xù)下去了呢续滋?這里個(gè)人覺得有個(gè)衡量標(biāo)準(zhǔn),那就是優(yōu)化所帶來的效果價(jià)值≈所付出的成本價(jià)值孵奶,此時(shí)定義為階段性優(yōu)化完成疲酌。
WHERE:從哪里開始入手?
業(yè)務(wù)邏輯層面了袁、產(chǎn)品設(shè)計(jì)層面朗恳、技術(shù)層面、其他(較為特殊载绿,將在后文細(xì)說)
HOW MUCH:花費(fèi)多少成本粥诫?
成本在不同的公司,不同的部門崭庸,不同的項(xiàng)目是不一樣的怀浆,無法去統(tǒng)一界定應(yīng)該花費(fèi)多少,有一條比較好的衡量原則:在這個(gè)非常達(dá)爾文的時(shí)代冀自,我們所做的幾乎所有事情都是基于價(jià)值的交換揉稚,價(jià)值交換落于一個(gè)項(xiàng)目上來說那就是投入產(chǎn)出比ROI,如果投入產(chǎn)出比達(dá)到預(yù)期或高于預(yù)期熬粗,那么所投入的時(shí)間成本搀玖、人力成本、資源成本驻呐,甚于說機(jī)會(huì)成本都是值得的灌诅。
HOW:怎樣去做芳来?
上述WHERE提到的四個(gè)層面來說:業(yè)務(wù)邏輯、產(chǎn)品設(shè)計(jì)猜拾、技術(shù)層面即舌、其他,總的來說由于經(jīng)驗(yàn)挎袜、認(rèn)知偏差所限顽聂,以及對(duì)于特定產(chǎn)品所實(shí)現(xiàn)的需求的信息質(zhì)量不高、數(shù)量較少盯仪,在業(yè)務(wù)邏輯紊搪、產(chǎn)品設(shè)計(jì)僅僅粗略談?wù)摗?/p>
以下言論僅出自一個(gè)程序員視角
業(yè)務(wù)邏輯層面
關(guān)于業(yè)務(wù)邏輯優(yōu)化,需要產(chǎn)品設(shè)計(jì)人員給予足夠的設(shè)計(jì)背景及設(shè)計(jì)思想全景,幫助或共同重新理解某個(gè)業(yè)務(wù)功能為何是這樣設(shè)計(jì)的耀石,這種看似對(duì)于技術(shù)來說非重要的東西,可以為技術(shù)方案設(shè)計(jì)提供廣度思考爸黄。
以一個(gè)這樣的場(chǎng)景為例:
一個(gè)在首頁上標(biāo)識(shí)為學(xué)習(xí)滞伟、學(xué)院亦或者學(xué)術(shù)的模塊,采用的是信息流的模式并且加有激勵(lì)機(jī)制炕贵,學(xué)習(xí)模塊僅為各種方面的信息流+推薦梆奈,獎(jiǎng)勵(lì)機(jī)制是對(duì)于所有信息流的內(nèi)容統(tǒng)一一致的獎(jiǎng)勵(lì)規(guī)則。
如若給到更多信息鲁驶,技術(shù)就可以從以下方面思考:
學(xué)習(xí)-信息流
學(xué)習(xí)應(yīng)該是意味著某種程度上的主動(dòng)鉴裹,而產(chǎn)品設(shè)計(jì)的是以類信息流的方式,這種類信息流本身就存在兩個(gè)原罪:一是沉浸钥弯;二是被動(dòng)径荔;沉浸的大概意思就好似我在瀏覽整個(gè)信息流過程中好似學(xué)到了東西,因?yàn)槊慨?dāng)我滑動(dòng)時(shí)得到的都是新的數(shù)據(jù)脆霎,但當(dāng)瀏覽完成結(jié)果是什么都沒有留下总处,這是類信息流的原罪。那么這里叫做學(xué)習(xí)是否合理睛蛛?亦或者說是否可以添加更多的標(biāo)簽鹦马,亦或者增強(qiáng)某種主動(dòng)搜索+某種歸并、分類的主動(dòng)學(xué)習(xí)入口忆肾。標(biāo)簽荸频、搜索足跡、歸并客冈、分類的信息等可以為推薦算法提供更多更精確的信息旭从。更加精準(zhǔn)的推薦用戶想看到信息,讓用戶更加依賴使用才是目的。
激勵(lì)機(jī)制
學(xué)習(xí)的激勵(lì)機(jī)制和悦,是否應(yīng)該去考慮不同內(nèi)容的信息退疫,給予獎(jiǎng)勵(lì)的時(shí)間,獎(jiǎng)勵(lì)的數(shù)量是不同的鸽素,技術(shù)在做這個(gè)功能的時(shí)候如果產(chǎn)品設(shè)計(jì)人員將后續(xù)可能存在的某種需求褒繁,那技術(shù)設(shè)計(jì)就可以一步到位,當(dāng)此項(xiàng)需求開啟的時(shí)候稍加修改即可
產(chǎn)品設(shè)計(jì)層面
一致的操作體驗(yàn)與規(guī)范
邏輯跳轉(zhuǎn)馍忽,UI界面表現(xiàn)棒坏,顏色、icon設(shè)計(jì)等
合理的引導(dǎo)
引導(dǎo)的特征應(yīng)該是用戶未知的, 具有重大場(chǎng)景改變舵匾,異于當(dāng)下操作習(xí)慣需要被教育的功能俊抵,作為主線功能需要特別提醒的谁不,滿足這些特征的做引導(dǎo)方可合理坐梯。
……
對(duì)于這一層面理解還不深,暫不展開談?wù)?/p>
技術(shù)層面
優(yōu)化對(duì)于技術(shù)來說有個(gè)核心前提:穩(wěn)定刹帕,在穩(wěn)定的前提之下總結(jié)了四個(gè)方面的大要以及部分細(xì)節(jié)吵血,大要分別為四個(gè)階段:開發(fā)階段、調(diào)試測(cè)試階段偷溺、發(fā)布階段蹋辅、上線階段。
開發(fā)階段
— 代碼規(guī)范:google swift規(guī)范挫掏,SwiftLint使用
— 框架分層設(shè)計(jì):基礎(chǔ)框架層侦另、業(yè)務(wù)基礎(chǔ)框架層、應(yīng)用層
— 交互:啟動(dòng)速度尉共、頁面響應(yīng)速度褒傅、操作流暢度調(diào)試測(cè)試階段
— 編譯優(yōu)化:如何加快編譯速度
— 代碼靜態(tài)分析
— 內(nèi)存:占用、泄漏檢測(cè)等發(fā)布階段
— 包大小優(yōu)化
— 發(fā)布流程優(yōu)化上線階段
— CPU袄友、內(nèi)存監(jiān)控
— 頁面卡頓監(jiān)控
— 電量消耗
— 崩潰日志
做技術(shù)的人往往有所謂的技術(shù)信仰殿托,但是切記業(yè)務(wù)穩(wěn)定才是真,穩(wěn)定就意味著首先采用的還是原有技術(shù)的剧蚣,期望的技術(shù)可以慢慢加入支竹,那些讓人興奮,覺得寫了有尿性的技術(shù)可以延后再用鸠按,最好在整個(gè)優(yōu)化過程中讓測(cè)試盡快介入礼搁,每一次階段性的優(yōu)化也可遵循MVP(最小可執(zhí)行)原則,快速檢驗(yàn)目尖,快速糾差馒吴。
其他
個(gè)人認(rèn)為重要,但又被常常忽略的:團(tuán)隊(duì)溝通。溝通的目的是告知募书、說服绪囱、達(dá)成共識(shí),這是高效完成一項(xiàng)任務(wù)的前提莹捡。
PM 與 研發(fā)鬼吵、測(cè)試
就像上文提到的“設(shè)計(jì)背景及設(shè)計(jì)思想”的交流,可以提升了某項(xiàng)業(yè)務(wù)功能的在技術(shù)心中存在的意義與價(jià)值篮赢,通過后期的正面反饋獲得某種“參與感”齿椅,也通過負(fù)面反饋去加深一些反思。
研發(fā)與研發(fā)
溝通交流實(shí)現(xiàn)方式启泣,通過他人的實(shí)現(xiàn)流程涣脚,方案來優(yōu)化自以為最優(yōu)的方案。這一點(diǎn)很重要寥茫,畢竟載自己熟悉的思維下做優(yōu)化是有限的遣蚀。
研發(fā)與測(cè)試
某些研發(fā)實(shí)現(xiàn)過程中發(fā)現(xiàn)的邏輯問題,測(cè)試很難通過自動(dòng)測(cè)試或者人工測(cè)試復(fù)現(xiàn)出來纱耻,這樣的溝通交流可以輔助測(cè)試發(fā)現(xiàn)更深的問題芭梯。
產(chǎn)品、技術(shù)與運(yùn)營
產(chǎn)品弄喘、技術(shù)可以從運(yùn)營處得到反饋玖喘,通過反饋數(shù)據(jù)加以邏輯佐證,糾正我們的認(rèn)知偏差蘑志,從而回歸客觀需求事實(shí)累奈。
總之:
溝通幫助我們互相了解共識(shí)
只有相互了解了,才能相互理解急但;相互理解了澎媒,才有可能共同高效達(dá)成目標(biāo)。溝通還可幫我弱化那種根深蒂固的“越熟悉羊始,越重視”思維旱幼,找出真正需要做的優(yōu)先級(jí)
溝通可以共同作出計(jì)劃
計(jì)劃有三個(gè)顯性的特征:階段性目標(biāo)、時(shí)間限定突委、大致可執(zhí)行的方案柏卤,及一個(gè)隱性特征:一定是與某項(xiàng)事務(wù)具有相關(guān)性,計(jì)劃的這些特性就是后期優(yōu)化遵從的原則(也許可以采用SMART原則來訂立我們的目標(biāo))
溝通就一定存在“沖突”
但這種沖突在某種程度上是積極的匀油,是值得的缘缚。由于沖突的兩個(gè)必要因素:一是被對(duì)方感知;二是存在意見或不一致敌蚜,并帶有某種相互作用桥滨。能讓對(duì)方感知,就促成了深入交流的基礎(chǔ)。沖突可以從不同視角齐媒、層次去思考從而產(chǎn)生新的想法和觀念蒲每,產(chǎn)生創(chuàng)新idea(想法、觀念喻括、創(chuàng)新并不是憑空而來的邀杏,而是基于已有的見解和經(jīng)驗(yàn))。
最后貼圖一張: