简说创业公司的技术选型,从BearyChat的开发说起
發表于2015-07-28 16:25| 3491次閱讀| 來源CSDN| 5 條評論| 作者蒲婧
CTOCTO俱樂部創業工具管理實踐CTO講堂 width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-07-28%2F2825318-CTO&type=3&count=&appkey=&title=%E5%9C%A8%E6%97%A5%E5%B8%B8%E5%B7%A5%E4%BD%9C%E4%B8%AD%EF%BC%8C%E9%99%A4%E4%BA%86%E4%BD%BF%E7%94%A8%E5%9F%BA%E7%A1%80%E7%9A%84%E6%B2%9F%E9%80%9A%E5%B7%A5%E5%85%B7%E5%A4%96%EF%BC%8C%E8%BF%98%E9%9C%80%E8%A6%81%E5%BE%88%E5%A4%9A%E5%85%B6%E4%BB%96%E7%9A%84%E5%B7%A5%E5%85%B7%E6%9D%A5%E5%8D%8F%E5%8A%A9%E3%80%82%E4%BD%BF%E7%94%A8%E7%9A%84%E5%B7%A5%E5%85%B7%E8%B6%8A%E5%A4%9A%EF%BC%8C%E4%BF%A1%E6%81%AF%E5%B0%B1%E4%BC%9A%E8%B6%8A%E9%9B%B6%E6%95%A3%E5%8C%96%E3%80%82%E4%B8%80%E7%86%8A%E7%A7%91%E6%8A%80CTO%E3%80%81%E8%81%94%E5%90%88%E5%88%9B%E5%A7%8B%E4%BA%BA%E5%94%90%E6%99%93%E6%95%8F%E5%B8%A6%E6%9D%A5%E5%85%B3%E4%BA%8E%E4%BC%81%E4%B8%9A%E5%8D%8F%E5%90%8C%E5%B7%A5%E5%85%B7%E7%9A%84%E5%88%86%E4%BA%AB%EF%BC%8C%E4%BB%A5%E5%8F%8A%E8%B0%88%E8%B0%88%E5%B9%B4%E8%BD%BB%E5%88%9B%E4%B8%9A%E5%9B%A2%E9%98%9F%E8%AF%A5%E5%A6%82%E4%BD%95%E5%81%9A%E5%A5%BD%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1449925114874" frameborder="0" scrolling="no" allowtransparency="true">摘要:在日常工作中,除了使用基礎的溝通工具外,還需要很多其他的工具來協助。使用的工具越多,信息就會越零散化。一熊科技CTO、聯合創始人唐曉敏帶來關于企業協同工具的分享,以及談談年輕創業團隊該如何做好技術選型。為了幫助IT從業者職業之路擁有更多收獲,在諸多C粉的殷切期待下,由CTO俱樂部打造的CTO線上講堂自登場以來獲得大家好評。本期邀請一熊科技CTO、聯合創始人唐曉敏帶來“簡說創業公司的技術選型,從BearyChat的開發說起?”的創業主題分享。
想與業界大咖零距離溝通,歡迎加入CTO講堂微信群(7月31日,新一期講堂報名請拖至文末查看)
演講嘉賓:一熊科技CTO、聯合創始人唐曉敏
嘉賓簡介:唐曉敏,一熊科技CTO、聯合創始人。畢業于大連理工大學,后來加入了阿里云從事搜索工作,前后參與過 delicious, 美味書簽,玩拍和 LeanCloud 的數據挖掘項目,并在此期間獲得過 chad 和 steve 成立的創始人獎,目前在一熊科技專注于開發 BearyChat。
公司簡介:一熊科技團隊成立于2014年3月,團隊分布在深圳和北京進行遠程開發協作,公司專注于開發企業協作類工具產品。目前已推出兩款明星產品:白板和BearyChat。白板主要解決設計師或者團隊在討論設計圖時的不便,用戶可以通過在討論圖上原地做標注、評論,來完成設計圖的討論和協作工作。從2014年的4月25日 Alpha 版本上線至今,零推廣下「白板」已經積累了超過10萬的用戶;BearyChat是團隊傾力打造的一款面向企業和團隊的溝通工具,通過“各種第三方服務集成”、“全格式的文件共享”、“自由定制的團隊機器人”等方式用戶所關心的信息快速匯聚到平臺上,再通過信息的“永久保存”、“一鍵收藏”、“全局搜索”、“實時預覽”將信息流快速梳理,從而提高工作效率。一熊科技在去年獲得了數百萬人民幣的天使輪融資,目前正在積極進行A輪的融資。
以下是7月24日CTO講堂現場完整速記:
主持人:今天嘉賓是一熊科技CTO、聯合創始人 唐曉敏,請唐同學做個自我介紹吧。
唐曉敏:大家好,我叫唐曉敏,今年是在互聯網學習的第五年,之前在阿里云做過搜索,主要是 Query 分析和排序;后來跟隨豐老師(現在 LeanCloud 的 CTO)加入 AVOS,參與創業,當時參與了 Delicous 改版,國內美味書簽,玩拍(短視頻)和 LeanCloud,主要負責后端,包括爬蟲,API,推送服務等。現在是一熊科技聯合創始人/CTO。
主持人:作為85后創業者,唐同學是在何種情況下選擇創業的?
唐曉敏:在阿里的時候,其實技術深度成長還是挺好的,但是大公司的一些通病,我受不了,再加上當時特別蔥白豐老師,就跟著出來參與創業了。有幸兩年多的時間和國內優秀的團隊和國外 youtube 的創始人和早期員工一起工作,其中除了技術增長外,讓我體會最深的還是國內外 Saas 環境的差別,國外團隊特別注重生產力,會用各種工具,因為每個工具都做的非常棒,而國內工具少,做的又沒有那么細致,我就一直想著國內也要又好工具,所以就和同事一起出來搗鼓了。這里宣傳一下 LeanCloud,真的是一家工程師文化非常棒的公司,在的時候就說過,如果有一天離開 LeanCloud,唯一的理由就是自己出來搗鼓:)
主持人:介紹一下一熊科技目前的情況以及團隊構成吧。
唐曉敏:一熊科技是 2014 年 3 月份成立,目前有 12 位全職成員,在北京和深圳都有辦公室。團隊的成員大部分來自微軟,豆瓣,網易和阿里。
目前,我們做了兩款產品: 白板(BearyBoard.com), 主要是解決設計師溝通問題;倍洽(BearyChat.com),主要是解決團隊溝通問題。
主持人:在創業方向上一熊科技是如何選擇的?為什么選擇這個領域?
唐曉敏:其實也沒有什么特別的,說的老套一點,就是不忘初心。
在 AVOS 的時候做過用戶產品,雖然很喜歡用戶產品,但是我們內心還是工程師的內心,想做工具,而且自己的背景也更適合做工具,所以就選擇了 Saas 這條路。
主持人:不忘初心,方得始終哇。介紹下一熊科技的創新產品及重點項目吧。
唐曉敏:白板是一熊科技的第一個產品,他就是一個減法產品,解決設計師溝通問題:上傳設計圖,邀請相關人員進入討論,哪里不明確就可以點哪里進行實時討論。這個產品剛上線不久就得到不少好評,簡單有效。
公司目前的重點項目是 BearyChat,是為團隊打造的一款溝通工具,分組討論,第三方集成,文件管理和全局搜素是四大核心功能,如果大家知道 Slack 的話,就很容易理解了。我們其實最初的想法是做 HipChat,因為在 AVOS 的時候,從 Gmail -> GTalk -> HipChat -> Flowdock -> HipChat,溝通工具使用了遍,只有在用 HipChat 的時候,我從工程師的心理出發,感覺非常爽,當時就想國內也要有一個(網絡不穩定)。后來 Slack 內測,很快就拿到邀請碼,使用起來,這個時候的感受除了爽,還多了一種責任,就是要告訴其他所有伙伴,用 Slack。就這樣,我們決心打造一款國內的類 Slack 產品。
主持人:BearyChat項目如何開展的?
唐曉敏:我們是兩個月一個周期進行沖刺,首先有一個基本原則:活躍和留存。所有的事情都需要和這兩個數據掛鉤,越直接優先級越高。每個周期大概分三個階段:
首先是功能需求確定階段,這個大約有一周時間,最后都會體現在 Trello 里面,主要是:
- 1. 確定 2 到 3 個大功能;
- 2. 對于收集到的反饋問題按優先級確定哪些要在這個周期處理,進行細節迭代;
- 3. 最后和每一位同事確認需求,保證大家達成共識,知道這個周期的共同目標以及最終期望結果;
- 4. 計劃排期階段,這個大約 1 到 2 天時間,主要是和每位同事溝通,確定工作量,最后以周為單位,劃分這個周期的任務。
開發階段,包括:
- ?* 產品和設計師再次明確需求
- ?* 設計師出設計
- ?* 產品和相關開發驗收設計
- ?* 開發
- ?* 產品和設計師驗收開發
- ?* 黑盒測試
- ?* 上線
回顧階段,主要是做總結,看這個周期完成度如何,差的比較多的話,會留一些時間做收尾或者將一些內容留到下個周期。
整體項目的推進是采用簡化的 Scrum 敏捷開發,每天會 15 分鐘左右的站會,讓大家清楚每個昨天已經做的事情和今天要做的事情。另外除了 Trello 之后,我們還有一個現實白板,大家可以清晰的看到每個計劃所處的階段,目前主要分:Doing, Stage, Prod。然后我們每周五下午都會有一個 demo day,讓大家來展示一下各自做的東西,保證一周的進度 。
主持人:那么BearyChat的內部開發流程以及上線流程是怎樣的呢?
唐曉敏:整個開發的流程基本是和上面提到的開發階段差不多,這里我就說說我們開發這個環節的內容。先介紹一下我們的開發主要依賴的工具:GitHub 和 Jenkins。GitHub 開發過程中要是是用來做 Code Review 和 issue 跟蹤;Jenkins 主要是用來保證測試和部署。
- * 工程師從 Trello 拿任務放到 GitHub issue 中
- ?* 開分支,完成后提 PR,同時要 at 至少一名 Reviewer
- ?* 因為我們將 GitHub 和 Jenkins 做了集成,代碼的每個提交都會觸發 Jenkins 的測試,當 PR 處于測試通過并且可以自動合并的狀態下,Reviewer 開始 Review
- ?* Reviewer 通過 Review 最后負責合并分支,issue 會隨著 PR 合并自動關閉
- ?* 將代碼部署到測試環境,進行功能驗收
- ?* 將 Trelo 里面的 card 放到 DONE 里面
開發上,我們堅持 Code Review, 所以每個端的工程師基本是保證由兩個以上的人員組成,可以互相 review 并且有 backup。
上線流程不同的端有不同的上線時間點,原則上:
- ?* 前端/后端:每周二周四上線
- ?* iOS:每兩周,提交一次審核(目前我們遇到的審核基本是兩周可以通過的節奏)
- ?* Android: 每兩周提交一個新版,因為安卓審核過程可控,所以節奏比較把握
- ?* 桌面端:是累積到一定新功能就發
這里有個小故事分享一下,最早的時候,我拍腦袋說我們每周五上線,最后才意識到周五上線之后,第二天出點小問題,就是周末了,就會耽誤大家的生活,于是果斷切換到周二和周四上線。
主持人:請介紹一下在產品開發過程中,對于架構的把控和設計是怎樣的?
唐曉敏:嗯,先分享一下我們整體架構。( 盜了我們首席前端在深圳 JS 大會上的圖)
其實大家看了一眼,可能覺得沒有什么特別的,很簡單,沒錯,不過這就是我對于架構和設計的一個想法:簡單。我們在技術架構上不做過度設計,但是會保持基本原則:可擴展。
可擴展包括兩個方面:
- ?* 橫向擴展:監控得當,當發現流量增長的時候,可以及時用**加節點的方式**解決壓力問題
- ?* 縱向擴展:對產品發展有預見,設計的協議,結構可以應對未來產品功能的擴展需求
另外就是要盡可能做到模塊化,解耦合。隊列系統是必須要有的,所有可以異步化的模塊都要異步化。
主持人:公司產品的主力開發語言用了哪些?為什么要如此選擇?
唐曉敏:前端是用了 AngularJS 和 LESS,后端是 Clojure 和 Erlang。
* AngularJS: 從語言角度講,Angular 有一定程度的組件化,容易復用,上手也相對容易;從和項目契合度來講,AngularJS 搭建實時系統非常方便,雙向綁定雖然性能差些,但是 MVC 很清晰;從社區角度講,我們在 2014 年 初開始做的,當初社區正式最火的時候,Library 非常豐富;從自身角度講,前公司有一個 AngularJS 的專家,跟著入了門。
不過 JS 框架通常每隔一段時間就出來一個,比如現在的 React, 選擇一個當下最合適的就行。唯一一個坑就是 AngularJS 2.0 對下不兼容
* LESS: 不用說了,模塊化,語法糖,節省時間;
* Clojure: 基于 JVM 的 Lisp 方言。我也是在前公司開始接觸 Clojure, 至今寫三年多,總結來講,非常適合做數據處理的事情,尤其適合做 API Server;從語言角度講,函數式編程,比較純粹,數據就是代碼,代碼就是數據,操作起來很方便;社區角度講,雖然不是很火,但是畢竟有 JVM 的優勢,所有 JAVA 的庫都能引入;從自身角度講,已經寫了兩年的 Clojure,已經很快能搭建一套服務,節省時間。
當然可能大家覺得最大的一個坑就是面臨很難招人的問題,然而我覺得這也算是一個優點,一個好的篩選器,我們有同事就因為想寫 Clojure 才來我們公司。另外,也想和大家說一下,Clojure 一開始學習曲線可能會稍微抖一點,但是基本上一個月就能上手,而且你會發現另外一個完全不同的世界, 如果你沒有接觸過 Lisp 的話。
* Erlang: 古老的語言,但是設計的目的就是解決通信問題,他的語言特性就是用來解決高容錯,分布式。Erlang 采用了 Actor 模型,并且有 OTP Library,搭建分布式門檻就低了很多。
另外作為一門古老的語言,在消息通信方面有很多代碼積累,比如 Ejabberd,應該算是 XMPP 協議下用的比較多的一套開源方案了。網絡庫方面,有 cow_boy, ranch 等;集群方面,有 riak_core 等;通信協議方面,有國人實現的 MQTT 協議;消息隊列方面,有 RabbitMQ;
從產線上來講,What's app 十幾人的團隊就能扛住大流量,我相信 Erlang。和 Clojure 一樣,可能大家覺得招人不容易,還是那句話,這其實也是一個篩選器。我們期望的技術團隊就是一個小而精的團隊。
主持人:一熊科技的技術團隊是什么樣的氛圍?工作模式是怎樣的?你們如何保證異地合作的呢?
唐曉敏:氛圍的話,就是輕松愉快。大家每天都會互相黑,在工作上,會互相撕,但是完全不會影響關系,該一起睡還是一起睡。我們不推崇加班,希望大家可以很好的平衡工作和生活。
目前工作上,我們重度依賴工具:
- BearyChat: 內部溝通,聚合第三方通知信息
- GitHub: 代碼托管,Code Review,issue 跟蹤
- Jenkins:? 集成測試,部署
- Sentry: 異常收集
- Grafana+statsd: 數據收集
- Trello: 項目管理
- Skype: 遠程溝通
- Fir.im: App 內測
遠程的話,第一就是信任,人要靠譜,然后只要計劃合理,我覺得就沒什么問題。
主持人:據了解,一熊科技團隊技術成員均87后,這樣一支年輕的團隊,有怎樣的特質?那么管理方式上,有沒有不同之處?
唐曉敏:現在我們是十二個人的團隊,就是一幫兄弟,初生牛犢不怕虎,在生活得到一定保障的前提下,大家可以開心的在一起做大家想做的事情。管理?每個人都有遠程的自制力,其實不太需要管理,看結果就行。
主持人:那么你們如何提高團隊成員技術競爭力的呢?
唐曉敏:
- 1. 盡可能放權,讓成員去獨擋一面,允許犯錯,跟著公司成長
- 2. 溝通,內部的話,我們主要依靠 Code Review, 這個過程就是充電過程,不論是看還是被看的,都會學習到很多;外部的話,定期參加技術會議,質量高的馬拉松,和業內的人討論,也能開闊眼界。
主持人:在創業的過程中,是否遇到過發展瓶頸?有無一些經驗教訓給年輕創業小伙伴們?
唐曉敏:其實,我也就是自導創業了一年多,踩了很多坑,一下子也說不完,就挑幾個分享一下吧:
- 1. 擁抱開源,一開始會大大降低技術門檻
- 2. 擁抱工具,該花錢的地方就花,盡可能減少自己維護的成本,現在人最貴
- 3. 耐心,創業的路子遠沒有想象的那么容易走,要早點學會鼓勵自己,內心軟弱的話,縱鐵甲難護:)
互動環節:消息隊列是用的RabbitMQ?
唐曉敏:是的。
互動環節:市場上也有類似的產品,你們的產品優勢是什么?
唐曉敏:要說產品優勢的話,我就不吹了,BearyChat 的用戶是這么說的:設計出色,有思考,不是照搬,有自己的思考;功能穩定,其他幾個產品他們用下來多多少少有問題;服務到位,反饋可以非常及時的回復。
互動環節:在唐總的剛剛提到的過程中,產品經理或者產品人員擔任怎樣的角色呢?創業項目的話在真正做大之前,基本上都是在試錯再修正,這個過程中,產品經理怎么引導,怎么做到既具有前瞻性又具可執行性?
唐曉敏:基本是我和 CEO 負責。我們也在摸索 不過數據上漲才是硬道理
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的简说创业公司的技术选型,从BearyChat的开发说起的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揭秘高效协作工具背后的技术架构
- 下一篇: 从开发到上线,一个人的两周产品研发之旅