快狗打车(原 58 速运)是覆盖中国及东南亚的货运打车品牌,在业务的发展过程中,张凯也经历了从一线开发者晋升为司机端负责人的过程。
在这篇文章中,他将以自己的亲身经历,与大家分享技术领导者成长过程中的几大常见难题,以及一名合格的架构师应具备的素质。
从去年开始带团队,到目前作为司机端研发部的负责人,团队的规模由 4 人变成了 20 人,成长很多,也碰到了很多问题,想将自己这一年来的经验和教训和大家探讨一下。
究竟怎么做技术招聘?
首先,我想来谈谈技术人如何做招聘。带队碰到的头一件事就是招聘。招聘的主要任务就是招到合适的人,简单的说,看这个人的气味是否符合当前团队,是否符合公司的整体要求。
当然这些仅仅是技术招聘的基本要求,我们还要求基础扎实,精通某一方向等等。
作为招聘者,我们每天要处理的简历有上百封,如何在完成工作的同时,提高自己的效率?我的经验有以下几点:
提高简历的筛选效率
每份简历都不一样,如何高效筛选?我的做法是筛选关键字,看简历里是否有我们需要岗位的关键字。
每个职位需求里都有对应岗位的要求,我们要大概浏览一遍简历,符合关键字要求的再接着往下看。
我碰到很多技术求职者的简历里,项目写得很多,但技术点没有体现一个,这样的简历很快就会被筛掉。
技术是为业务服务的,所以简历里一定要体现你用什么技术解决了什么问题,最好还能体现相关的收益。
比如:使用多线程技术,解决了首页加载缓慢的问题,使首页的加载速度提升了 10 倍。技术人的简历,应该体现技术点。
提高约面的效率
每天从上百封简历里面,我们会筛选出几十封进行约面。全部约过来有可能面试官会忙不过来。
那么如何提高约面效率,使我们的到面效率也能提高呢?我的做法是对筛选出来的简历,进行一轮约 10 分钟左右的电话面试。
当然,电话面试的题目一定是封闭的题目,答得对就过。电话面试可以快速过滤不符合要求的应聘者。
不要为了招聘进度而放弃筛选标准
金三银四,找工作的人很多,我们对人才的需求也很大。HR 小姐姐有招聘指标,技术的 Leader 们同样期待能够快速完成招聘。
每天从早到晚的面试很痛苦。所以,我们能不能稍微的放一下水,尽快完成招聘?
答案是不能——暂时放水很轻松,但是如果未来候选人入职后不符合要求,或者与预期的发展不一致,重新招聘会给团队和公司带来不必要的损失,也会给求职者带来麻烦。宁可空缺,也不能放低要求。
如何持续提升团队的执行力?
接下来,人找齐了,怎么能让我们的团队更快更好地服务于业务,持续提升团队的执行力?这里我总结一些快狗打车的实战经验。
小师傅制度
技术新员工入职后,我们会有小师傅带领,前两个星期熟悉公司的框架及技术栈,做一个简单的 Demo 出来。
然后由小师傅带领,从改 Bug 开始,逐步介入到项目中去。小师傅制度的好处是不仅能帮新员工解决技术问题,还能帮他们更快速地融入团队。
负责人制度
我们实行项目负责人制度,每个项目都安排一个项目负责人。人人都有机会成为项目负责人,项目负责人决定参与项目的相关人员,为项目质量及结果负责。这一制度使大家都有了主人翁意识、危机感及荣誉感。
我们还实行模块负责人制度,每人对自己的模块质量负责,对模块质量好的负责人进行奖励,模块质量不好的,要做总结、提出改进计划,并定期检查执行情况。
强调执行力
我们要求每件事都要有人跟进,必有跟进结果并及时反馈。如果暂时没有结果,及时反馈进度并给出预计的时间,然后持续跟进。
技术路线 or 管理路线,怎么选?
团队搭建好了,小伙伴们也越来越给力,很多的业务需求并不需要自己参与。每天的会议很多,还会有很大的精力放在相关的协调工作上。
所以,一个技术人很常见的问题就来了:我是坚持走技术路线呢,还是走管理岗位?
这个问题其实并没有标准答案。每个人的喜好不同,对自己的规划也不同。但我觉得不论走技术路线还是管理路线,首先技术能力是不可或缺的。
技术人,如果自己的技术都不过关,很难领导好一个团队。最基础的,面临一个技术问题的排期,如果你技术不过关,恐怕也很难保证收到的排期是合理的、符合预期的。
其次是带队能力。技术专家并不只关注技术。技术是为业务服务的,一味地讲技术深度,做出来的东西有时候并不符合业务的需要。
所以,技术专家的存在,一是带领大家对技术做攻关,二是确保业务需求的架构设计更合理。
当然,管理方向和技术方向对个人的要求还是有区别的。管理方向更多的是带领团队完成某件事,利用好人;例如按照公司的战略方向,制定团队的作战方法。
技术专家则更多关注的是技术如何更好地服务业务,利用自身的技术能力,赋能业务、赋能团队。所以一定要根据自身的实际情况及个人规划,选择自己未来要走的路。
合格的架构师该有怎样的素质?
那么,如果选择了技术路线,一名合格的架构师到底应该具备怎样的素质呢?
首先,一名合格的架构师一定是懂业务的。
没有业务,架构也就无从谈起。合理的架构也一定是随着业务的发展逐步进化的。
大部分初创公司人员简单,业务简单且变化较快,这个时候,单体应用比较合适。因为单体应用有更高的开发效率,能够快速试错。
但业务量上涨之后,公司的规模一般也会变大,人员增多,组织部门开始划分。
这时就要开始服务化,降低系统间的耦合,职责更加清晰,每个部门对自己所负责的服务负责。
随着业务量的持续上涨,就要进行更细的划分,这时可能就要使用微服务。微服务越来越多,就要去解决服务治理,服务发现等一系列问题。所以说,好的架构师一定是为业务设计架构。
快狗打车业务初期架构图
快狗打车速运通小程序架构图
其次,一名合格的架构师要有一定的技术前瞻性。
架构师一定要站在业务和技术的更前端,考虑业务的发展对架构的影响,以最小的变动,支撑业务的发展。
拿快狗的订单服务来说,早期,单体应用没有订单服务,整个业务都是一个大的数据库。
当业务量上来后,有了订单服务,订单表从大库拆分,仅仅进行了拆表操作,没有进行拆库,导致后期订单库成为了业务瓶颈,再次进行拆库耗费了很多的人力物力。
如果主导这次拆分的是一个合格的架构师,应该从一开始就要考虑到目前的技术选型是否符合业务的长期发展需求,选择一个更加合适的架构。
再次,一名合格的架构师要有良好的沟通协作能力。
好的架构师能将自己的设计通俗易懂的讲给低级别的小伙伴,不仅要做到传道还要授业解惑。
同时,在日常工作中,能够将自己的选型及设计清楚地传达下去,合理分工,还能交代清楚为什么这样做,这样做的好处是什么。
让每个人都清楚自己的职责,更好地完成工作内容。好的架构师能够关注业务重点,及时解决小伙伴们碰到的技术问题,给予支持,帮助整个团队一起提升。
最后,一名合格的架构师要有持续学习的心态。
新的技术层出不穷,持续不断地学习是技术人必备的通用素质,但架构师尤甚。
新的技术能否帮助业务发展,我们现有的技术体系是否有需要借鉴的地方,都是架构师要持续学习的。
除了技术,业务方向也是架构师需要学习的点,架构师要有广阔的视野,才能在后续的业务中有好的架构设计。
成为管理者后如何持续学习?
成为技术 Leader 之后,每天需要花费大量时间来进行团队管理、协调、会议等,如何能够保证持续不断的学习?
首先,我认为学习分为业务学习和技术学习。
业务学习是跟随着业务发展,逐步增加自己的业务理解程度,同时要通过总结、归纳沉淀为自己掌握的知识。
技术学习又可以分两种:
- 业务用得到的技术:可以通过工作持续地学习加深,是必须要 100% 掌握的;
- 业务用不到的技术:可通过平常的空闲时间大概浏览一下,知道是什么、解决什么问题即可,等到用的时候再来详细了解。
其次,学习是一个持续的过程,一定要合理规划好时间。比如我早上从家到公司需要一个小时的地铁,这一个小时就可以被利用来看书。
还可以给自己定一个目标,多长时间学习一个东西,给点压力逼迫自己去坚持。久而久之,养成良好的习惯之后,学习就是自然而然的事了。
以上是我这一年来的经验和教训,希望能对你有所帮助。每个人的职业发展道路都不一样,希望大家能够提前规划好自己的人生道路,坚定地走下去。
同时,尽可能提高自己的视野,更加严格地要求自己,相信不久的将来,你也会成为一名优秀的架构师。
张凯,现任快狗打车司机端负责人,Java 专家,多年一线开发经验。2017 年带领团队完成了速运通等多个重点项目的开发工作,并作为演讲嘉宾参与了 Gdevops,top100 等多个技术大会。