2015 年 9 月 12 日,Ping++ 支付在北京开展“创业 Ping 图”分享沙龙活动。在 Madnet 协同创新空间里,6 位嘉宾各自分享自己所在领域的见解,以下是哪上班联合创始人兼CTO杨敬涛演讲主要内容。
技术在创业团队中的定位
用户体验到的基本上都是产品层面的东西,基本体验不到任何技术方面的东西。但是产品如果没有技术的话,是无法实现的。创业过程当中大家是相辅相成的,这点希望大家要理解,不管是技术程序员也好,团队的其他人也要认知到这个问题。不是说现在产品为王,技术就不重要了,没有技术的话,产品也很难实现。
很多时候,可能一些从传统行业转过来创业的人会说,我要招一个程序员,要做一个 App,要做一个网站。现在技术人员总体需求差别特别大的时候,建议大家退一步想一想自己创业的定位和产品的模式,因为很多产品不一定需要一个程序员去实现。比如说我做一个中午点餐的平台,我可以开一个微信的公众账号,每天中午的时候把今天可以选的菜单推送给大家,用户点餐的话就回一二三四就可以了,这并不需要技术人员的参与。创业者不要因为招聘技术团队的困难影响到了你本来想做的事情。
0.0 第一位工程师
如果说必须要通过技术团队来实现目的,而且团队里面还没有任何技术团员的话,就看一看我们第一位招的工程师。工程师可以定义为是技术合伙人,不管你创业的产品的定位是重技术还是轻技术,都需要有一个懂技术的人,不一定很能写代码,但是得懂行业里面技术的发展,比如说技术方方面面的结构。
怎么去找这个人呢?这个人其实我个人建议还是从自己身边的朋友里面找,然后在社交圈子里面找,这个人是需要你高度信任的人,尽量不要把任何第三方没有背书的人招进来做技术合伙人,风险很大。
怎么判断这是一个你要找的人?这个人不一定代码能力强,但是一定是在一定程度上价值观和个性相符的人。但是现在确实有很多团队遇到找不到这种问题。其实现在有很多平台可以使用,果壳网有一个“在行”,你可以约一些创业者和有经验的人,看看你这个产品技术的部分是外包出去,还是其他什么方式。
0.1 技术选型&架构
第一个技术合伙人需要从三个角度的考虑。先从产品考虑说,这是一个网页产品还是一个 App产品。如果是 App 产品的话,市场上有很多专注做云的提供商,这些提供商可以减轻你对开发人员的需求,不需要自己有完整的开发团队。如果是Web端产品,就更容易了,现在网页上面的开源应用非常多。假设你做BBS,在很多地方可以找到开源代码,装到主机上面就能用,可能需要一个设计和前端,稍微装修下产品。
更后面说,假设我们要开发一个软件,可能要选框架,选语言,这方面其实是挺严重的,影响到整个创业的过程的。比如说开发跟迭代直接影响到能不能快速的从市场中得到反馈,并及时更新你的产品。如果从开始这个产品定位的好时机开始做,但你开发的慢,做完了时机已经过去了,已经有竞争对手抢在前面。迭代效率就是你从用户那里得到反馈并改进。选语言方面,我们自己有一点看法。尽量不选择那种比较重的语言,特别是早期创业团队里面会选择像 JAVA 一类在业内比较有名的开发语言,因为他们本身的框架比较丰富。但是这有一点问题,就是你比较难招到这些人。市场上会JAVA 的人可能非常多,但有好有坏。如果从阿里巴巴招了一个过来,但你们价值观不一样,他本身就是走稳的路线做产品,而我们作为创业公司就是要快速的迭代,不能走太稳的路线。所以我们倾向于选一些比较新的语言。
招技术合伙人还需要考虑到未来团队的扩张和流动。现在团队里面招了三个人,全是写 PHP的,可能有一个人走了这个产品就做不下去,这对你的产品影响非常大。所以选架构、选语言的时候一定要选一个市场上人员还算多、大众一点的语言来做,以防人员有流动,这样扩张的时候也比较容易。
0.2 - 0.4 团队的组建
招聘渠道,大家都知道上网搜一搜。但有没有人觉得招聘技术人员特别难的?互联网这个行业刚刚起来,像 BAT 这些公司给的福利、薪资待遇很好,所以中国现状培育出来的程序员来说,好大一部分,不敢说绝大部分,都是偏向于大公司。IT 人员本来就少,再加上一部分人希望毕业之后可以回到家乡,跟家里的父母讲我在百度、阿里巴巴工作,这就大大减少了创业公司招到的技术人员。所以我之前讲要看一看你的公司是不是非常需要技术团队开发你的产品,如果不必要的话,可以通过外包等形式快速实现你的产品,拿到融资。等有新闻报道的时候,通过PR手段进行招聘将更有效益。
那么招人时候都需要衡量哪些方面能力呢?这个创业公司招聘的人都差不多,需要吃苦耐劳,有一样的价值观,大家在一条船上,为了拼这个事业,愿意做出牺牲。技术方面来说,要招基础比较好的,看他技术转型方面强不强,技术好的程序员都没有太大的问题。总之,要招的话就是招最好的人,大家都知道,你不会想要不主动,不会自我激励的人。
0.5 - 0.8 协作与管理
A 轮和 B 轮可能会遇到的问题是,当你的技术团队变大的时候,协助与管理方式可能就不太一样了。当人员比较多,我们必须考虑制定开发的流程,约定的协作方式,还有代码规范。代码规范非常重要,假设招来的第二位员工,写了一堆代码,后面不能被其他程序员看懂或使用,那这个代码就基本作废了,所以这种一定要规范好。
我们重点讲的是选择合适的开发模式。Code and fix以及Prototyping可能更适合早期一个人的时候的做法,单打独斗,有 Bug 也没有问题,先让大家看到我们这个产品。敏捷开发在硅谷还挺流行的,但在国内比较少见,适合规模大到 5-8 个人的团队。敏捷开发有很多方法论,今天我想主要讲一讲 Scrum。
先说 Scrum 的三个角色:Product owner、Development team、Scrum master。Product owner可能是个产品经理,Development team可能包括技术、设计和测序成员。从最上面Vision开始,可能有产品那边提出了的想法,从用户方面收集到的反馈,它可能会汇集到Product Backlog,这些都是由产品经理负责的。然后由Scrum master把一堆需求里面整理出三到五个需求,在 2-4 周内完成 一个Sprint。每一个 Sprint 开始的时候就有一个 Meeting,看这个功能需要哪方面的人,前端后端组成一个团队。Scrum master主要的作用就是不让其他需求打扰这个团队里面的工作,让他们可以在 2-4 周内完成 Sprint。Scrum master还需要做团队里面的各种协调。
Sprint 每天都有一个站立式的小会,基本上大家站起来,围在一圈,每人说30s。Scrum Meeting基本就讲三个事情:我昨天做了什么事情、今天要做什么东西、是否有可预见性的 Block。这个会议里面中间不能有任何人打断,但是Scrum master会在后面做笔记,把这些东西记好。
后面很多组织性的角色是由 Scrum master 来做的,他角色有点像产品经理,需要各方面的组织和协调,有非常明确的目的。这个人产品和技术还得都懂一些,开发团队遇到什么问题的时候都是他来协调。他对每个产品的功能比较了解,才能做出判断。这个人在产品迭代的过程中起着非常重要作用,影响着你Scrum的流程能不能很好的完善下去。
0.9 - 1.0 稳定团队架构
到了最后一步就是稳定团队架构,这个时候作为技术合伙人也好,CTO 也好,就要开始分组了:前端组、后端组,运营组等。然后发现组里面成员比较有领导力的人,把他们挖掘出来领导他们的小组。可以让他们自由组织开发,比如说一个想法出来了,这个人本来就喜欢点赞功能的,现在让他做一个屏蔽功能也好,自由开发,做自己比较喜欢做的东西。这从某一个程度上能够帮助到技术团队未来的发展,技术团队慢慢会在技术圈子里面会更有名气,被更多人知道,吸引一些比较有想法,对技术比较好奇的人过来,加入公司。这就像是一个自我循环的团队组织了,贡献代码,做一些好玩的东西,内部可能有一些比较好玩的比赛,也可以试着举办一下。相较于HR 主动出击,相对困难的找程序员,这个被动式的让程序员找上来的方法还是挺好的。