偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

QCon2014蔣煒航:全棧工程師團(tuán)隊(duì)的開(kāi)發(fā)協(xié)作模式

移動(dòng)開(kāi)發(fā)
在一個(gè)團(tuán)隊(duì)中,后端和前端團(tuán)隊(duì)在同一個(gè)產(chǎn)品上工作,有緊密的協(xié)作關(guān)系。底層的軟件研發(fā)和應(yīng)用層的軟件研發(fā)畢竟有很大的區(qū)別,他們?cè)诖a提 交和管理模式、測(cè)試機(jī)制、代碼的交付周期、反饋和監(jiān)控體系方面都有怎樣的異同?在本次采訪中,蔣煒航博士會(huì)介紹有道云筆記團(tuán)隊(duì)的一些實(shí)踐。

他是2013年QCon北京云計(jì)算專題的出品人,也是2014年QCon北京移動(dòng)應(yīng)用專題的出品人。他的團(tuán)隊(duì)往下做到云計(jì)算基礎(chǔ)架構(gòu),往上做到客戶端。他本人從80年代末起接觸編程,在大數(shù)據(jù)處理、云計(jì)算、以及分布式系統(tǒng)等方面都玩過(guò)一圈。他是蔣煒航,網(wǎng)易技術(shù)總監(jiān),目前全面負(fù)責(zé)有道云筆記業(yè)務(wù)。

在這樣一個(gè)團(tuán)隊(duì)中,后端和前端團(tuán)隊(duì)在同一個(gè)產(chǎn)品上工作,有緊密的協(xié)作關(guān)系。但是,底層的軟件研發(fā)和應(yīng)用層的軟件研發(fā)畢竟有很大的區(qū)別,他們?cè)诖a提 交和管理模式、測(cè)試機(jī)制、代碼的交付周期、反饋和監(jiān)控體系方面都有怎樣的異同?在本次采訪中,蔣煒航博士會(huì)介紹有道云筆記團(tuán)隊(duì)的一些實(shí)踐。

InfoQ:您在去年QCon北京出品云計(jì)算專題,今年則出品移動(dòng)App的專題。這也對(duì)應(yīng)了有道云筆記在技術(shù)上的一個(gè)特點(diǎn),就是從底層到客戶端都是你們自己來(lái)研發(fā)、維護(hù)、運(yùn)營(yíng)的。能先簡(jiǎn)單介紹一下跟有道云筆記相關(guān)的技術(shù)團(tuán)隊(duì)都有哪些,各自負(fù)責(zé)哪些方面嗎?

蔣煒航:我們底層有基礎(chǔ)架構(gòu)組,這個(gè)組在云筆記業(yè)務(wù)之前就建立了,服務(wù)的對(duì)象不單單是云筆記,還服務(wù)有道的很多 業(yè)務(wù)。這個(gè)組也在我的團(tuán)隊(duì),做的東西跟Hadoop(HDFS、HBase、MapReduce)這些差不多,是自己研發(fā)的一套系統(tǒng)。底層提供的東西比較 基礎(chǔ),只是存儲(chǔ)和計(jì)算服務(wù),對(duì)所有業(yè)務(wù)通用,本身不包含業(yè)務(wù)邏輯。

業(yè)務(wù)邏輯的開(kāi)發(fā)都在服務(wù)器端的團(tuán)隊(duì),這個(gè)團(tuán)隊(duì)專門是負(fù)責(zé)云筆記的服務(wù)器端的,負(fù)責(zé)處理同步、多版本、提供API等服務(wù)。

客戶端包括PC、Mac、iOS、Android、Windows Phone的客戶端,以及web端和瀏覽器插件。基本上每一層的團(tuán)隊(duì)都是幾個(gè)人來(lái)做,不是很多。

