移動(dòng)媒體研發(fā)的9條教訓(xùn)
![](http://image.woshipm.com/wp-files/img/51.jpg)
編者按:本文作者方軍,跨界于內(nèi)容與技術(shù), 移動(dòng)互聯(lián)網(wǎng)從業(yè)者?,F(xiàn)任現(xiàn)代移動(dòng)數(shù)碼 CTO ,公司旗下有 iBloomberg 彭博商業(yè)周刊、iWeekly 周末畫報(bào)、iArt 藝術(shù)新聞等知名移動(dòng)媒體應(yīng)用。
在技術(shù)團(tuán)隊(duì)辦公區(qū)整面墻的白板上一直寫著三組詞:Breaking Things(打破事物)、Clarity(清晰)、Simple (簡(jiǎn)單)。這是 2013 年年中寫下的,這是對(duì)整個(gè)產(chǎn)品技術(shù)團(tuán)隊(duì)的期許,其中首要、也最重要的是,隨時(shí)準(zhǔn)備“打破一切”。
從“打破一切”開始,記錄一下過去兩年多的在內(nèi)容與技術(shù)間跨界的 9 條體會(huì)與教訓(xùn),是的,多數(shù)都是教訓(xùn)。
1. 樂于“打破事物”,永遠(yuǎn)不要害怕“打破事物”
“Breaking Things” 的想法冒出來是現(xiàn)在的項(xiàng)目從零開始進(jìn)行到差不多一年半之后。因?yàn)樵谥?,我們已?jīng)拋棄了自己的那些需要被打破的東西,每天橫沖直撞就是在打破那些別人舍不得打破的。經(jīng)歷十多年互聯(lián)網(wǎng)的轉(zhuǎn)型,雖然不是數(shù)字原生代,我們已經(jīng)逐漸了解隔段時(shí)期就必須忘掉所有的“經(jīng)驗(yàn)”。
但今年年中突然有一天,我們發(fā)現(xiàn)自己也不自覺地期望減少改變,擔(dān)心看似正常運(yùn)轉(zhuǎn)的系統(tǒng)因?yàn)檎{(diào)整出現(xiàn)問題。當(dāng)看到我們自己開始被害怕技術(shù)的正常調(diào)整帶來負(fù)面影響時(shí),我們意識(shí)到害怕打破的雜草已經(jīng)在埋下種子,而選擇開始打破,打破我們自己所積累的過去:代碼模塊可以被拋棄和替代,沒有希望的產(chǎn)品可以被放棄,可以拋棄原來的常規(guī)建立新的系統(tǒng),在調(diào)整中容許犯下錯(cuò)誤、犯下大錯(cuò)。
“打破事物”是艱難的,放棄已有的東西,是和人的常規(guī)心理相違背的?!按蚱剖挛铩笔瞧D難的,當(dāng)飛機(jī)還在地面上組裝時(shí),出點(diǎn)問題也不怕,但是,某個(gè)階段之后的打破卻是“在飛行中換引擎”。
2. 結(jié)構(gòu)比細(xì)節(jié)更重要
結(jié)構(gòu)的選擇比細(xì)節(jié)的選擇更重要?;蛟S因?yàn)榻巧煌冶容^傾向于從結(jié)構(gòu)的視角去考慮問題,而很多時(shí)候不得不用把眾人的注意力拉回結(jié)構(gòu)選擇。
把注意力放在細(xì)節(jié)上是非常容易有安全感的,做選擇的人會(huì)覺得一切在他 / 她的可控范圍之內(nèi),從而形成一種虛假的安全感。而結(jié)構(gòu)的選擇是不能給人安全感的,因?yàn)檫@時(shí)的選擇明顯受到大環(huán)境的影響、需要很多人達(dá)成共識(shí),沒人能有掌控感。
這就是有趣的地方,結(jié)構(gòu)的選擇實(shí)際上會(huì)給人更大的掌控感,但在此過程中卻人人都缺乏它。人不會(huì)相信想象的事物,直到真正地看到它;當(dāng)我們看到它時(shí),結(jié)構(gòu)已經(jīng)被細(xì)節(jié)隱藏起來了。
“產(chǎn)品經(jīng)理”這個(gè)概念這幾年已經(jīng)遠(yuǎn)遠(yuǎn)超出了互聯(lián)網(wǎng)行業(yè),深入人心,但特別多的人把它想成” “交互細(xì)節(jié)”,這是對(duì)它極大的誤解。細(xì)節(jié)是可變的,結(jié)構(gòu)才是穩(wěn)定不變的。比如,功能特性都是細(xì)節(jié),是隨著時(shí)間不斷變化的,而接口才是結(jié)構(gòu),它應(yīng)該是相對(duì)穩(wěn)定的。
3. 簡(jiǎn)單
我們常常無法選擇最簡(jiǎn)單的,有各種各樣的原因阻攔我們做到這一點(diǎn),其中最大的原因是懶惰。因?yàn)閼卸?,我們不愿意多痛苦一步;因?yàn)閼卸?,我們?nèi)淌芨鞣N讓系統(tǒng)變得復(fù)雜的雜亂事項(xiàng);因?yàn)閼卸?,我們用?fù)雜的方式去達(dá)成目的。最終,由于懶惰,我們事后付出更多的氣力。
“簡(jiǎn)單”被提起經(jīng)常是從設(shè)計(jì)的視角出發(fā),從產(chǎn)品與技術(shù)的角度出發(fā)還可以有新的認(rèn)知。任何一個(gè)技術(shù)系統(tǒng),都是要持續(xù)運(yùn)行與維護(hù)的,如果在開發(fā)階段想盡一切辦法達(dá)到簡(jiǎn)單,那么就自然地減少了后續(xù)成本。簡(jiǎn)單,才是可持續(xù)的。真正優(yōu)雅的方案,也都是簡(jiǎn)單的。
要始終相信有簡(jiǎn)單的選擇存在于某種,然后努力去找它。委員會(huì)式?jīng)Q策或相互妥協(xié),從來不能走向簡(jiǎn)單;只有愿意放棄自己的看法、選擇能找到的最佳方案,才可能走向簡(jiǎn)單。
4. 快速
快速就是對(duì)的。2012 年初,看到 Facebook 辦公室的幾條口號(hào)之一是,“Code Wins Argument”。快速就是,不要把時(shí)間浪費(fèi)在爭(zhēng)論上,用具體的代碼、產(chǎn)品來驗(yàn)證對(duì)錯(cuò)。不是花時(shí)間在爭(zhēng)論,而是直接用實(shí)現(xiàn)來驗(yàn)證對(duì)錯(cuò)。
在互聯(lián)網(wǎng)業(yè),我的感受是一個(gè)季度等于其他領(lǐng)域的一年;而在移動(dòng)互聯(lián)網(wǎng),一個(gè)月相當(dāng)于其他行業(yè)的一年。在互聯(lián)網(wǎng)之初有本書叫“21 個(gè)狗年:我在亞馬遜的日子”,狗的一月相當(dāng)人的一年。
移動(dòng)互聯(lián)網(wǎng)時(shí)代,我們每個(gè)月過的都是“一年”。之前一年的很多具體的產(chǎn)業(yè)洞察、技術(shù)能力、技術(shù)實(shí)現(xiàn)、產(chǎn)品功能,現(xiàn)在都已經(jīng)變得毫無意義。用這樣的“一年”來理解,能最好地解決快速的問題:沒有人會(huì)花一年的時(shí)間來爭(zhēng)論,是吧?
5. 在自建與集成之間平衡
在技術(shù)領(lǐng)域里面,一項(xiàng)功能是自行開發(fā)、還是采用已有的通用技術(shù)產(chǎn)品,這是個(gè)問題。
我們?cè)谧越ê图芍g來回轉(zhuǎn),有些選擇了集成,但最后發(fā)現(xiàn)某一天幾乎把所有的集成過來的全部拋棄,有些選擇了自建,但后來發(fā)現(xiàn)采用通用服務(wù)更簡(jiǎn)單快捷。這個(gè)選擇,可能是一個(gè)持續(xù)調(diào)整的過程,改變并不是說明之前選擇的錯(cuò)了。
自建,則可以構(gòu)建一體化的整體效果,集成,則可以快速達(dá)到目標(biāo)。一般而言的原則是,核心的業(yè)務(wù),應(yīng)該盡量采取自建;而非核心的,則采用通用產(chǎn)品。 關(guān)于這一點(diǎn)的補(bǔ)充原則是,只自建那些有長(zhǎng)期價(jià)值的、會(huì)長(zhǎng)期開發(fā)和升級(jí)維護(hù)的特性。對(duì)那些一次性、日拋型(月拋型)的特性,可以考慮直接否定掉。
這種一方面這樣、另一方面怎樣的原則,往往聽起來沒什么價(jià)值,但在工程領(lǐng)域就是這樣,絕對(duì)的原則往往脫離工程領(lǐng)域的實(shí)際情況。
這一看似模糊的事項(xiàng)成為我們自認(rèn)為需要記取的教訓(xùn),是由于對(duì)它的體會(huì)貫穿于每一天,它讓我們更好地理解工程原則。有這種工程方面的考慮,是因?yàn)槲覀儚囊婚_始就訂立了平臺(tái)化開發(fā)的路徑,因而具體產(chǎn)品和背后的工程化體系是并重的。
6. 持續(xù)地重建
重建,如果用開發(fā)的術(shù)語(yǔ)講,是“重構(gòu)”。對(duì)于技術(shù)團(tuán)隊(duì)來講,需要一段時(shí)間就重構(gòu)代碼,也包括重構(gòu)整個(gè)產(chǎn)品結(jié)構(gòu),以保證代碼不會(huì)在持續(xù)開發(fā)、增加功能過程中變得不可維護(hù),從而由資產(chǎn)變成負(fù)債。 樸素地講,重構(gòu),就是通過梳理調(diào)整,始終保持代碼是資產(chǎn),因?yàn)椋删S護(hù)的代碼才是資產(chǎn),可運(yùn)行的代碼不一定是。
在移動(dòng)互聯(lián)網(wǎng)方面,代碼的過時(shí)速度(特別是客戶端部分的),遠(yuǎn)快于互聯(lián)網(wǎng),這使得重構(gòu)必須縮短時(shí)間間隔。過去,我們常常會(huì)把代碼留給下一撥人去解決(多數(shù)時(shí)候他們會(huì)罵代碼很差,有時(shí)選擇自己從零開始重寫),在移動(dòng)互聯(lián)網(wǎng)時(shí)代時(shí)間快到只能我們自己解決問題。
在產(chǎn)品特性方面,也需要不斷地重建。一個(gè)又一個(gè)新版本,可能是表面上沒什么變化,但實(shí)際上必須是根本性的變革。這種變革,需要放棄許多之前投入了資源的特性,可能需要做出更艱難的舍棄。重建是必須的,否則,產(chǎn)品在生長(zhǎng)的過程中會(huì)逐漸失去活力。
7. 早集成、早測(cè)試、早把產(chǎn)品推向市場(chǎng)
早集成、早測(cè)試、早把產(chǎn)品推向市場(chǎng),早比晚好。豐田式精益(lean)生產(chǎn)有一條核心原則就是,早把問題暴露出來,以便更早解決。比如,發(fā)現(xiàn)問題,“任何人”可以停下整個(gè)生產(chǎn)線的設(shè)計(jì),就是把問題暴露出來??粗届o的水面,我們常會(huì)不自覺地估計(jì)水面下也是平的、很安全,降低水位把石頭露出來,就可以強(qiáng)迫我們面對(duì)問題、解決問題。
在開發(fā)的過程中,盡早把各個(gè)模塊集成,可以發(fā)現(xiàn)模塊之間的那些空隙;盡早把產(chǎn)品推向用戶,可以在實(shí)際試運(yùn)行過程中發(fā)現(xiàn)產(chǎn)品設(shè)計(jì)問題;盡早正式運(yùn)營(yíng)產(chǎn)品,可以通過市場(chǎng)來實(shí)際檢驗(yàn)對(duì)產(chǎn)品的諸多假設(shè)。
沒有“更早”,是過去幾年的最為慘痛的教訓(xùn)。麻煩的是,等到發(fā)現(xiàn)沒有“更早”的教訓(xùn)之時(shí),這是為數(shù)不多難以彌補(bǔ)的教訓(xùn)。
8. 關(guān)注核心數(shù)據(jù),永遠(yuǎn)別自我欺騙
找到那些真正有價(jià)值的核心數(shù)據(jù),關(guān)注這些數(shù)據(jù)的變化,永遠(yuǎn)不要自我欺騙。數(shù)據(jù)統(tǒng)計(jì)分析系統(tǒng),常常是最后一刻才想起來要做,實(shí)際上,它應(yīng)該是整個(gè)項(xiàng)目規(guī)劃時(shí)就重點(diǎn)投入的功能特性。
數(shù)據(jù)沒那么復(fù)雜,沒什么大數(shù)據(jù),一個(gè)簡(jiǎn)單的數(shù)據(jù)圖表就可以解決問題。如果用簡(jiǎn)單的數(shù)據(jù)表不能理解,那么談什么大數(shù)據(jù)只是空談。
在《精益創(chuàng)業(yè)》中,作者提到一種“虛榮指標(biāo)”式的自我欺騙,其中主要提到的是累計(jì)用戶量。移動(dòng)應(yīng)用上最大的虛假繁榮正是累計(jì)下載量,實(shí)際上我們都知道,沒有持續(xù)回來的用戶,不過是過客,再多的過客都不過是個(gè)數(shù)字而已。
9. 建立技術(shù)人主導(dǎo)的團(tuán)隊(duì)
最后,或許也是最重要的,以移動(dòng)互聯(lián)網(wǎng)為主要業(yè)務(wù)的公司,應(yīng)該建立技術(shù)人主導(dǎo)的團(tuán)隊(duì)。至少在產(chǎn)品開發(fā)方面,應(yīng)該建立技術(shù)人員主導(dǎo)的團(tuán)隊(duì),而不要把工程師看成沉默的程序員。 只有技術(shù)人員主導(dǎo)的產(chǎn)品技術(shù)團(tuán)隊(duì),才是健康的、能長(zhǎng)期發(fā)展的,因?yàn)榧夹g(shù)是現(xiàn)在所有變化的核心源頭。
強(qiáng)調(diào)技術(shù)驅(qū)動(dòng)很容易講,但真正做的公司與團(tuán)隊(duì),應(yīng)該很稀少。有很多種說法,工程師不懂戰(zhàn)略也不理解戰(zhàn)略,出于中國(guó)教育原因工程師不懂產(chǎn)品,出于不再一線工程師不懂需求這些不過是他人用來試圖掌握主導(dǎo)權(quán)的說法而已。
和所有人一樣,技術(shù)人員也有長(zhǎng)期養(yǎng)成的思維慣性,比如有的人喜歡考慮所有的可能情況,導(dǎo)致他設(shè)計(jì)的解決方案過于復(fù)雜;有的人比較容易妥協(xié),導(dǎo)致他接受并不正確的方案;有人常傾向性地選擇自己熟悉的技術(shù)方案,而不愿意嘗試新的。這是別的領(lǐng)域也存在的人性。
另一方面,技術(shù)人員有一種常見的慣性是有價(jià)值的,技術(shù)人會(huì)更傾向于建立 “ 能長(zhǎng)期運(yùn)行的系統(tǒng)”,“長(zhǎng)期”意味著在設(shè)計(jì)時(shí)已經(jīng)考慮了它的長(zhǎng)期價(jià)值,“系統(tǒng)”意味著會(huì)考慮它的方方面面、特別是那些縫隙;“運(yùn)行”意味著最終的交付成果一定是運(yùn)轉(zhuǎn)的“活”系統(tǒng)。
如果可以回到過去,這里教訓(xùn)就是,給每一個(gè)工程師更大的技術(shù)產(chǎn)品主導(dǎo)權(quán),并為產(chǎn)品技術(shù)團(tuán)隊(duì)爭(zhēng)取更大的主導(dǎo)權(quán)。
最后的話
2011 年年中,重新打開編程工具持續(xù)地做開發(fā)。之前有很多年只是修修補(bǔ)補(bǔ)或者偶爾學(xué)學(xué)新的編程語(yǔ)言與技術(shù)。再之前,是作為媒體人與編輯做針對(duì)文字媒體的工作,以及帶領(lǐng)一支較大的互聯(lián)網(wǎng)內(nèi)容與產(chǎn)業(yè)團(tuán)隊(duì)?;仡櫰饋恚^去兩年多時(shí)間,全部的注意力都在產(chǎn)品與技術(shù),從產(chǎn)品戰(zhàn)略、到技術(shù)系統(tǒng)、到產(chǎn)品體驗(yàn)、到代碼細(xì)節(jié),事無巨細(xì),埋頭苦干。目標(biāo)很簡(jiǎn)單,就是希望借移動(dòng)互聯(lián)網(wǎng)的機(jī)遇,用技術(shù)產(chǎn)品來發(fā)現(xiàn)移動(dòng)互聯(lián)網(wǎng)究竟給內(nèi)容帶來什么。
這一過程還在繼續(xù),移動(dòng)互聯(lián)網(wǎng)的機(jī)遇之窗才剛剛開了一個(gè)小縫。但如果復(fù)盤看,幾乎每件事都可以有更優(yōu)的選擇,反思是為了更好地抓住移動(dòng)內(nèi)容機(jī)遇。
來源:36kr
- 目前還沒評(píng)論,等你發(fā)揮!