组建技术团队前的思考
着手组建技术团队之前,我们不妨先思考下面三个问题:1.该不该组建技术团队?2.该招什么样的工程师?3.该招多少工程师?
1.该不该组建技术团队?
这个问题看起来很傻,没有人怎么做事呢?但凡事都有两面性,技术团队给我们带来更多自主性的同时也带来了极大的人力开支。在北京一个本科刚毕业的工程师,月薪至少10000+,换算成公司开销至少是15000。想组建一个最基本配置的团队,每个月至少得有50000以上的预算。
另一方面,随着互联网的发展,基础组件都已经服务化,很多事情都可以通过这些服务或者是外包来实现,不一定非得有一个专属的技术团队。
是否组建技术团队要在综合考量公司发展、财务情况之后再做决定。很多时候我们因果倒置先组建了团队再来考虑公司实际的需求,这是很大的决策失误。
2.该招什么样的工程师?
对人工智能,大数据运算,公有云服务这类创业公司来说,技术是最大的壁垒,他们需要顶尖的学术型人才。而对于青橙科技这样的Saas类或者解决某类实际问题的创业公司来说,技术是辅助,我们需要实干的能解决问题的工程型人才。
BAT都有各自的研发序列:
在开始招聘之前,我们可以根据公司目前的需要对工程师做人才画像。
例如青橙科技对工程师的要求有:
(1)技术能力:百度T3-T5级别。
(2)性格特点:踏实沉稳,积极主动,必须有责任感。
(3)其他加分项:沟通流畅,热爱健身优先。
3.该招多少工程师?
在一个什么样的大环境下,想要以多快的速度完成多少个多大的产品决定了我们要组建一个多大规模的工程师团队。
这句话听起来比较拗口,以我们青橙科技作例子:
在天使轮之前,我们只有一条产品线。全公司只有我和CEO两个人,我负责技术,他负责产品和商务。
在A轮之前,我们只有两条产品线。整个服务端团队只有3人(其中1位还是实习生)。
现在,我们完成了A+轮融资,已经有了好几条产品线,整个技术团队接近20人。
我认为做好一件事靠的不是人多,一个小而精的团队更适合创业公司。
我曾经看到过三条建议,可以给大家作参考:
(1)联合创始人不要超过3人。
(2)在没拿到投资之前,如果有盈利业务,人数不要超过10个。如果没有盈利业务,人数不要超过5个。
(3)在拿到第一笔投资之前,如果钱没超过500万人民币,又无客户和大量销售人员,人数不要超过15个。
如何组建技术团队
怎么组建技术团队是本篇文章的重点内容。招聘遵循漏斗模型,我们需要关注流量来源和转化情况。我主要想从下面几个方面来具体说说:1.招聘渠道2.怎么吸引工程师3.提高团队效率,选择扩大化。
1.招聘渠道
简历怎么来呢?获取简历是一个技术活,我们的目标是付出尽量少的时间以及金钱来获取又多又好的简历。
对我来说,简历的有效性> 简历的质量> 简历的数量。
三年的招人经历,我使用过不少渠道。我重点推荐三个渠道:
(1)人脉内推:基于人脉的推荐永远是最好的渠道。朋友的背书是一个过滤器,能帮助我们以最省时省力的方式淘到优秀的人才。
(2)Boss直聘:我用Boss直聘已经2年多时间,单Python这个职位已经沟通了1600多位候选人。用同事的话说,整个Python社区1%的工程师都跟我聊过天。Boss直聘的转化率不算高,但是好在简历时效性很高,数量多,同时还有着持续性的增量资源,能源源不断的给我们补充人才。
(3)垂直社区:垂直社区是我最近才尝试的渠道。我付费使用了掘金的广告服务,虽然只有2天的时间外加数千元的投入,但我们收到了50多份意向简历,其中进入到面试环节的有5人。初次尝试的效果远超预期。因为掘金的试验成功,我也尝试在PMCaff上招揽产品工程师。
下图是我这3年来使用的渠道的总结。
2.怎么吸引工程师
对于很多创业公司来说,招聘是一种挫败的体验。原因挺简单:创业公司需要优秀的工程师,而优秀的工程师是最不愁工作的一群人。我们要跟各路公司争抢人才。
我在这方面感受非常真切,投入了大量的精力招人,最后入职的寥寥无几。
我开始反思。第一感觉是钱给得不够,身为半个hr自然也从一些渠道了解到其他公司的薪资待遇。但是薪资问题切忌对比,拼钱永远没有尽头,我们只能量力而为。
难道这是一个无解的问题?
当然不是,薪资只是其中的一个环节而已。想招到合适的人,还必须提升公司的综合竞争力。这是一个长期的挑战,我们可以尝试从各个方面去实践:
(1)提升公司品牌影响力。
(2)形成公司文化差异化竞争。比如:知乎的海盗文化与帆船训练,Tower 远程协同工作。而我们青橙的特色就是健身文化。
(3)技术氛围的培养以及团队牛人的吸引。技术圈其实很小,一些开源的产出就能辐射大部分圈内目标人群。
3.提高团队效率,选择扩大化
我们的目的是招到合适的工程师。如果我们自身的竞争力已经很难在短期内提高,没办法吸引到高端的优秀人才,我们能不能从其他角度入手,让组建团队这件事更加容易进行呢?
我观察了一下我们公司工程师们的工作分配情况:
回答客户反馈的问题,其中大多数不是程序bug(10%)
编写代码(60%)
调试代码(20%)
开会讨论项目的设计方案(8%)
上线(2%)
其中编写代码是工程师最耗费时间的工作,能否快狠准的完成需求看似是能力问题,但事实却并非如此。
编写代码时间具体花在哪了?
(1)思考该用什么样的方式实现功能?
(2)思考这个功能之前有人做过吗?能不能复用?在哪找到复用的代码?
(3)知道该怎么实现功能了,但是该怎么做代码分层?
(4)提供对外调用的文档。
(5)重复性的做数据格式转化,数据校验。
以上5点中只有第一点是能力的体现,其他大部分是编码规范的问题。开放性的编码造成大家花费大量时间思考怎么写代码,也让很多解决方案不能沉淀,制造了重复性的工作。
程序界有一句名言:规范大于配置。我制定了一套符合青橙现状的编码准则,目的是让大家都能明确的知道如何工作,把精力聚焦到实现逻辑上,排除编码不规范带来的困扰。这里强调“明确”二字,何谓明确?对于一个需求,当实现逻辑固定的时候,方法的拆分也是固定的,各层编码所在的位置和命名也是固定的。这样一来,代码量的增加、功能的增加都不会让工程过于失控。
有了规范的好处远不止于此。按照规范编码无形的给工程师设定了一个行为下限,我们不再需要一个珍贵且昂贵的架构师,而需要能兢兢业业将功能考虑周全的工程师,选择的范围扩大了不少。
除此之外,工程师工作时最忌讳精力分散,以及做很多重复的无意义工作。
所以我们重新调整了问题反馈机制,任何反馈都必须经过产品经理确认,只有真正的问题才会分配到开发。
我们减少了不必要会议,并且需要开发参与的会议都得带有明确的产品需求和实现方案。
我们将冗余的工作自动化:代码检测、接口参数检查、自动化反射文档、错误统计与日志、自动化上线等等。
一切的一切,就是为了让每个工程师能聚焦到手头的工作上,提高大家的工作效率。3个人拿4个人的工资干5个人的活。在整体预算固定的情况下,提高效率意味着我们拥有了更多的筹码,大大降低了招聘的难度。
如何留住工程师
留住工程师跟招聘工程师一样也是组建技术团队不可或缺的一环,同时也是最容易被忽视的一环。
工程师为什么选择离职呢?三年来,我面试了数百位工程师,排除公司倒闭裁员的情况,不外乎以下几个原因:
1.成长:工程师个人的成长遇到瓶颈。
2.存在感:感受不到自己的价值,觉得公司不重视自己。
3.待遇:和各种同学、朋友,甚至是新闻对比之后,觉得自己的待遇太低。
而我也遇到过一些出乎意料的离职:入职第二天告诉我离家太远不来了;入职一周后告诉我身体有大病必须回家养病;入职一段时间后告诉我有其他的offer了……
经历得多了,我便开始思考我们在这方面是不是应该更加重视,以及该怎么留住工程师。
首先情感维系是很重要的。试想,当你进入一个新环境是什么感受?应该是陌生而紧张的吧,而我们前期的关心可以让新人尽快找到归属感。新同学入职两周之内是建立情感联系的黄金时间,往往这段时间里他就能融入团队,找到自己的位置。对于创业公司来说,情感是保持团队关系稳定最重要的因素之一。
除此之外,帮助他们与公司一同成长也同样重要。创业公司人数不多,作为Leader我们有义务了解每个人的需求和特点,并且在自己的能力范围之内去帮助他们。比如鼓励他们做一次分享,鼓励他们做一次面试,鼓励他们参加一些行业会议,这些看似简单又普通的事情,对他们来讲可能有另外的感受。创业公司一般都在高速发展并且面临无数挑战,这时候可以适当的给他们一些压力,困难与挑战往往是工程师的兴奋剂。同时,解决问题后带来的满足与认同感更是会让人乐此不疲。
总结
闲扯了太多,浓缩成三句话:
1.组建团队之前先考虑实际需求与成本。
2.挑人的同时别忘了提升自己。
3.把工程师留下来比招聘更重要!
很多感悟和想法不是一句话就能概括的。在工程师团队组建这件事上,我也只是一个新手。