技术管理

LV.1 技术管理入门

技术管理者要不要一直精通技术?

这里面的“精通”是一个词,也是两个词。

  • 精就是说,你事无巨细,很多的事情你会在第一时间知道它所有的细节;
  • 通的意思就是你可能从一个比较高的层次,知道它的脉络,知道它的来龙去脉,但是你不一定非要知道很多的细节。

随着你从技术人往管理人方向转的时候,在通的方面,你可能会有一些提升,因为你不是一个人去做,而是同时带领着一个小的团队去做,或者甚至是中等、大团队。这样你接触的东西更多,你会把更多的点连通到一起,所以从通的方面来说,你可能会有一定的精进。

但是从精这个方面,因为毕竟人的能力、精力和时间是有限的。当你把很大一部分的时间放在管理上,你就没有那么多时间自己去写代码,去针对一点点细节去啃。所以,在精这一方面,你肯定是会有所折中及退化的。

因此,精通还是会精通,但是可能会随着从技术转管理的过渡,精会降低,通会提高。

额外补充:工程师的工作量会类似于一个小山坡这样的梯度。

  • 初始阶段,有很多设计、产品之间的多分迭代过程,在这个过程中,很多时候没有太多的代码及技术可做,因为很多东西还未敲定。
  • 在最后敲定阶段,你就会进入一个开发高峰期,就是你有大量的代码要写。
  • 写完了到后期,开始慢慢的一点一点的,应该叫Run out,一点一点开始做测试的时候,你的代码量又开始降低。

对每一位程序员或者工程师来说,你在某一段时间有更多的工作,某一段时间会轻松一点。每个人可以根据自己的节奏调整。

一个人从单打独斗到带领小团队,甚至更大团队,如何转变?

对于做技术的人来说,做技术比做管理的时间要长得多,那对我来说,单打独斗的时候反而是完全由着自己的心去做一些特别喜欢,所有的事情
都在你自己的控制之中。等你转到管理,带两到三个人的时候,这个过程也是非常好的。因为很多时候你可以去帮助别人,大家一起把这件事情
做完。

但是其中会遇到一个比较难过的坎,很多时候还是什么东西都想着自己亲手去做,比如说我带那两三个人里面,如果他是个新人,或者说他在某一方面的技术对他来说还是比较新的话,我会忍不住,想冲上去自己把这件事情做了算了。因为你教别人把这件事情做到你满意的程度,可能要三天,但你自己动手,可能只要三个小时。

所以,在最初转管理的时候,很多时候,你就不想花那个时间,你就非常抑制不住冲动要冲上去自己做。但是,一个人的时间和精力有限,不可能有时间自己全做了,而且到了一定的程度,你就不可能做更大、更多的事。

对你周围的人来说,自己冲上去做,对他们的帮助和成长是比较小的。

从三、四人团队到十几人团队

这就又面临一个完全不同的挑战。虽然在带领三、四人的时候,你可能已经学会放权,把事情分配给这三、四个人做。但等有这么多人的时候,你不可能事无巨细,每件事都自己去管,所以,另外一个挑战就是,要带一些能成为你左右手的小伙伴,让他们去承担一部分事情,就COPY 你之前带领三、四人那样。这样操作,你还是能保持之前带着三、四人的状态。

最好的管理,是一个人带三到六个人,超过这个人数,很难说真的能花很多的时间在团队上。

要带一个不算大也不算小的团队,这时候你可能是技术最精通的,很多人遇到问题都会来找你,这时候你会成为团队发展的瓶颈。去放权,慢慢把自己很多东西输出给团队,帮助团队成长。你的团队成长了,整个公司也好,个人也会更好,才能做更大的事情,这是一个良性的正向循环。

当你到研发总监,或者技术总监这个层次,可能会更多的偏向这种产品和业务,要去研究怎么通过技术更好得促进产品和业务的发展,这样你的精力就不会是在精通技术上。还有更胜者,在规划产品、做业务,就是看怎么能够让公司的产品成长的更好。

