简说创业公司的技术选型,从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 负责。我们也在摸索 不过数据上涨才是硬道理

简说创业公司的技术选型,从BearyChat的开发说起相关推荐

  1. 简说创业公司的技术选型,从「BearyChat」的开发说起

    「BearyChat」可以为用户做什么? 「BearyChat」是由一熊科技目前重点为团队打造的一款沟通工具,通过"各种第三方服务集成"."全格式的文件共享". ...

  2. 关于小公司/创业公司的技术选型、管理以及如何如何快速成长获得成功

    这篇文章会我从多方面深入分析小公司/创业公司的困境.现状,梳理剖析创业公司/小公司的需求,以及为小公司/创业的公司以后的发展指明方向. 首先创业,我觉得要明确的清楚自己的目的,自己做的事情是什么,我理 ...

  3. 谈谈创业公司的技术选型

    从公司成立第一天起,我们就以 Google 的技术标准要求团队,鼓励使用新技术.鼓励重新造轮子.鼓励全栈,同时因为业务涉及视频.电商.社交多个领域,我们在创业环境下对微服务.DevOps.自动化测试和 ...

  4. 【做项目】基于SpringBoot从零开发的个人博客 —— 从技术选型到部署实战(附学习路线)

    文章目录 一.前言 1.1 背景介绍 1.2 寻找开源项目 1.3 技术选型 二.正式开发 2.1 看懂项目并模仿 2.2 正式动手敲之前,内化成自己的项目,对其设计并架构 2.3 动手编写 三.博客 ...

  5. 如何做好企业/团队的技术选型?

    好的技术选型,能最大程度地提高企业和团队的效率,从而开发出满足用户需求的产品.作为一线的技术管理者,他们都是怎样做的呢? 大公司或者大一点的团队的技术选型几乎不需要太多讨论,因为最后会不可避免地绕到技 ...

  6. 从零开始搭建创业公司后台技术栈!

    原文 : http://ju.outofmemory.cn/entry/351897 前言 说到后台技术栈,脑海中是不是浮现的是这样一幅图? 图 1 有点眼晕,以下只是我们会用到的一些语言的合集,而且 ...

  7. 从零开始搭建创业公司全新技术栈

    目录 **1.项目管理/Bug管理/问题管理** **2.DNS** **3.LB(负载均衡)** **4.CDN** **5.RPC 框架** **6.名字发现/服务发现** **7.关系数据库** ...

  8. 从零开始搭建创业公司后台技术栈

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 -     前言 ...

  9. 聊聊关于创业公司招聘技术负责人

    概述 身边有位做业务的好朋友去创业了,在一起吃饭的时候聊起了这个话题,在这里给大家分享一下. 主要讨论了这些问题: 关于技术负责人. 关于研发流程,团队职能. 关于技术选型,技术架构,技术管理. 关于 ...

最新文章

  1. django权限系统实现步骤_Django权限机制的实现
  2. vs cmake opencv 远程 ubuntu 开发时:vs代码出现紫色波浪线且报错怎么办?
  3. kotlin为什么比java编译慢_为什么Kotlin编译速度比Scala快? [关闭]
  4. java 布尔表达式_java - 布尔值,条件运算符和自动装箱
  5. 这10道springboot常见面试题你需要了解下 1
  6. (Matlab源码)Matlab实现算术编码(Arithmetic coding)超级详解(每一段代码都可以看懂)
  7. mysql tree 和 hash_mysql_B-tree索引和哈希索引
  8. 15套前端经典实战项目大合集,小白练手必备实战项目
  9. 星外系统更换短信接口
  10. matlab如何打开flt文件,科学网—grb文件的读取 (更新) - 张凌的博文
  11. 排序算法c语言描述---基数排序
  12. 五、神奇的自然常数e之“自然”魅力
  13. 用计算机处理文字单元设计,计算机应用基础单元设计62(处理图像).doc
  14. 机器学习|切比雪夫、辛钦和贝努里大数定律|15mins入门|概统学习笔记(十四)
  15. 搭配emuc-b202 can卡通讯时,时断时续
  16. Google中国招聘三大标准 实干、内功与人品
  17. 修复计算机有什么用,电脑硬盘坏道修复了对以后电脑使用有什么影响吗?
  18. 二维码学习笔记(二) | 数据分析与数据编码
  19. 教你如何做好微信营销说到微信营销
  20. ASLR 的关闭与开启(适用于 Windows7 及更高版本)

热门文章

  1. 什么是用户对计算机进行配置的重要工具,《计算机常用工具软件》试题1
  2. 大数据数据收集数据困难_大数据架构、大数据开发与数据分析的区别
  3. socket同步和异步通信区别_程序员必知必会,同步通信与异步通信,你了解多少...
  4. linux 进程原理内存,linux进程通信之共享内存原理(基于linux 1.2.13)
  5. android android studio单元测试实例
  6. DialogFragment 全屏显示
  7. java trackid_Java Preference.getContext方法代码示例
  8. nginx 超时时间_我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢?
  9. Leetcode 8. 字符串转换整数 (atoi) (每日一题 20210615)
  10. numpy笔记整理 multivariate_normal(多元正态分布采样)