此外我們還有個(gè)精干的研究團(tuán)隊(duì),這個(gè)部門做的是一些三到六個(gè)月才有成績(jī)的東西。方向主要是應(yīng)用研究,研究的目標(biāo)不是發(fā)論文,而是把成熟的技術(shù)做到產(chǎn) 品中。比如編輯器,我們需要做跨平臺(tái)的編輯器,過(guò)去大家比較熟悉的就是Office和Google Doc,而以前很多Web based的編輯器并不適合跨平臺(tái)終端的需求。我們一開(kāi)始也是用Web編輯器做起來(lái)的,但是并不是很適合。我們也不可能像Office那樣用幾百個(gè)人去做 一個(gè)編輯器出來(lái),所以研究部門做的事情就是,花一定的時(shí)間找到合適的方法來(lái)提升編輯器的體驗(yàn)。提高跨平臺(tái)的體驗(yàn)是一個(gè)很模糊的目標(biāo),不確定性很大,具體用 什么做法要很多研究和嘗試。這個(gè)團(tuán)隊(duì)還研究一些NLP和手寫輸入方面的項(xiàng)目。

InfoQ:有些軟件產(chǎn)品的發(fā)展思路是求快,尤其在產(chǎn)品推出初期,要以最快的速度推出新的特性以驗(yàn)證產(chǎn)品的可行性;有些軟件產(chǎn)品的 思路是求穩(wěn),尤其在產(chǎn)品積累了一定用戶量的時(shí)候,會(huì)更加關(guān)注軟件的穩(wěn)定性、安全性,升級(jí)的時(shí)候不要對(duì)現(xiàn)有用戶造成負(fù)面影響。有道云筆記現(xiàn)在處于怎樣的階 段,是偏重求快還是求穩(wěn)?

蔣煒航:做互聯(lián)網(wǎng)產(chǎn)品永遠(yuǎn)是要快的。同時(shí),云筆記是個(gè)人的信息、知識(shí)管理工具,穩(wěn)定性非常重要。要快,同時(shí)也要堅(jiān)守產(chǎn)品質(zhì)量,我們必須要兩者兼顧。

可以這么說(shuō):我們的目標(biāo)就是,***化高質(zhì)量產(chǎn)品的輸出。我們無(wú)論做什么事,都要以優(yōu)化它為目標(biāo)來(lái)做。敏捷、測(cè)試、監(jiān)控,都是很重要的手段,但相比之 下,清晰的目標(biāo)才是更加重要的。比如,什么叫做快?新版本發(fā)布多了就是快嗎?引入新特性的頻率高就是快嗎?我覺(jué)得不是。新版本發(fā)布,可能會(huì)有很多bug; 新特性引入,可能是用戶根本不關(guān)心的,可能你80%的用戶從來(lái)都不會(huì)用到。所以這樣的快是沒(méi)有意義的。

我們對(duì)快的定義是,要讓有效的產(chǎn)品嘗試的速度盡量的快。你發(fā)一個(gè)新版本來(lái)測(cè)試,是否獲得了更多對(duì)用戶的理解?新功能是否讓用戶在某個(gè)場(chǎng)景下的需求得到更好的滿足?用戶是否更加活躍了?有效的快速是滿足業(yè)務(wù)目標(biāo)的速度,這是通過(guò)不斷為用戶提供更合適的功能來(lái)實(shí)現(xiàn)的。

我們現(xiàn)在發(fā)布重要的版本,會(huì)先在內(nèi)部做高保真原型,在內(nèi)部試用,從內(nèi)部非常快的得到有效的反饋。然后我們會(huì)做很多的小范圍用戶測(cè)試和AB測(cè)試,比如 在不同的渠道分發(fā)不同的軟件包,來(lái)驗(yàn)證新的交互、新的功能,改掉原有的問(wèn)題。另外我們還有一個(gè)很簡(jiǎn)單的原則:我們客戶端覆蓋這么多的平臺(tái),但是一個(gè)新功能 的引入可能先只在一個(gè)平臺(tái)上做,這樣我們可以很快通過(guò)用戶分析,了解用戶是否需要這個(gè)功能,確認(rèn)有用了才在全平臺(tái)鋪開(kāi)。否則,就不引入其他平臺(tái),這樣其他 平臺(tái)可以有更多機(jī)會(huì)嘗試其他的東西。

在這樣的思路下,我們測(cè)試階段的服務(wù)器端也可以做的很簡(jiǎn)單,比如我測(cè)試覆蓋就幾百幾千人,那就先用Node.js搭一個(gè)服務(wù)給他們用就好了,性能問(wèn)題可以以后再考慮。很多時(shí)候,做面向三五個(gè)專家用戶(資深產(chǎn)品經(jīng)理)的內(nèi)測(cè)也已經(jīng)足夠了。