技术转管理碰到的坑

  1. 一个就是当你带到的人比较少的时候,你要学会放权,怎么样让别人跟你一起做,而不是说你比别人做得快,你就帮他做了,甚至哪怕你比
    别人快个几倍。

  2. 当你开始带大团队的时候,如果你不开始 培养一些得力助手,帮着你去带人,你会变得非常的累。

  3. 对一个人的评判经常会变成静态的,就是说你觉得这个人这一方面的能力不行,或者在那个方面有欠缺,就会导致你在下一次分配工作的时候,你会比较、担忧,把这些工作分给他是否能做好?每个人都是在成长的,就是说你不要用一个固定的眼光去看待别人。一方面,每个人都是需要犯错空间的,哪怕他上次犯了这样一个错,导致这件事情没有做好,如果你给他足够的帮助,下一次他还是有可能能做成,甚至做的更好。

一本书叫《特鲁夫给经理人的第一节课》,里面有说到,其实不管是大公司还是小公司,一个工程师、技术人、产品人,做不好事情只有两个原因,一是他不会做,二是他没有动力不想做。

作为管理人,一方面,就需要你给与他一个机会或者带着他做,教会他这样的本领,可能现在他不会,下次就会了。如果他是因为不想做,或者没有激情做,那作为管理者,则需要激励他,让他更有动力把事情做成做好。完成这个是需要两个方面努力的,一是你要有动态的眼光,二是你要去做一些支持和帮助,帮助员工成功,往成长的方向去引导。

  1. 我是一个技术 Leader,我也愿意授权,事实上我也授权了,但最后发现团队并没有把事情做好。安姐是怎么看?或者怎么去处理?
  • 如果你交给别人,别人没有做好,可能是他不会做,可能是他没有这个动力去做,你是不是在授权之前就确保这两个问题都已经解决掉了?

  • 有没有给他激励机制、奖励?惩罚,我们很少用。

  • 是否有一些外在不可控因素,进度受到阻碍。

首先作为放权的人,自己要去反思,到底是哪个方面让这个人没有达到预期目标。你放权之后,要给到他所有的支持,这个支持就包括他遇到这些他不可控因素的时候,你是不是可以帮他去排除这些障碍。

从另外一个角度,在放权的过程,不是说这事我交给你了,我就不管了,而是说因人而异,因事而异。你要清楚他的背景是什么,能力怎样,
可能欠缺什么,你要给他哪些帮助,需要制订一个计划,然后一个星期或者两个星期去跟进,看看他是不是按照你的进度在进行。

因事而异,这件事情是不是有给他犯错的空间,可能有的任务非常关键,是绝对不允许出错的,这个时候你更需要自己手把手去带,更紧密稿频次跟进。因人而异,因事而异,外加紧密跟进。

放权,不代表就不管不问了。

我还想补充一点,你要跟对方有一个双向的、非常开放的交流,不仅是你从上往下地下达你想要的意愿,你想要的结果,同时,你也要鼓励他,在他遇到问题、有任何的想法,甚至是置疑你这个方向对不对的时候,给他空间和机会去表达他的想法。

双向交流,可极大程度地降低犯错成本。

技术管理者应该具备什么样的素质?

  1. 硬性

硬性素质,就是大家经常技术功底要扎实,这样才能帮助团队做出比较正确的选择,或者在他们有困难的时候,你能够第一时间了解所有的情况,做出正确的判断。

  1. 软性

要有较强的沟通能力,要有高一点的情商。

作为技术人员更重要的素质,第一个是责任心,因为管理,尤其是技术管理的时候,你管理的不仅是技术,还有做技术的这些小伙伴。责任心就显得很重要:

  • 一是要把事做好
  • 二是要把人带好。

技术人更擅长把事情做好,但把人带好,不是你自己成长,项目做好就够了,更要关注别人的成长。这些都基于你有一份责任心。

第二就是开放的心态。不要觉得什么事情你都懂,懂的最多。很多时候人都会犯错,尤其是在你自己都不能意识到的地方。因为你的性格、背景、认知会有一些偏见,不一定什么时候你都是对的。那保持一个开放的心态,去倾听别人的意见,愿意接受自己就是随时都有可能犯错的情况。这也是一个很重要的事情。

作为一个技术人,如果一个程序写错了,或者说是一件事情做错了,那还是有挽回的余地。但提建议或者指出错误,方法不得到的话,可能对别人就是一个永恒的伤害。因为,你在处理的不是一个技术,不是一个能改的Bug,而是人。作为管理者,要有这样一颗心,愿意去给对方最好的支持,然后倾听,帮助对方。