分享豌豆莢基于團(tuán)隊(duì)協(xié)作的基本產(chǎn)品開(kāi)發(fā)方案
首先從技術(shù)角度看。去年,豌豆莢的研發(fā)團(tuán)隊(duì)首先擬出了應(yīng)用內(nèi)搜索的技術(shù)協(xié)議,然后基于這個(gè)技術(shù)協(xié)議接入了一些合作伙伴的內(nèi)容。在他們的配合之下,這些內(nèi)容被應(yīng)用到豌豆莢主產(chǎn)品里面,比如跟貓眼做的電影票,再比如可以直接搜到知乎的問(wèn)答,還有具體場(chǎng)景底下的一些用例。
今年,研發(fā)團(tuán)隊(duì)調(diào)整了具體的執(zhí)行策略,但覺(jué)得還是不夠快,所以又探索了一些新的方式。仍然是原來(lái)的那一套協(xié)議,但是不用開(kāi)發(fā)者進(jìn)來(lái),不用他們配合,而是自己做最快的數(shù)據(jù)接入的工作。這是今年的改變。這主要是從效率方面考慮的:需要開(kāi)發(fā)者來(lái)配合的話,要考慮開(kāi)發(fā)者的響應(yīng)時(shí)間,來(lái)來(lái)回回去溝通協(xié)議具體是什么樣的,可能一個(gè)來(lái)回就是一個(gè)星期,有兩三個(gè)來(lái)回一個(gè)月就過(guò)去了。其他的方向都是一樣的,接入的內(nèi)容還是會(huì)跟開(kāi)發(fā)者溝通,一定是他們?cè)敢饨尤氲臇|西。
進(jìn)展確實(shí)很明顯,改變了策略之后,目前已經(jīng)接入了500家左右的應(yīng)用內(nèi)容。
還有一個(gè)很重要的事情,豌豆莢有一個(gè)很重要的、叫做Chana(剎那)的技術(shù),集成到了一覽里面。Chana是豌豆莢的鄧草原老師基于Akka開(kāi)發(fā)的一個(gè)實(shí)時(shí)計(jì)算框架,是用 Scala語(yǔ)言編寫(xiě)的。研發(fā)團(tuán)隊(duì)在底層做了應(yīng)用內(nèi)搜索的架構(gòu)升級(jí),包括把這樣一個(gè)實(shí)時(shí)性和擴(kuò)展性都很棒的實(shí)時(shí)計(jì)算平臺(tái)引入進(jìn)來(lái),以及對(duì)于底層的Storm等平臺(tái)的升級(jí),這些可能是用戶看不見(jiàn)的,但是能很大地?cái)U(kuò)展數(shù)據(jù)處理能力。
再?gòu)漠a(chǎn)品角度看。產(chǎn)品方面也很清楚,在去年一開(kāi)始的時(shí)候,研發(fā)團(tuán)隊(duì)主要是在豌豆莢的主產(chǎn)品里做了很多創(chuàng)新的探索,看一下如何將提供給用戶的價(jià)值最大化。今年又有了更進(jìn)一步的全新的探索,基于應(yīng)用內(nèi)搜索技術(shù),推出了“豌豆莢一覽”和“Snap效率鎖屏”這樣的產(chǎn)品。研發(fā)團(tuán)隊(duì)也在產(chǎn)品中加了很多的應(yīng)用場(chǎng)景,比如用戶購(gòu)買(mǎi)了電影票,可以很快地告訴用戶,你的電影馬上開(kāi)始了,可以選擇打車(chē)過(guò)去,或是附近有什么好的餐廳,這些都是通過(guò)應(yīng)用內(nèi)搜索的技術(shù)把服務(wù)和內(nèi)容跟用戶當(dāng)前的產(chǎn)品結(jié)合在一起的具體例子。這兩個(gè)產(chǎn)品也是豌豆莢在應(yīng)用內(nèi)搜索產(chǎn)品化上給出的階段性答案。
協(xié)議:應(yīng)用內(nèi)搜索的基石
在剛開(kāi)始的時(shí)候,研發(fā)團(tuán)隊(duì)會(huì)把每一個(gè)門(mén)類(lèi)特別細(xì)節(jié)的東西都定義得很清楚,在接入的時(shí)候希望接入的內(nèi)容在每個(gè)門(mén)類(lèi)下,這些字段都應(yīng)該很清楚再接入,這樣效率會(huì)比較低,現(xiàn)在會(huì)傾向于盡可能結(jié)構(gòu)化,一些不能結(jié)構(gòu)化的東西先把它半結(jié)構(gòu)化地拿進(jìn)來(lái)。這樣達(dá)到一個(gè)效率和最結(jié)構(gòu)化的信息和將來(lái)結(jié)構(gòu)化信息的利用有一個(gè)平衡。
另外,研發(fā)團(tuán)隊(duì)也在不斷地做一些細(xì)節(jié)的優(yōu)化。像前面提到的今年的變化,不再需要開(kāi)發(fā)者主動(dòng)的配合,所以內(nèi)部要考慮怎么能夠把各種各樣不同的、千奇百怪的應(yīng)用內(nèi)容跟協(xié)議搭進(jìn)來(lái)。說(shuō)得通俗一點(diǎn),是怎么樣才能夠更聰明地去做適配,怎么樣才能更智能化地提高適配效率,在這方面做了很多工作。這個(gè)工作可能不是重新制定協(xié)議,而是對(duì)協(xié)議進(jìn)行一些簡(jiǎn)單的升級(jí),讓它能夠普適性做得更好。
這里還要提一下Deep Link。之所以有這個(gè)概念,是因?yàn)橐苿?dòng)互聯(lián)網(wǎng)發(fā)展起來(lái),原來(lái)那套基于 HTTP、超鏈接實(shí)現(xiàn)互聯(lián)互通的互聯(lián)網(wǎng)被割成了以應(yīng)用為中心的信息孤島。要解決這個(gè)痛點(diǎn),所以很多廠商紛紛提出了自家的Deep Link,但是目前還沒(méi)有一個(gè)事實(shí)上的行業(yè)標(biāo)準(zhǔn)。比如說(shuō)谷歌做了一個(gè) App Indexing,F(xiàn)acebook 做了一個(gè) App Links,大家的協(xié)議都會(huì)有或多或少的差異。目前看來(lái),F(xiàn)acebook的協(xié)議因?yàn)榭紤]得更全面一些,所以成為事實(shí)標(biāo)準(zhǔn)的可能性會(huì)更大。但不管怎么樣,這個(gè)格局還是很紛亂的,大家更多是從自己的應(yīng)用場(chǎng)景、自己的應(yīng)用需求出發(fā),制定這樣的一套一套的規(guī)則。
豌豆莢去年做這件事的時(shí)候,更多是從自己和用戶的角度去考慮這件事情,主要是從三個(gè)點(diǎn)來(lái)考慮,一是普適性,二是經(jīng)濟(jì)性,三是實(shí)時(shí)性。先看普適性,豌豆莢做這件事情的時(shí)候,市面上已經(jīng)有谷歌和 Quixey的兩種協(xié)議,所以想兼容這兩種協(xié)議。如果開(kāi)發(fā)者支持這兩種協(xié)議,可以直接接入進(jìn)來(lái)。再看經(jīng)濟(jì)性,豌豆莢采用的方案都是 Microdata 這種很成熟的技術(shù)方案,開(kāi)發(fā)者可以很快地、比較容易地通過(guò)這些技術(shù)提交內(nèi)容。最后看實(shí)時(shí)性,對(duì)于豌豆莢接入的應(yīng)用內(nèi)容,如果在手機(jī)上看到一個(gè)內(nèi)容,它能夠更快地觸達(dá)用戶,還是很重要的。所以開(kāi)發(fā)者可以通過(guò)實(shí)時(shí)API,快速提交內(nèi)容。當(dāng)時(shí)整個(gè)協(xié)議的思路主要是從這三個(gè)點(diǎn)出發(fā)。
在應(yīng)用調(diào)起方面,國(guó)內(nèi)的開(kāi)發(fā)者其實(shí)對(duì)調(diào)起支持都不是特別友好,有一個(gè)效率比較高的方法,先去看開(kāi)發(fā)者到底對(duì)調(diào)起的支持怎么樣,對(duì)于支持好的會(huì)在產(chǎn)品里直接調(diào)起應(yīng)用去打開(kāi)這個(gè)頁(yè)面,如果不行的話,則會(huì)調(diào)起H5頁(yè)面。如果所有的開(kāi)發(fā)商和廠商都能夠更重視調(diào)起這一塊,能夠把 Deep Link 這一塊做得更好,將來(lái)有希望做到應(yīng)用里面的每一個(gè)頁(yè)面都能夠被標(biāo)準(zhǔn)的調(diào)起,這樣以后應(yīng)用內(nèi)搜索可以做成跟網(wǎng)頁(yè)搜索一樣。不過(guò)這是下一步要做的工作,當(dāng)前還不是最重要的。最重要的是先讓用戶看到這里的價(jià)值,用戶喜歡用,反過(guò)來(lái)開(kāi)發(fā)者就會(huì)看到里面的價(jià)值。
團(tuán)隊(duì):小而美
應(yīng)用內(nèi)搜索方面,豌豆莢一直保持著一個(gè)小而精的工程團(tuán)隊(duì),工程人員一直沒(méi)有特別大的增長(zhǎng),但是工程師搭配比較合理,有搜索領(lǐng)域的專(zhuān)家,也有工程能力很強(qiáng)的軟件工程師,還有很有創(chuàng)新精神、勇于探索的年輕人。另外,這個(gè)團(tuán)隊(duì)的工作也并不是完全自成一套,不是說(shuō)完全從頭開(kāi)始做的,也會(huì)用到很多外界成熟的第三方開(kāi)源軟件。像公司里的Codis和Chana,覺(jué)得做得很好的東西,都會(huì)有機(jī)的結(jié)合到產(chǎn)品和工程里面來(lái)。團(tuán)隊(duì)也是挺開(kāi)放的。
另外,像搜索團(tuán)隊(duì),其實(shí)負(fù)責(zé)了豌豆莢的應(yīng)用內(nèi)搜索和應(yīng)用搜索等工作。
改組為項(xiàng)目制
要想了解一個(gè)團(tuán)隊(duì)的工作流程,必須先要了解團(tuán)隊(duì)的架構(gòu)。可能和你想的不一樣,豌豆莢團(tuán)隊(duì)的架構(gòu)并不是比較普遍的部門(mén)制,而是項(xiàng)目制。改組的原因是之前采用的部門(mén)矩陣管理制度使得同一位設(shè)計(jì)師或工程師會(huì)同時(shí)負(fù)責(zé)多個(gè)項(xiàng)目,不僅溝通成本大,排期優(yōu)先級(jí)也混亂難以協(xié)調(diào)。
新的項(xiàng)目制的流程是這樣的,當(dāng)一個(gè)新的項(xiàng)目確定后,便會(huì)確定對(duì)應(yīng)的設(shè)計(jì)、開(kāi)發(fā)、運(yùn)營(yíng)人員臨時(shí)組成一個(gè)項(xiàng)目團(tuán)隊(duì)。項(xiàng)目完成后該項(xiàng)目團(tuán)隊(duì)解散,再重組進(jìn)行下一個(gè)項(xiàng)目或進(jìn)入其他項(xiàng)目中(中間過(guò)程,項(xiàng)目成員每過(guò)3個(gè)月也可以申請(qǐng)調(diào)換到其他項(xiàng)目)。
沒(méi)有產(chǎn)品經(jīng)理
另外一個(gè)你可能意想不到的是,豌豆莢是沒(méi)有專(zhuān)門(mén)的產(chǎn)品經(jīng)理的。當(dāng)一個(gè)項(xiàng)目組建后,如果該項(xiàng)目產(chǎn)品是以設(shè)計(jì)為主導(dǎo)的,就由產(chǎn)品設(shè)計(jì)師整體負(fù)責(zé),如果該項(xiàng)目產(chǎn)品是以開(kāi)發(fā)為主導(dǎo)的,就由開(kāi)發(fā)工程師主導(dǎo)。主導(dǎo)人相當(dāng)于該項(xiàng)目臨時(shí)的產(chǎn)品經(jīng)理。
對(duì)工程師能否負(fù)責(zé)起這個(gè)角色的疑問(wèn),張濤告訴極客公園,在豌豆莢,很多產(chǎn)品都是由工程師自己做出來(lái)的,包括產(chǎn)品的原型、界面設(shè)計(jì)等,剛剛又有一位工程師從開(kāi)發(fā)轉(zhuǎn)崗到產(chǎn)品設(shè)計(jì),這在豌豆莢并不是第一例。年初王俊煜在接受 infoQ 采訪的時(shí)候也有提到過(guò),“有不止一位豌豆在工程師和產(chǎn)品設(shè)計(jì)師之間有過(guò)相互轉(zhuǎn)換的經(jīng)歷”。
基礎(chǔ)了解后,下面就來(lái)從一個(gè)項(xiàng)目的流程(從設(shè)計(jì)開(kāi)始到開(kāi)發(fā)、測(cè)試、上線、后續(xù)的運(yùn)營(yíng)、反饋迭代)來(lái)看看豌豆莢是如何利用工具增加工作的效率,減少那些“為了能夠完成工作而需要做的工作”的吧。
產(chǎn)品設(shè)計(jì)
前期設(shè)計(jì)
通過(guò)團(tuán)隊(duì)頭腦風(fēng)暴討論,然后用便簽把 idea 分類(lèi),然后作為一個(gè)個(gè)的任務(wù)歸類(lèi)到項(xiàng)目管理工具 Asana 里,并指派給負(fù)責(zé)的人。以后這件事情只和這個(gè)人相關(guān),后續(xù)的進(jìn)度、流程都通過(guò) Asana 的郵件通知去了解和安排。另外在 Asana 中默認(rèn)所有人都能看到所有項(xiàng)目,如果想和該負(fù)責(zé)人一樣實(shí)時(shí)跟進(jìn)的話只要 follow 一下就可以收到郵件提醒,保證透明性。
產(chǎn)品開(kāi)發(fā)
開(kāi)發(fā)的進(jìn)度管理也是使用 Asana,就像前面提到的那樣,最早人少的時(shí)候開(kāi)發(fā)進(jìn)度是通過(guò) Excel 管理的,后來(lái)使用一個(gè)類(lèi)似微軟 Visio 的工具,但因?yàn)楸容^臃腫且無(wú)法跟蹤 BUG 所以很快就被拋棄。再后來(lái)轉(zhuǎn)向使用 Jira,因?yàn)?Jira 對(duì) BUG 跟蹤以及進(jìn)度控制得很好,分配也比較細(xì),還可以統(tǒng)一協(xié)調(diào)。但后來(lái)因?yàn)槭褂贸杀咎?,也被拋棄。Jira 之后開(kāi)始試用 37signals 的 Basecamp,后來(lái)因?yàn)檫M(jìn)度不明確、速度慢也被拋棄。
最后開(kāi)始試用 Asana,當(dāng)時(shí)豌豆莢是 Asana 的第一批用戶,也是第一個(gè)完整地將團(tuán)隊(duì)切換到 Asana 平臺(tái)上的(現(xiàn)在使用的團(tuán)隊(duì)還有Foursquare,Airbnb,DISQUS等)。
繼續(xù)接著上面的流程,當(dāng)設(shè)計(jì)輸出高保真原型圖后,將包括每一個(gè)像素點(diǎn)是多少等在內(nèi)的具體細(xì)節(jié)描述都寫(xiě)在 Google Docs 文檔上,稍后工程團(tuán)隊(duì)會(huì)跟進(jìn),在這份文檔上與設(shè)計(jì)溝通確定好(中間會(huì)有改動(dòng)),然后工程團(tuán)隊(duì)這邊也會(huì)出一份和設(shè)計(jì)文檔類(lèi)似的實(shí)施文檔。這份文檔會(huì)給工程師以及一些技術(shù)大牛們過(guò)一遍,大體指出哪些地方應(yīng)該是什么樣,中間可能會(huì)面臨哪些風(fēng)險(xiǎn)及遇到哪些問(wèn)題,做一些技術(shù)上的指導(dǎo)。然后就是最后的 Coding 編碼了。Coding 過(guò)程中也是使用 Asana 進(jìn)行管理,哪些功能完成了就勾選一下選擇完成,之后工程師會(huì)收到通知,確認(rèn)這一塊已經(jīng)完成。后續(xù)每周有一個(gè)周會(huì)來(lái)檢查回顧上周碰到什么問(wèn)題并確定本周來(lái)做什么,整個(gè)研發(fā)的過(guò)程就是這樣。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。