做軟件開(kāi)發(fā)不是做選擇題,要么選A要么選B。只要目標(biāo)明確,具體用什么手段都可以的。

InfoQ:你們后端研發(fā)團(tuán)隊(duì)和客戶端研發(fā)團(tuán)隊(duì)在開(kāi)發(fā)模式上的差異大么?

蔣煒航:本質(zhì)上沒(méi)有任何差別,大家都是為了業(yè)務(wù)的發(fā)展。實(shí)際上,我們有很多好的移動(dòng)端研發(fā)工程師是從服務(wù)器端轉(zhuǎn) 過(guò)去的。很多應(yīng)屆畢業(yè)生是沒(méi)做過(guò)前端和移動(dòng)端,他們一開(kāi)始就是對(duì)服務(wù)器端感興趣。我們就會(huì)讓他先做服務(wù)器,其中一些人就會(huì)轉(zhuǎn)崗到客戶端去?;旧希瑑?yōu)秀的 工程師在哪里都是優(yōu)秀的,所以我們內(nèi)部鼓勵(lì)full stack工程師,可以從頭到尾把高保真原型做出來(lái),包括前端的JS、iOS、Android App、后臺(tái)服務(wù)。我們所有的工程師都要有敏捷的思路,以及以用戶為中心的認(rèn)同感,這些方面是一致的。

當(dāng)然,因?yàn)榍昂蠖塑浖奶匦圆煌?,肯定?huì)有一些差異。比如,服務(wù)器端對(duì)性能更加敏感,所以會(huì)關(guān)注很多提高性能的手段。當(dāng)然這些思路,客戶端也可以引 入。另一方面,敏捷在客戶端是比較常見(jiàn)的,因?yàn)榭蛻舳耸枪δ茯?qū)動(dòng)開(kāi)發(fā),對(duì)交付速度要求更高。當(dāng)然,服務(wù)器端也要有一定的敏捷思路,不能說(shuō)要我提供十個(gè)接 口,我就要做倆月。我完全可以用一周時(shí)間,用一些現(xiàn)成的技術(shù),比如MySQL,把這個(gè)接口先提供出來(lái),讓客戶端的開(kāi)發(fā)能夠用起來(lái),之后再考慮性能問(wèn)題,是 不是要移到并行文件系統(tǒng)上面去,等等。

總之,在規(guī)定的Sprint之內(nèi),我們一定要做出一個(gè)完整的版本。無(wú)論是客戶端工程師還是服務(wù)器端工程師,他們的工作質(zhì)量都是很容易判斷的。

InfoQ:兩個(gè)團(tuán)隊(duì)的交付周期是一樣的嗎?

蔣煒航:交付周期都是一樣的,我們的節(jié)奏是一個(gè)月,也就是每個(gè)月都會(huì)有新版本出來(lái),只不過(guò)有些不對(duì)外發(fā)布。

我負(fù)責(zé)這個(gè)業(yè)務(wù),具體來(lái)說(shuō)我并不關(guān)心客戶端團(tuán)隊(duì)是不是在滿負(fù)荷工作,或者服務(wù)器端團(tuán)隊(duì)是不是在滿負(fù)荷工作,我關(guān)心的是我們?cè)谶@個(gè)周期內(nèi),產(chǎn)品經(jīng)理想要展現(xiàn)給用戶的價(jià)值是否高質(zhì)量的完成了,是否能給用戶提供一個(gè)高質(zhì)量的版本,這是最重要的。

InfoQ:兩個(gè)團(tuán)隊(duì)的代碼提交方式、代碼review機(jī)制、測(cè)試機(jī)制是怎樣的?

蔣煒航:我們內(nèi)部用SVN提交代碼,每個(gè)項(xiàng)目提交到各自的repo里面。代碼審查是結(jié)對(duì)review的方式。

測(cè)試方面,主要由工程師自己寫單元測(cè)試,交到自動(dòng)化測(cè)試系統(tǒng)里去跑。我們有強(qiáng)制的測(cè)試覆蓋率的要求。當(dāng)然,服務(wù)器端和客戶端跑的測(cè)試是不一樣的,服務(wù)器端需要做更多的壓力測(cè)試,而客戶端在自動(dòng)測(cè)試外還要做很多功能測(cè)試。

