騰訊開發(fā)微信花了多少錢?真的技術(shù)難度這么大嗎?難點(diǎn)在哪里?
文章有點(diǎn)長,但是看完肯定有巨大收獲,特別是針對想從事互聯(lián)網(wǎng)行業(yè)想開發(fā)一個(gè)自己APP的人,這是我從自己多年外包和自己開發(fā)產(chǎn)品累計(jì)研發(fā)成本過千萬的情況下得出的經(jīng)驗(yàn)。
先說結(jié)論
騰訊開發(fā)微信花的成本應(yīng)該超過10個(gè)億,真的技術(shù)難度很大,如果交給一個(gè)全棧工程師去做,可能要做1萬年。下面詳細(xì)的講解和分析為什么成本這么高,都高在哪里。
本人之前就是做APP軟件外包行業(yè)的,前后外包的APP開發(fā)上線過上百款,涉及領(lǐng)域從電商,教育,金融,物聯(lián)網(wǎng),醫(yī)療都有。去年開始轉(zhuǎn)型,開始真正的開發(fā)了一款屬于自己公司的互聯(lián)網(wǎng)產(chǎn)品,期間真正的體驗(yàn)了一把給自己做產(chǎn)品跟做外包的巨大差別,也能足夠說明為什么騰訊開發(fā)微信成本如此之高。
騰訊的微信開發(fā)成本高,大致可以分為這幾種原因,以下會一一詳細(xì)說明:
- 功能的反復(fù)修改造成成本龐大,研發(fā)的過程中可能會不斷的推翻之前的想法。
- 不同手機(jī)不同操作系統(tǒng)版本號,手機(jī)型號兼容性問題調(diào)試
- 龐大用戶基數(shù)情況下的高并發(fā)問題的處理
- 有些功能不是你想開發(fā)就開發(fā)(比如消息推送),還要跟第三方手機(jī)廠商洽談才能做,簡單來說可能要給第三方廠商錢。
1. 功能的反復(fù)修改造成成本龐大,研發(fā)的過程中可能會不斷的推翻之前的想法。
我以前做外包公司的時(shí)候,大部分客戶APP項(xiàng)目的開發(fā)成本都在50萬以內(nèi),以二三十萬之間的價(jià)格比較多,以最基本的注冊登錄功能為例。一般這種二三十萬開發(fā)的注冊登錄安卓,IOS,加上后臺的開發(fā)總耗時(shí)一般在2到3個(gè)工作日(3個(gè)工程師一起協(xié)同辦公的情況下),包括寫代碼和調(diào)試bug的時(shí)間。遇到繁瑣或者客戶要求比較高的,可能反復(fù)改動下來總耗時(shí)一般不超過一周。
而我們真正在給自己做一個(gè)APP作為自己的互聯(lián)網(wǎng)產(chǎn)品去運(yùn)營的時(shí)候,我們光一個(gè)注冊登錄,就改了不下100次,前后總耗時(shí)保守估計(jì)超過50個(gè)工作日,花在光一個(gè)注冊登錄上的工程師的工資成本保守估計(jì)超過10萬。
那么是什么原因造成了我們給自己做APP產(chǎn)品的時(shí)候,要改100次以上,前后耗時(shí)要50個(gè)工作日,同時(shí)光一個(gè)簡單的注冊登錄工資成本要花十幾萬呢?
給大家簡單看一下我們產(chǎn)品的注冊登錄頁面,說說這里面的門道。

