专访“微团队”CTO 梁强:不必为框架而做框架

  • 涂兰敬

2013 年 9 月 13 日

话题:云计算语言 & 开发架构文化 & 方法百度云

引言:从 2011 年的“轻笔记”到 2012 年的“We 团队”再到 2013 年的“微团队”,梁强的团队在服务对象上已经从家庭、个人团体所需的笔记类产品转换为面向企业用户的办公、记录和分享。虽然“微团队”尚属于新应用,但是作为技术负责人的梁强,相对于“轻笔记”的时候多了很多与产品相关的经验和理解。近日,InfoQ 编辑采访了梁强,请他分享自己在产品开发和运营过程中的心得体会。

InfoQ:首先,请您介绍一下您的团队。

梁强:我们现在的开发团队,主体是在 2012 年组建完成的。团队组成包括产品经理、UE & UI 设计、Android 客户端、iPhone 客户端、微 b 前端、服务器端共 6 人。开发人员主要是应届毕业生,在学习中逐渐融入团队。团队强调学习、独立解决问题的能力。

InfoQ:从产品的创意开始谈起。您这个产品是为了解决什么样的问题而开发的?如何发现到这个需求的?

梁强:之前的个人产品“轻笔记”中,已有群组的功能,笔记类产品我们是第一个。当时想解决家庭、兴趣小组、情侣之间的共同记录、共同分享的需求。在现实使用中,我们发现有不少人会用群组来管理工作,如记录工作日志、安排任务、讨论事情等。尤其现在智能手机已经相当普及,如能利用手机进行工作,必然会大大提高工作效率。用手机进行移动办公,必然是大势所趋。

企业用户用来办公,个人用户用来记录和分享,几乎不可能用一款产品来同时满足。比如,个人用户记录的内容,大多要从外部获取,因此网页剪切、浏览器插件、从其他应用分享保存过来的需求会很强烈;另外,个人有隐私内容,要求严格保密;而隐私以外的内容,通常是知识性,会有分享出去的需求,绑定微博等 SNS 是自然之举;反过来企业用户就有很大的不同,记录的内容大多是工作过程中自然产生;内容在内部通常可对大部分人公开,对外则一般不可以公开等等。这就是我们为什么要另外单独做一个企业产品“微团队”的原因。

InfoQ:“微团队”这个产品是如何解决用户需求的?请举例说明一个典型的用户使用场景。

梁强:目前“微团队”主要采取两种实体来解决用户需求。一种是文档,就是大家的公共知识库,能解决公告、工作指南等方面的需求。另一种是任务,就是能指定人要求在指定时间内完成指定的工作,能追踪任务的完成状态。大部分工作都可以用任务的形式进行安排。

动态是团队工作的最新变化,帮助用户了解团队其他成员的工作进展。而与个人有关的工作,则采取消息推送的方式,让用户马上进入工作状态。

团队协作产品本质上是要解决团队沟通的问题。目前常见的沟通手段有:会议、email、电话、短信、QQ、微信、SNS 等。“微团队”的着眼点在记录和沉淀,因此不会去做沟通工具本身,而是会尽量利用已有的工具。

与传统的 OA 办公系统相比,“微团队”将绝大部分办公内容能够在移动端实现,工作和沟通不再受时空限制。与现在流行的即时沟通工具如微信等相比,“微团队”不是聊天工具,更侧重于知识的沉淀和归档整理;在团队范畴内有统一的安排和管理。微信、微博、电话,甚至传统的 email,本质上都是个人产品,并完全不适合企业办公使用。而“微团队”希望能提供更好的服务。

“微团队”的口号是:管理最简单的移动办公平台。产品本质上是要解决团队沟通的问题,从而大大提高工作效率。“微团队”产品适用对象相当广泛,目前使用频繁的用户包括:销售、设计、物业、研发、网店等等。以销售团队为例吧,一般销售人员不集中上班,而是分散工作,因此对任务安排、任务完成状况、如何相互配合都有一定难度。常见工作如拜访客户、签采购合同、发货收货、收付款、开发票等,是有先后顺序的,相互关联的,团队协作起重要作用。

InfoQ:“微团队”这个产品在开发之时,选择了什么样的框架、前端架构等技术架构层面的问题?

梁强:对于“微团队”这个产品,移动互联网和云服务的标签是很明显的,要支持跨平台是显而易见的。在目前的市场状况下,至少要支持 Android、iPhone、微 b 浏览器,这是最最基本的。

并且支持多平台,设计并提供一套统一的微 b 服务接口是最简单高效的。反思当初轻笔记在最初设计时,就采用 HTTP 和 TCP 两套接口,使得后期维护工作加大不少。框架是为需求服务的,只要能最简单有效地解决需求问题,这个框架就不错。不必为框架而做框架。

InfoQ:如今解决一个技术问题可以有多种途径,例如使用开源项目,自主开发或者使用第三方提供的商业化服务。在“微团队”这个产品的开发过程中,这种决策是依据哪些因素来进行的?

梁强:技术是也为需求服务的。我们选择的优先级是开源项目、第三方服务和自己开发。开源项目一般是第一选择。但是,开源项目有很多,选择哪个开源项目其实也是要花费精力的。通常考察开源项目包括以下几个因素。一是知名度、使用者有多少。所谓盛名之下其实难副,相当于别人帮你考察过了。用的人多,参考资料也会多,有问题也可咨询。二是代码的易用性、易读性和易扩展性。简单易用是最关键的。不但学习成本低,以后做升级、替换等工作都会更容易。

“微团队”这个产品决定使用百度云服务,我们前后考察了很久。因为基于百度 BAE 的平台,其服务的灵活性较阿里云那样的云主机要差一些。优势也很明显,能使用已包装好的服务,产品部署要简单得多。我们分析了“微团队”产品中长期的需求后,大部分需求百度云都能满足,才选择了它。

其实到后来,依然出现了百度云不好解决的问题,如全文搜索。按理说,百度本身作搜索服务的,提供全文搜索的服务理所当然,但事实却没有。目前只好使用 MySQL 自带的全文搜索功能。事物总是有两方面,有利有弊,总是要权衡比较选择利大弊少的方式。

InfoQ:“微团队”这个产品创意实现的过程中,在技术上涉及到哪些难点?具体如何解决的?

梁强:在一个产品的发展过程中,某个技术上的问题通常都不是大问题,而产品的方向、迭代历程,才是真正左右项目生死的。目前的产品开发过程,即使不是敏捷,一般也是采用迭代的方式,通常 1-4 周内会迭代一次。我们一般是 2 周一次。

技术只是实现的手段。条条大道通罗马,达到同一目的的手段有千千万万,不要执着于一条。比如做消息推送,要支持在不同平台上进行推送,百度云平台提供了统一解决方案。在 Android 上测试,很满意。但在 iPhone 平台上,支持不好,于是便改用了 parse 的服务。百度云的网页长链接,那时也有问题,我们用轮询的方式也能很好达到目的。

关于受访人: 梁强,北京师范大学、中国科学院 GIS 专业硕士毕业。毕业后先后在中科院凯思软件集团、索尼爱立信公司工作多年。2010 年,离职开始创业。与合伙人共同创建了行客诺(北京)科技有限公司。2011 年推出个人云存储产品“轻笔记”,先后两次在百度云应用大赛获奖。2012 年底,因盈利模式问题,转型主打企业移动办公产品“We 团队”,2013 年 9 月中旬改名为“微团队”。

云计算语言 & 开发架构文化 & 方法百度云