InfoQ:在監(jiān)控和反饋機(jī)制方面,兩個(gè)團(tuán)隊(duì)又分別是如何去做的?

蔣煒航:服務(wù)器端主要是服務(wù)器健康狀態(tài)的監(jiān)控??蛻舳擞形覀冏约簩懙腸rash report機(jī)制,還有一套自己的BI系統(tǒng),用于收集業(yè)務(wù)方面的指標(biāo)。

整個(gè)產(chǎn)品的日志跟功能是一樣重要的,一起開(kāi)發(fā)、測(cè)試。有健康的日志系統(tǒng),才能了解用戶的使用情況。這套日志系統(tǒng)檢測(cè)的指標(biāo)有幾百項(xiàng),其中一些比較重 要的指標(biāo)包括日活躍用戶量、各個(gè)功能的使用率、用戶滿意度等等。其中用戶滿意度是關(guān)鍵指標(biāo),也就是NPS(net promoter score),我們所有的產(chǎn)品中都有這個(gè)分?jǐn)?shù),這個(gè)分?jǐn)?shù)體現(xiàn)了用戶對(duì)產(chǎn)品的喜愛(ài)度。

InfoQ:客戶端團(tuán)隊(duì)相當(dāng)于是底層團(tuán)隊(duì)的客戶,這兩個(gè)團(tuán)隊(duì)之間是如何進(jìn)行溝通的?

蔣煒航:一個(gè)一個(gè)sprint來(lái)走。我們每個(gè)sprint先開(kāi)客戶端的會(huì)議,事先跟server端溝通好,要做 什么功能,可能有哪些接口,之后就是非常自主的形式了。比如客戶端安排要做功能A,server端做接口A,那么這兩邊的人就會(huì)自己去溝通,討論API該 如何設(shè)計(jì),協(xié)議如何做。

敏捷小組的特性就是自發(fā)性,我們沒(méi)有規(guī)定誰(shuí)是誰(shuí)的客戶,或者誰(shuí)lead誰(shuí)。我們就是設(shè)定了目標(biāo),分配任務(wù)到每個(gè)組,之后任何人都能驅(qū)動(dòng)。比如很常見(jiàn) 的,客戶端說(shuō)某個(gè)接口做的不對(duì),會(huì)跟server端一起去改接口,不會(huì)說(shuō)客戶端不管API的設(shè)計(jì),給什么用什么,大家肯定是一起來(lái)設(shè)計(jì)的。因?yàn)槲覀兊墓こ?師是full stack,所以這點(diǎn)是比較自然的。

另外,我們的產(chǎn)品、測(cè)試、運(yùn)營(yíng)也都跟研發(fā)團(tuán)隊(duì)是坐在一起的,這幾個(gè)團(tuán)隊(duì)之間的溝通都很多。我自己現(xiàn)在是60%在產(chǎn)品上,20%盯研發(fā)進(jìn)度,20%在運(yùn)營(yíng)和市場(chǎng)上。

責(zé)任編輯:閆佳明 來(lái)源: infoq
相關(guān)推薦

2013-01-25 10:37:51

敏捷開(kāi)發(fā)

2014-04-16 14:07:20

QCon2014

2022-05-31 17:38:05

亞馬遜科技

2014-04-16 14:05:39

QCon2014

2023-09-20 13:59:44

AI工具

2014-04-16 14:13:18

2014-04-16 14:10:35

QCon2014

2012-12-07 15:20:35

有道云筆記蔣煒航

2021-05-27 09:50:10

工程師代碼技術(shù)

2014-04-16 13:55:20

2014-04-16 14:21:58

2014-04-16 14:23:35

QCon2014

2014-04-16 14:26:08

QCon2014

2014-06-12 11:18:52

產(chǎn)品經(jīng)理有道云筆記

2014-04-16 14:03:06

QCon2014

2015-11-24 16:15:47

全棧工程師react

2014-04-16 14:15:01

QCon2014

2014-04-22 16:16:20

QCon2014

2015-05-20 10:02:02

程序員全棧工程師

2016-04-08 14:32:32

全棧工程師世界
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)