乍一看之下我們的注冊登錄頁面功能,支持手機(jī)短信注冊登錄,郵件注冊登錄,微信授權(quán)登錄,國際短信注冊,仿佛也沒什么復(fù)雜的。
但是其實(shí)這里面的門道非常非常復(fù)雜,我挑幾個(gè)典型事情說一下。
現(xiàn)在APP很流行做QQ或者微信的授權(quán)登錄,因?yàn)樽隽耸跈?quán)登錄后,用戶可以更低成本的跳過注冊流程直接使用你APP的服務(wù),這樣提高了APP用戶的使用率。
但是這么做,是不是絕對的是好事呢?
這么做或許對用戶來說是好事,但是對APP平臺方來說不一定是什么好事。這么做會導(dǎo)致一個(gè)很蛋疼的問題,就是你獲取不到用戶資料(用戶的手機(jī)號),微信授權(quán)登錄的時(shí)候,微信并不會把用戶的手機(jī)號或者是微信號給你,只會給你一個(gè)用戶的微信昵稱。這個(gè)東西并不能聯(lián)系到用戶本人。
那么用戶的手機(jī)號有多重要呢?拿到用戶的手機(jī)號,可以很大程度上提高用戶留存率!你們應(yīng)該經(jīng)常收到探探,王者榮耀,淘寶之類APP的短信,這些短信都是通過各種方式召回喚醒你這個(gè)暫時(shí)流失的老用戶,或者是提醒你出了什么新功能新活動鼓勵(lì)你去消費(fèi)。
你只要一段時(shí)間不上線,探探就會給你發(fā)最近2小時(shí)又有幾個(gè)美女小姐姐喜歡了你,讓你過來看看。而王者榮耀會給你發(fā)什么諸葛亮新皮膚上線了之類的短信,召回和喚醒用戶讓用戶去玩。
如果沒有用戶手機(jī)號,那就無法發(fā)送短信的,那就根本就做不到這一點(diǎn)。這是一種重要的提高用戶活躍度和留存率的方式。
哪怕就是不為了提高用戶的留存,如果用戶反饋了什么問題和bug亟待解決,你也無法通過手機(jī)聯(lián)系到用戶去幫他解決問題。因?yàn)槲⑿攀跈?quán)登陸你是什么有效的用戶資料都拿不到的。
我們開始先是把微信授權(quán)登錄按鈕做的很大很顯眼,后來就發(fā)現(xiàn)超過90%的用戶都是用微信授權(quán)登錄,不用手機(jī)號或郵箱注冊。于是我們覺得這樣很操蛋,不行,要想辦法把微信的按鈕搞的不是那么顯眼。那么這個(gè)按鈕到底放到哪里也很講究,太小了用戶找不到的話,可能也會導(dǎo)致注冊率降低,很多人嫌麻煩可能就不注冊了。太大了呢,就全是微信授權(quán)登錄的。
那么就要不斷的去嘗試到底放在什么位置剛好,既希望用戶通過手機(jī)號或郵箱來注冊,同時(shí)希望他忽略微信。但是如果他一定要找微信又能找得到。
可能這么一個(gè)東西就夠你調(diào)整五六次反復(fù)去嘗試。
同時(shí)很多人可能做了微信授權(quán)登錄又讓用戶首次的時(shí)候必須要強(qiáng)制綁定手機(jī),這種機(jī)制也可能會引發(fā)用戶反感,繁瑣的流程可能會導(dǎo)致用戶放棄注冊或卸載APP。那么如何去設(shè)計(jì)注冊登錄提高注冊率,每個(gè)細(xì)節(jié)都成了一個(gè)很值得琢磨和嘗試的問題。
同時(shí)又比如說短信注冊這塊,你的APP支持不支持國際短信可能難度又差了N倍。如果你有海外用戶的話,那么可能你還需要國際短信注冊。同時(shí)又可能有些短信通道發(fā)送短信速度過慢,或者特定條件下無法發(fā)送出去,到達(dá)率低等。那么這時(shí)候還要設(shè)計(jì)一套機(jī)制來保證短信的發(fā)送率和到達(dá)率。
比如一般的短信通道是不接召回短信的,那么你還要有路子搞到能發(fā)召回短信的通道。以我們自己的產(chǎn)品為例,光短信通道就對接了3家,在不同的條件下用不同的通道來發(fā)送短信,搞這么復(fù)雜的目的是為了保證短信的發(fā)送速度和到達(dá)率以及其他的一些特殊情況。
光一個(gè)注冊流程諸如此類的細(xì)節(jié)問題就不低于十幾種。每種解決起來背后都要經(jīng)過大量的嘗試和成本。每一個(gè)文案,每一個(gè)按鈕擺放的位置,顏色,都是經(jīng)過大量的實(shí)驗(yàn)得出的結(jié)果,而不是拍腦袋得出的。
那么這么做有什么用呢?
我之前跟很多其他運(yùn)營APP的公司聊過,很多人的下載到注冊率只能達(dá)到70到80%,低的只有60%,我們一開始的下載和注冊率也只能達(dá)到75%到80%之間。而經(jīng)過一系列長期的優(yōu)化,現(xiàn)在可以達(dá)到95%左右的下載到注冊率。穩(wěn)步提升了15%左右的注冊率。
這意味著,如果同樣的100萬人下載我的APP,原來只有75到80萬會注冊成功去嘗試我后續(xù)的APP服務(wù),并可能長期留下來成為我的用戶。而現(xiàn)在100萬用戶里會多出來15萬人嘗試并成為我的用戶。
你說我這時(shí)間和精力花得值不值?
雖然回過頭來在看,如果我們在研發(fā)的過程中想法不出現(xiàn)偏差,直接是像素級抄襲別人的東西那成本肯定低得多,因?yàn)椴煌约核伎紴槭裁?,也不存在反?fù)推翻自己的過程。好比我原來注冊登錄花了十幾萬,那如果是有現(xiàn)成的抄襲的話可能2萬成本就能搞定。但是你要想清楚,每個(gè)產(chǎn)品的特點(diǎn)都不是不一樣的,不同APP的用戶特性也決定了注冊登錄頁面設(shè)計(jì)成什么樣子才合適,別人的不一定適合你。
Ps:有興趣的人可以研究下知乎的注冊登錄頁面,也是暗藏玄機(jī),任何大公司的APP產(chǎn)品,可以說注冊登錄頁面幾乎每年都在優(yōu)化。其目的都是不斷的嘗試進(jìn)一步提高產(chǎn)品的下載到注冊率。你們多下載幾個(gè)大公司的APP就知道了。
我們作為一個(gè)小公司,光一個(gè)注冊登錄都做了十幾萬,而一個(gè)大公司可能光琢磨一個(gè)注冊登錄反復(fù)修改下來成本花上百萬也正常。而我們之前做外包項(xiàng)目呢?一個(gè)注冊登錄撐死跟客戶收個(gè)5000塊,一般兩三天搞完。這些細(xì)節(jié)有成本有預(yù)算去考慮嗎?
而且這還只是一個(gè)注冊登錄,一個(gè)用戶體驗(yàn)稱得上好的軟件既要平衡用戶體驗(yàn)又要把用戶引導(dǎo)像你需要的程度,那就需要每個(gè)功能都反復(fù)斟酌嘗試。用戶體驗(yàn)要好這六個(gè)大字,花多少錢都不為過,所以這也就是我前面說的,大公司的APP可能每個(gè)功能都是改過幾百次上千次的。
別人都說,大繁至簡,但是在這里我想說一句,大簡也至繁。
2.不同手機(jī)不同操作系統(tǒng)版本號,手機(jī)型號兼容性問題調(diào)試
微信作為一個(gè)國民級應(yīng)用,在不同手機(jī)上的兼容性是做的很好的。但是這不代表這件事簡單,大家肯定經(jīng)常發(fā)現(xiàn)各類APP在手機(jī)上出現(xiàn)閃退,卡死,黑屏的情況。一般越是小公司做的東西越可能會這樣。
IOS還好,國內(nèi)光主流的安卓機(jī)型就有幾百款,如果你要你的軟件在每款手機(jī)上都能完美運(yùn)行,不出現(xiàn)太多的閃退。那光把測試機(jī)型買齊就要上百萬。買齊了后任何一個(gè)功能都要在不同品牌,不同操作系統(tǒng)版本號的手機(jī)上去測試。
又可能你的APP在華為P8上不會閃退,但是可能華為P9就會閃退,甚至可能打都打不開。也就是說不光是跨廠商,即使是同一個(gè)廠商生產(chǎn)的不同機(jī)型都可能會出現(xiàn)不同的問題。但是用戶可不管你那么多,你APP如果頻繁閃退,面臨的必然是被卸載的結(jié)局。
還有一點(diǎn)很重要的要告訴大家的是,相對于買齊各類手機(jī)來測試的硬件成本來說,這個(gè)成本只是九牛一毛,真正高昂的是測試人員和你測出來后還要修復(fù)bug的程序員的工資成本。你不可能測出來bug不修吧?
一般大公司的產(chǎn)品,背后可能光測試人員都幾十個(gè)人,每年發(fā)工資幾百萬甚至上千萬。
小的APP開發(fā)商無法很好的做到這點(diǎn),一般也就搞個(gè)十幾臺手機(jī)測試就了不起了,有些甚至只在自己一個(gè)人的手機(jī)上測試一下。所以也就導(dǎo)致了閃退頻發(fā)。并不是你把功能代碼寫完了,就萬事大吉了。各種兼容性問題如果要解決好,絕對是夠你喝一壺。
3.龐大用戶基數(shù)情況下的高并發(fā)問題的處理
這個(gè)問題前面的人說的都很多了,我就不說太多。簡單來說同樣一個(gè)功能,你1萬日活和1億日活的時(shí)候,會導(dǎo)致功能實(shí)現(xiàn)方式和成本上根本的變化。
微信在例如搜索等功能的研發(fā)成本上,并不是簡單的一個(gè)付出了多少人員工資成本的問題。微信作為騰訊系的核心產(chǎn)品,里面用到的技術(shù)并不一定僅僅來自于微信團(tuán)隊(duì)自身的積累。騰訊在開發(fā)其他產(chǎn)品上的技術(shù)完全可以支援和嫁接過來,那么之前研發(fā)別的產(chǎn)品上的技術(shù)研發(fā)成本在微信里相當(dāng)于是不需要走彎路了。
但是不是每個(gè)公司都有技術(shù)可以拿過來嫁接的,別人有不代表你有。
完全不可同日語。當(dāng)然很多小公司一般根本不會遇到這個(gè)問題,所以也不需要考慮。
4.有些功能不是你想開發(fā)就開發(fā)(比如消息推送),還要跟第三方手機(jī)廠商洽談才能做,簡單來說可能要給第三方廠商錢。
大家應(yīng)該都知道APP下拉框的消息推送功能。而消息推送要做好絕對是一個(gè)很坑爹的東西?;拘」镜南⑼扑投疾皇亲约鹤觯怯铆h(huán)信和騰訊的一些第三方的系統(tǒng)來對接實(shí)現(xiàn)。當(dāng)然你會看到騰訊和環(huán)信這些公司的官網(wǎng)上,會寫著一些5分鐘,三行代碼對接之類的話。
不懂的人很容易誤以為APP的消息推送功能實(shí)現(xiàn)起來真的只要3行代碼五分鐘搞定。因?yàn)檫@些第三方的公司只是相當(dāng)于發(fā)送推送信息的通道,但是你APP具體的推送機(jī)制,在什么情況下推送還是要你自己來設(shè)計(jì)的。而設(shè)計(jì)這個(gè)東西對很多APP來說就非常復(fù)雜了。
以知乎為例吧,有人給你點(diǎn)贊了推送,有人關(guān)注你了推送,有人私信你了推送等等等等。這里可能就分為十幾種到幾十種情況,并且還不是來了消息就推送這么簡單,因?yàn)槿绻麃硪粭l信息你就推送一條。那么遇到晚上用戶睡覺了你還一直推送可能就會導(dǎo)致用戶關(guān)閉推送功能甚至是卸載APP。同樣哪怕是白天,過于頻繁的推送也可能會導(dǎo)致用戶反感,那么這時(shí)候設(shè)計(jì)一套合理的推送機(jī)制就很有挑戰(zhàn)。
既既要用戶能收到你的推送來提高APP的打開使用率,又要不導(dǎo)致用戶反感是非常難的。這時(shí)候可能還要設(shè)計(jì)當(dāng)多種推送條件都達(dá)成的時(shí)候,只推送其中部分消息。你也要考慮,你想以推送的形式告訴用戶的東西是很多的,但是又不可能個(gè)個(gè)都推。那么這時(shí)候還要深入考慮如何去取舍。
En.......最后你以為你把機(jī)制搞清楚了就萬事大吉了?
這只是個(gè)開始,這么說吧,你后續(xù)還會遇到一系列更操蛋的問題。比如你會發(fā)現(xiàn)IOS的推送還好,用戶基本都能收到。但是安卓的用戶卻老是根本收不到你的推送。這是為什么呢?
因?yàn)椴煌陌沧渴謾C(jī)廠商可能在系統(tǒng)上就限定死了你必須要用他提供的推送接口,否則是推不過來的,你的程序在后臺運(yùn)行的時(shí)候會被系統(tǒng)本身殺死而導(dǎo)致你的推送信息發(fā)不過去。那么這時(shí)候你又要針對不同的系統(tǒng)去開發(fā)不同的推送功能。
最最蛋疼的是,有些廠商比如OPPO,你想做都做不了。我們之前就發(fā)現(xiàn)我們用戶里面很活躍的一款機(jī)型OPPO R9,發(fā)現(xiàn)在OPPO R9這款機(jī)型上,大部分APP一安裝,默認(rèn)就是禁止推送的狀態(tài)。只有小部分的例如微信,QQ,微博,知乎這樣的APP的推送是默認(rèn)開啟的。而哪怕是百度貼吧,快手這樣的大公司的APP的消息推送默認(rèn)也是被禁止的狀態(tài)。
從這點(diǎn)看知乎還是很牛逼的,能做到跟微信QQ微博一樣讓OPPO默認(rèn)開啟他的推送。至于這是怎么做到的,我暫時(shí)還不清楚,但是在官方并沒有明確的文檔來告訴你怎么搞。
我懷疑可能是這個(gè)事情要給OPPO錢,或者要去找他們談才可以。而小公司在這點(diǎn)上根本是無能為力的。
對于有些人說注冊登錄是小功能,應(yīng)該好好把時(shí)間用在做產(chǎn)品上的我做個(gè)解釋。
注冊登錄不是小功能,是最最基本的功能,你你APP的門檻。如果連最基本的注冊登錄都做不好?怎么保證其他的功能可以做得好?又何來產(chǎn)品體驗(yàn)好只說?
對于一個(gè)互聯(lián)網(wǎng)公司來說,每一分錢都是應(yīng)該花在刀口上的,現(xiàn)在這個(gè)年代獲取一個(gè)用戶的平均成本已經(jīng)相較于移動互聯(lián)網(wǎng)剛起來那會比如2012年上升了幾百倍。獲取任何一個(gè)用戶都來之不易,很多APP現(xiàn)在獲取一個(gè)用戶的成本早已高到了十幾元甚至幾百元一個(gè)下載,如果控制不好下載到注冊的轉(zhuǎn)化率。會導(dǎo)致你大量推廣的錢白白浪費(fèi),因?yàn)樵谧赃@步就有大量的用戶流失,那相應(yīng)的APP的留存率和日活躍肯定也會隨之被拉低。
同樣的我想說一句,現(xiàn)在是2018年,人不能活在過去。2012年那會你隨便做個(gè)什么東西可能都能獲得大量用戶和大量好評,因?yàn)槟菚∑孢€什么都沒有。你的用戶體驗(yàn)再查,UI界面再難看,功能在不好用,可能用戶都可以接受。因?yàn)槟菚蠹叶疾畈欢噙@水平,都很差。
但是現(xiàn)在已經(jīng)2017年了,大部分APP的用戶體驗(yàn)相較于2012年那早已不可同日語,BAT這類大公司投入的天量研發(fā)投入已經(jīng)把整個(gè)市場的門檻和平均水平大大提高。用戶對你的要求和預(yù)期早已不是2012年那樣了。
現(xiàn)在你再把一些2012年做的東西拿到2017年來看,那可能是一坨大便。那么越是后期去創(chuàng)業(yè),市場和用戶對你的要求也越高,因?yàn)榛拘枨笠驯粷M足,蛋糕也被分得差不多了。那么現(xiàn)在殺出來的,一定更有可能是各種細(xì)節(jié)都能優(yōu)化的非常好的,只有細(xì)節(jié)的堆砌才能決定所謂的用戶體驗(yàn)好。
用戶體驗(yàn)好 這五個(gè)大字,豈是那么容易得來的?不優(yōu)化打磨產(chǎn)品各種細(xì)節(jié),你的日活和留存率從哪里來?指望天數(shù)掉餡餅?