从程序员通宵帮产品开发求婚APP说起,聊聊技术管理的那些事儿
Posted InfoQ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从程序员通宵帮产品开发求婚APP说起,聊聊技术管理的那些事儿相关的知识,希望对你有一定的参考价值。
作者丨黄闻欣
我会从以下几个方面来分享今天的内容,第一点是管理的难题,就是 996.icu 这个话题,后面所说的内容,仅代表我的个人观点。第二点是一个很热门的话题,如何防止团队核心成员离开。这两件事情有一个内在的联系,那就是价值,一个是工作的价值,另一个是管理者的价值。作为管理者,你没有核心价值和核心竞争力,人家去到别的地方都一样,那他为什么不“叛逃”呢?
先说 996.icu,举个我人生经历中印象非常深刻的例子:有个产品经理要求婚,大晚上去央求一个开发,帮他开发一个求婚的 APP。开发哥平时答应需求的时候很不爽快,但答应这个超爽快,并且通宵帮他开发,这时开发不说 996.icu 的原因是什么?因为开发哥对“求婚“的价值和愿景特别认可,他愿意花业余时间帮产品经理去开发一个求婚的 APP。
“求婚 APP”让我开始思考,其实加班有两种类型,第一种类型是被动加班,包括过载的工作、能力不符等。我不知道在座的各位认为自己在岗位上的能力是否很符合?其实很多时候不是这样的,以我为例,虽然我是 T4 专家,但我这个专家是做移动端上的,切到云上后我的能力是不符的,我要花更多时间去学习,这时我会有压力,这其实是痛苦的。另外就是鲢鱼效应,大家可能觉得腾讯喜欢赛马,鲢鱼效应也是一件让人压力非常大的事情,像吃鸡游戏团队,真的很拼。第二种类型的加班,就像刚才开发求婚 APP 的加班,是内心认可愿景和目标的加班,这种加班是不会累的,下班时沿途的风景,我们都会觉得特别漂亮,会欣赏一下月色,说不定还会吟首诗。
基于此,我就思考一个问题,现在我切到云之后,我的价值是什么?这个价值需要让我能够回答,为什么我要承担那么多能力不符的压力?我要找到一个心之所安、安身立命的地方,那个地方是什么?
我们先讨论自己,作为管理者是不是认可愿景这个东西?那当时我们在做一个腾讯云上面的移动服务,核心开发就只有三个人,兼职也只有三个人,接了腾讯内部 40 多个业务,我想要带着这个业务上到腾讯云,因为我现在是 CSIGer,不可能做一些跟我们完全没有关系的事情,那我们要去做这件事情也包括把它做 2B 业务、去见客户、各种私有云的东西等等。为什么我要去做这件事情?为什么团队要去做这件事情?这时,我要有个说服自己的理由。
就像腾讯对外说的两张网,产业互联网和消费互联网。可能很多人觉得这个东西很虚,跟自己没什么关系,但当时我的第一感受就是这个东西靠谱。下面我来说说多靠谱,我算是一个比较乐意分享的人,从 QCon 早期一直到现在,我都是讲师、出品人,在我心目中,分享和让别人幸福是有价值的事情。腾讯有一个好东西是很广阔的产品链,各种各样的产品有一个东西去沉淀其产品输出的经验,这个东西就是我们的 APM。在 QAPM、在腾讯云上面,去沉淀、积累它,让外面的客户可以感受到我们的经验,但其他 APM 平台也有,你存在的价值是什么?就有个很重要的问题,就是沉淀的方式,除了监控、定位、度量这三者之外,对于腾讯来说最珍贵的是“解决问题的经验“。我们能不能通过这个平台,很好地跟我们的问题关联起来,贡献给广大的产业物联网的人呢?这是我当时真心去想的,也是我们老板一直说的 C to B,我们怎么样把 C 端的消费互联网的经验共享给 B 端?这一点我特别认可,事实上我也这么去做。
图 1 为什么要做 QAPM
回到愿景,我自己的愿景已经建立起来,但团队的愿景还没建立起来。这时候我就要帮助我的团队去建立愿景。我做了一件很重要的事情,分几个步骤,我们把大家的愿景收集起来后,找了个咖啡厅讨论,最后得到三个愿景,相互 PK,讨论为什么觉得这三个愿景最认可?为什么它对社会有价值?为什么可以让自己兴奋?最后我们选出来一个愿景。这个事情其实有一定的难度,开发包括我自己是比较闷骚的,怎么鼓励他们讲呢?在这之前我们做了另外一件事情,叫做开始、结束、继续,就是给他们每人一张纸,他们去填那张纸,然后去说、去表达,其实开发吐槽能力还是很强的,只要这个事情是吐槽别人的,他们会不遗余力的去做这件事情,这个事情热身之后再去讨论愿景就会好一点。
讨论愿景这个事情,听起来很水,但很重要。我不说这件事情怎么讨论,有一点必须要跟大家说的是我们愿意花多少时间做这件事情。当时看一本关于成吉思汗如何征服世界的书,里面有一个片段我特别深刻,1211 年春,成吉思汗决定打黄金可汉,要下这个决定,就发起了全员讨论,全员包括是什么人?从贵族到一线的军人、老百姓。军队第一职责服从命令,成吉思汗为什么要跟军队讨论要不要打?他们懂这场战斗的价值吗?成吉思汗不光跟他们讨论,而且还讨论了很久,讨论的内容是为什么要打女真族?有什么好处?有什么坏处?看过这个例子,在座的各个互联网公司的,你们为什么不讨论愿景?为什么不花时间做这件事情?
图 2 利用 Processon 的愿景大讨论
愿景讨论出来了,下一步就是要落地。这里 OKR 是不错的落地方式,OKR 本身有个更前置的事情就是愿景,从使命到愿景,愿景到战略,战略最后再到目标,目标再到关键成果,目标关键成果就是 OKR 的部分。但如果你没有愿景,你怎么能期待一线开发能够评估出合适合理的 KR 和 O 呢?因此愿景一定要先讨论出来,这是它落地的第一步。刚才有位同学在问,除了钱之外有没有别的激励方式?说句实在话,愿景也是一种激励,落地的过程中,你可以用 OKR 去做尽量多的目标同步,但还有一件很重要的事情,给了机会达成了目标之后,你要有对应的奖赏。关于奖赏机制,现在比较流行的两个概念,一个叫阿米巴,另一个叫中台战略。中台战略除了技术上的中台建设之外,更重要的一点就是它提供一种中台的结算体制,让一个提供中台技术、提供数据库、提供大数据服务的人,他的愿景和 OKR 实施之后,都能有对应的价值回馈,这非常重要,有些人觉得中台战略就是沉淀数据库等 PaaS,SaaS 的技术与服务,这只对了一半。哪怕不提出中台战略,任何一个技术团队,稍微有点认知,都知道这个事情。太天然了,因为作为一名成熟的、有技术追求的研发工程师,沉淀一个东西,提升自己的效率,这是很天然的事情,不需要有任何的激励。但是有个很重要的问题,就是他沉淀完之后,你有没有对应的反馈给到他?有没有持续滋养的环境?这不是一个“临时奖励”就可以解决的。本来我这个库或是服务是三、四个人用的,现在全公司在用,我需要投入人力成本,需要加班加点去服务各个业务团队,我有一个愿景就是服务大家,但是没有对应的利益去回馈到对应的人。这是这件事情落地的一个非常重要的要素,就是对应的利益究竟是什么。
图 3 如何落地?OKR、阿米巴、中台战略
下面说 WHY。很多老板、上级包括我自己,最开始多说的是 What 跟 How,很少说 WHY,大家心里面有一个门槛过不去,什么槛?说了他们不懂。想想成吉思汗那个例子,会存在这个问题吗?连一线的军人都能懂,都能讨论问题,更何况我们是互联网企业,公司和团队里面的每一个人都是脑力劳动者,为什么这个事情他们会不懂呢?关键是你要花时间去说,这就是第一个部分,996.icu,愿景这个问题解决了,我相信大家在加班的过程中心里会更加舒适。
第二点,核心成员“叛逃”团队,这是一件很常见的事情,我们要反省一点,作为管理者,你提供了什么核心价值?作为“门槛“,你有什么核心价值?有什么壁垒让这个员工在你这里干很好,在外面就差点儿?你有什么能力可以做到这一点?打个比喻,把开发哥比喻成鱼,把技术管理者比喻成鱼缸维护者,因为一个鱼缸里面的水可能不干净,那就对应到我们需要坦诚沟通的环境。第二个,鱼缸里面有很多鱼,它们之间是怎么相处的,这就比喻成我们要打造出色的工作环境。
我们先说第一点,为什么要坦诚沟通?每一个老板都很喜欢对员工说,我很坦诚。但事实上结果就是大家”欺上瞒下“,该说什么不说什么。这会引发猜测,猜测是一个非常严重的问题,就是一线员工猜测组长、组长猜测总监、总监猜测大老板、老板猜测客户,一路猜上去,最终效率非常低下,压力也非常大。还有就是冲突,刚才有说到一些冲突管理,不要正面冲突。我觉得有一定的冲突是好事,我不太愿意在他们产生冲突的时候介入太多,但要求他们尽可能对事不对人。不知道大家有没有见过这样的场景,可能我跟文杰在聊一个事,假如说我们两个都是公司的高管,我觉得 A 事情很重要,一定要去做,然后文杰说 B 事情很重要,我们俩意见不一致,大家就开始和谐,怎么和谐?文杰就说,你这个 A 事情也挺值得做,我就说 B 事情也很值得做,要不 AB 一起做,那下面的团队是不是累死了?OKR 是一个很重要的价值,因为 OKR 是需要主管与主管之间,上级与上级之间,去同步他们的目标,尽可能的聚焦,而不是分散。伪和谐的环境会导致目标本身不聚焦,而且无法解决问题,一定要让大家去正面冲突,而不是去避免它。
另外,坦诚的沟通环境会减少决策错误。作为技术总监,我已经跟最底层的技术和一线的决策有一定的距离了,有一句话很有名,说听到炮火的是前线的士兵,这也是 OKR 的价值,让不同层级的人发挥更多主观能动性?就是因为他们是真正听到炮火的士兵。对于减少错误这件事情,他要很坦诚地告诉我,我的思考究竟错在哪里,原因是什么,但如果没有这个环境,大家会不愿意说的。举个反面的例子,我最早期有一个挺得力的员工,算是左膀右臂,但当时他居然说我威胁他,要转岗,我就觉得很冤。后面我才知道,让他感到威胁的场景是什么。当时有安卓内存和 ios 内存两块,他是安卓内存的专家,修复了很多种内存的问题,我说那 IOS 你也做一下,对你的职业成长是有好处的。他不愿意,我就说:“你都已经 T3-2 了,这都不愿意?”这句话一出,他就感觉我威胁他了。我当时说那句话真的很自然,但我说这个话确实有问题,怎么办?还是要坦诚沟通。在我说出那句话的时候,我们之间的信任关系已经被破掉了,当时可能我真的要好好说一下为什么要做这件事情,以及我内心的感受。坦诚有很多个层面,有坦诚观点,坦诚认知,还有坦诚感受。我觉得产品上,这个问题应该很严重。我看到外网用户有很多投诉,我现在觉得很慌,这个事情如果一旦出来了是很麻烦的,会影响很多用户,影响到我们完成 KPI 的情况,但我找遍了整个团队,合适的人就只有他,包括我说他是 T3-2,应该承担起这个责任,这句话背后的潜台词是我真的依赖他,依靠他去完成这件事情,我并没有把这个观点表达出来,这也是坦诚的一个部分。
接下来说如何打造坦诚的沟通环境。很多时候,不坦诚有一个很核心的原因,就是大家的利益有冲突,就像销售部门,A 找的客户跟 B 找的客户很有可能是重合的,大家是一个市场,在利益有冲突的时候是不可能坦诚的。作为老板,我们要梳理清楚这些人之间的利益关系,我有一些技巧可以让大家参考一下。
第一点,当你面对下属的挑战时,你的态度非常重要,这个态度不应该是你演出来的,我们有一些好好说话的套路、三明治套路等,自古套路得人心,这里多想想套路的背后的原因是什么?想想下面的三点,1. 不论意见有价值与否,他勇敢坦诚地跟你说了;2. 他在一线听到了你听不到的炮火;3. 倘若除了挑战,还能提出建议,那是否意味着他还想着帮你?最后,要感谢、赞赏、反驳,都应该跟随自己的内心,真诚地表达。
第二点,开始、结束、继续这件事很重要,我在每次 KPI 考核完之后,One-One 面谈时都会问这个问题,我有什么应该开始去做,我有什么应该要继续去做,我有什么应该停止去做,让他们说出来,这也是坦诚沟通的部分,途中是我们的记录表,你会发现开始几次有些内容比较水,但我觉得这是需要实践的,后面几次大家会更坦诚,说的内容更实在。
第三点,鼓励开发基于事实之间的辩论,我收到一个不错的表扬,就是前一阵子别的团队说,你这个团队每一次技术讨论都好激烈,我们团队已经有好久没有讨论过技术问题了。我觉得这点很好,技术人员之间总有个是非对错的观念,不鄙视一下别人的代码我都觉得这个技术人员是有问题的。鼓励开发之间的争论是 OK 的,以前在微软我看过一个争论,常量是放等号左边还是右边都争论了一大篇邮件,开发人员就喜欢这样子,我自己也喜欢争。
还有一点,拒绝叫黄总、乐爷,这个称呼以前我不太在意,因为我觉得可能也就是亲密一下,但后面我觉得有问题,问题在哪里?实习生跟毕业生进来,他第一时间听到别人叫我黄总,他的第一反应是什么?他的心理感受是什么?所以这个事情是要改变的,自从我认知到这个问题开始,基本每次开会,一旦叫我黄总,我就说不要叫我这个,叫我英文名就好,以前可能我叫上级也会叫什么老板,现在我都直接叫英文名,从自己做起。我相信在座的各位都觉得这个规则可能有点扯,不就是喊个名字吗,叫黄总、谢总、李总有什么关系呢?但真的有关系,它会妨碍你这个团队更坦诚地去沟通。
《奈飞文化手册》里面说了一个很重要的问题,如果一个你招进来的员工,每天有咖啡、零食、健身器材,他就觉得这家公司很好,那我觉得这个员工不够好。因为一个真正的技术开发者追求的不是你带我出去团建,给我一堆吃的喝的,我追求的是和出色的人一起工作,团建是很重要,但是更重要的是让他们跟出色的人一起打造、一起工作,这是一件让团队有凝聚力的事情。
基于这件事情,有三个步骤,第一,思考未来团队的样子,我们有了愿景和战略,第一时间想到的就是如何分解你的愿景和战略,变成你的业务目标和行动,就是 OKR 部分,但是很少人考虑到你的团队应该长成什么样子,你的愿景描述得很清楚,但三年之后,坐在那些工位上完成你愿景的人究竟长成了什么样子?他们的技能应该在什么水平?我之前完全没有想过,直到有一天认识这个事情的时候,我看了一下我的团队成员,看来要调整一下。
团队建设主要有两个部分,一个部分是招聘,还有一个部分是培养。我们团队从移动端到云计算,这个跨度多恐怖,怎么办?我就要思考,我的团队应该长成什么样子,在以前端上面,我有一个事后的构思,按照不同的交互性能、稳定性,去构思整个团队的构建,旁边是工程效率,要有几个人,CPU 内存、磁盘网络、电量可能各有一个人,去深挖里面的优化、监控、定位手段等等,到了腾讯云怎么办?
图 4 腾讯云的专项团队构成
对于以前来说,可能需要我们的专项深度,需要我们在测试这个工作上面的效能提升,但在云这个上面,多了一件上下贯穿的事情。因为云有一个很坑的地方,我们以前应用开发在 SaaS 那层工作,你只需要稍微了解一点 PaaS 层就可以做了,所有才会有全栈,因为事实上栈并不深,很容易可以做到全栈。但现在不一样,现在有 IaaS,有 PaaS,有 SaaS,我要有专项深度,还要有业务测试,还有本身整个效能的提升,除此之外,我还要上下贯穿,我要了解我的客户需要什么,客户需要的东西怎么通过 PaaS、SaaS、IaaS 拆解下去,这个很有难度。那我们就看一下,我的团队会怎么构建?事实上,因为我们都是转型过来的,有一部分东西可以转型,比如 SaaS 层,我们自己做平台和工具,我们自己做专项测评、专项优化,我们很了解 SaaS 层的服务应该是什么样子的,工程效率有很多共同的点,转型没有问题。
有些事情不能转型,我会从运营、后台开发去招 PaaS 层的人,IaaS 没办法,内部很难培养,虽然我们也有一些人强制转型了,他们确实对这个有兴趣,而且基础还不错。但对于 IaaS 层,一般国外都需要 10 年、20 年的工程师,就这种专业的 Linux 内核优化工程师,他才可以去接。我们转型也很痛苦,那招聘就非常重要,要去招 Linux 优化的工程师和 X86 的工程师,它是上下贯穿的。也要招对应的人,这个人按照现在初步的构思应该是从 IaaS 层那边出,内核优化工程师,给他们个目标,让他们转型会比较好。
图 5 转战腾讯云
那怎么招呢?这是个问题了,第一社招,其次校招,我从来不抛橄榄枝,我都是先抛难题,一个有技术追求的程序员,他对技术难题应该是有热忱,面对技术难题,他第一时间要有兴趣,要去解。我们在腾讯的笔试之外,还会根据我们业务内部遇到的问题,发邮件给实习生和校招的毕业生,让他们去做,想做就做,不想做拉倒,想去做的人有一点很宝贵的品质,就是他对解决问题是有冲劲的,这非常重要。
图 6 如何招聘
再下一点,要培养出色的人有三个关键点:新员工入职、Coaching、充分授权。新员工入职时,我会给他们发这样的一封邮件,跟我以往做事情的方式一样,我会说清楚为什么,为什么要看金字塔原理?为什么要看高效人士?为什么要看奈菲文化手册?我们现在做事情的方式就是这个样子,你要了解我们团队做事情的方式以及我们的文化,请你看这本书,这很重要。还有《don’t make me think》,对于我们一线的开发人员,他们要稍微了解一些产品的常识,这样可以提升我们整个团队的效率,这是新人加入的部分。
图 7 新人文化建设
还有一个部分叫做“五个为什么”,这是我遇到的一个很经典的案例。当年我们有一个开发同学,开发了测试工具 Monkey,在业内还小有点名气,但是他有一天被打击了,因为产品跑完 Monkey 测试之后发出去,一下子就出现了一个 top crash,然后项目经理就过来 PK 他,这个工具不是很厉害吗,说的这么厉害,为什么没发现?他很沮丧地过来跟我说,可能我们工具有问题。
我的第一反应是什么?不要先跟我讨论这个事情,为什么会 Crash?我去调查一下,查了堆栈,然后发现是某一个全局变量置空了,这个时候是不是就完成了?不是,还问他,为什么之前没有发现?这看起来是有点强人所难了,不过我觉得你这个工具还很牛的,不会发现不了这种问题,然后让他去再查一下,查了 SVN 记录,就发现很多地方都调这个被置空的全局变量,开发只是修复了其中一个,解一个出一个,我当时查了一下 SVN 记录,解了三次,出了三次 Crash,我们的 Monkey 的工具都发现了,到了第四个调用全局变量的地方,大家认为 Bug 彻底解决了,对外发布了灰度版本,结果就早就了 TOP Crash。这样就结束了吗?还要再问,究竟是怎么引入的?继续查 SVN 记录,原来是因为开发解我们一个内存泄露的问题,反注册那个全局变量就可以了,结果开发手一抖还把那个全局变量置空,这个时候你找到这个问题的整个链条,然后就可以真正去看一下,有什么解决方案。
对于一线开发者来说,要锻炼他解决和思考问题的能力。推理有三种,溯因推理、归纳推理、演义推理,溯因推理应该是开发同学最强的,他们像一个侦探,在解 Bug 的时候,不断找线索,但事实上这是需要锻炼的。
图 8 五个为什么
另外,不用等待,随时 Coaching。很多时候,我们有一个观点想说或有一个行动想表达,我们会等明天开会的时候一起说,这样不合适。我的方式是这样子的,叫做拍手,随时 Coaching。我拍拍手,大家一起来看一下,有现场为什么不看?这个开发刚刚开发了一个 Crash 的问题,大家一起来欣赏一下;有内存泄露问题,他排查了一个小时,终于排查出来了,我们一起来欣赏一下,为什么要等到第二天会议,或者等他花个一两周总结归纳的时候再欣赏。除了案发现场这个东西,我们还做一件事情,就是短视频拍摄,可以加速和减少文件大小,然后放到我们自己知识的平台上,大家看着也舒服一点。
行动是在冰山外面的,还有一些东西也是可以随时随地分享的,比如为什么要做这件事情。比如我们之前讨论,为什么性能上 SDK 更好用?我想表达一个观点,叫做架构设计很重要,但是业务也要兼顾。但这之间怎么平衡?我们有个现场,当时那个开发告诉我,新老数据库的迁移要等到全部数据迁移了,才能用到这个新功能。然后我说不行,但是我又很担心,不是架构设计很重要吗?你这眼睛里揉不进沙子,为什么你能容忍这样的情况?我说这个案例很好,这是个现场,大家一起来听一下,就拿这个例子跟大家说,新老数据库的迁移怎么可以做到“架构设计“。
最后一点是感受,我们转到私有云,我们拍拍那个做私有云的伙计的肩膀,我说大家都是有家有口的,自从做了私有云之后,每周可能都要出去出差,家庭压力怎么办?我跟他讨论这个感受,一方面你自己的压力会降低,另一方面,团队对你的信任感也会提升起来。
图 9 随时 Coaching
坦诚的环境就像鱼缸里的水,优秀的伙伴就是小鱼,就算以上都做到,还是有团队成员会出走,我希望出走的原因不是因为不优秀、没有意义,仅仅是因为你想去别的赛道,我现在做测试、做性能,我想去做大数据、去做环保,那我就去到不同的道路了,但希望不能因为是上面那些原因。包括薪酬,两倍三倍被挖走这很 OK,但你告诉我 20%、30% 你就要被挖走,对于我来说是我的失败。
以上就是黄闻欣老师关于团队管理的分享,黄老师即将于 QCon 上海站担任工程效率专题的出品人,与 Shopee 平台高级专家彭哲夫、蚂蚁金服技术专家洪锋(琉克)等技术专家共同分享工程效率于不同的云计算服务层级的实践。此外 QCon 还有阿里巴巴合伙人蒋江伟(小邪)等技术大咖也将分享实践经验,大会 9 折报名最后五天,点击「阅读原文」查看大会完整日程。有任何问题欢迎联系票务小姐姐 Ring:17310043226(微信同号)。
点个在看少个 bug 以上是关于从程序员通宵帮产品开发求婚APP说起,聊聊技术管理的那些事儿的主要内容,如果未能解决你的问题,请参考以下文章 强制20天内开发APP后集体被裁,技术负责人怒用公司官微发文:祝“早日倒闭”...