给技术人上的管理课:平衡和集中

摘要:大中型团队管理是技术人转型的巨大挑战,这个阶段的管理工作,仍然可以归为技术范畴,依靠的大抵是管理人的筋肉力量。是否会管理,要看能否管好超出自己筋肉力量规模的团队。此中的关键,在于把握平衡和集中的艺术。

大中型团队管理是技术人转型的巨大挑战,因为对小规模的团队基本上能够做到每个人都认识和了解,工作如何细分和跟踪亦可以做到全面掌控。这个阶段的管理工作,仍然可以归为技术范畴,依靠的大抵是管理人的筋肉力量。而真正看一个人会不会管理,要看他能否管好超出自己筋肉力量规模的团队。只有你连下面有多少人都不知确数,连事情不知道由谁如何完成,也能达成自己设定的目标,这才是管理真正发挥了功效。此中的关键,在于把握平衡和集中的艺术。

志向与智慧的平衡

凡做管理之人,首先自己要有个主张,有个志愿。手下管两个人的,要有做立十人之功的雄心。手下管一百个人的,就足可有将整个行业改弦易辙的壮志。技术型的企业,大事情由小团队做出来的,数不胜数。以190亿美元天价出售的WhatsApp,其团队不过区区35人。再反观很多号称数千人的公司,却要仰仗关系和公关挣一点不那么干净的辛苦钱,还要成天压榨流动性很大的员工。考察其管理层,得出的最大问题就是他们没有志向,没有目标。看似整天在管这管那,但没有管到点子上。

这不是说管理人要盲目自信,好大喜功。管理人必须有志的同时,还要有智。这个智,是要比人远一步、深一层的洞见。例如,团队成员只觉得靠自己的力量,不可能完成需要短板技术的产品研发。此时,管理人就要能够看到从内部培养这块短板的机会,或是引入外援的可能;领导觉得根据以往的经验,完成某某任务需要一年,因而无法达到标书的要求,管理人就要能够看到,提高非关键模块的风险系数,即可以将研发时间减少20%;别人都在做PC软件,管理人就要看到做移动App才是下一拨热点;而在移动App如日中天之时,管理人就要看到移动安全市场并在技术和法务上重兵布局……

核心的问题在于资源,资源出了问题,再好的团队也不能成事。管理人要把握的第一个平衡,就是达成目标所需要的资源,和计划动用的资源的平衡。尤其要注意,资源不足不是资源问题的唯一表现形式。有太多的问题不是出在资源不足,而是出在资源过剩。资源一旦超过了达成目标所需要的程度,就要立刻调整目标。否则必然由于人性的贪婪和惰性,让团队的斗志被消磨,甚至发展成为争夺资源的内斗,给竞争对手造成可乘之机。真正好的团队,都是有适度的资源饥饿感,但又总能以奋斗的方式开源节流,充分享受资源到位的成就感。反过来,管理人则要想方设法,争取一定量的过剩资源,在团队面临过大压力时缓释,提高团队的韧性和耐力。

理性与激情的平衡

在本刊1月期《给技术人上的管理课:控制和计划》一文中说过,物理资源在一定条件下可以相互转化,但人心则不行。钱花得再多,都只能换取人的表面合作,但这远远不够作为团队的基础。况且人心变化莫测,今天是这样的心情,明天就可能完全不同了。而管理的效用即体现在此,它要使得人的意志朝向对目标有利的方向偏移。

团队的管理人,多数乃是在平日慢慢地由各个成员的意志交互造成的结果。这种意志力潜移默化的渗透压,超越年龄和职权,直达人的内心深处。一旦团队遇到任何问题,或需要做出影响全体的决定时,所有人的目光会不自觉地投向那几个人,这就是管理人无形却又无价的荣誉徽章。

取得这枚荣誉徽章的过程,是艰难的。这其中的奥秘,我们将在后续的文章中继续讲述。但一旦取得,管理人的意志对于团队的影响力是有近乎无限的放大系数的。这种影响力还会放大到这个团队之外,甚至超出管理人本人的专业和功绩的范围,让无数的陌生人对管理人本人产生信任和依赖的情感。

但管理人必须时时牢记,这种信任和依赖乃是借来的钱款,必须好好经营,给予信任和依赖者以足够的回报,不然会破产得很快。而这一点,恰恰是很多管理人的软肋。尤其是从技术人转型而来的,比较容易得意忘形,以为自己成了救世主,结果管理生涯只能是昙花一现。管理人是否优秀,不仅要看他能否拿到荣誉徽章,更要看他能否保持荣誉徽章。要做到这一点,管理人就要反思,能够赢得荣誉徽章的意志来源。一个人真能够做到面面俱到,不犯错误吗?这样的想法是最危险的。往往管理人会以激情为理由,来无视别人看似平庸实则合理的意志,并且在碰巧得志的情况下陷入恶性循环,最终重重地摔下来。

而对真正有为的管理人来说,意志的酝酿是需要时间的。他们绝不早早地宣布想法,而是花大量的时间来体会他人的意志,从中找出合理的部分和看似不合理之处。而对于那些看似不合理之处,他们也需要时间来试验,甚至反复地试验,找到它们不合理的根源所在。他们相信黑格尔说的那句绝大多数人都闻所未闻的话,那就是“合理方可存在”。尤其是技术工作中存在的刚性,更是让该领域的管理人不能不高度重视理性的最后检验作用。你说更改如此这般的配置,服务器就不会在20万并发下面失去响应吗?但如果服务器真的失去了响应,是否就反过来说明配置不该那样更改呢?其实可能与此无关,或是隐含了某些特定条件。服务器不会因为你有高昂的激情,就能够承担更高的并发了,而只能是满足了理性的条件才能实现这样的目标。因此,管理人意志中的激情绝不应该是盲目的激情,而只能是基于对理性工作的更深刻认识而达到了更高程度的的理性,这就是激情和理性应该达到的平衡状态。简单地说,管理人在表达激情时,如果给人的感觉是“说得倒是天花乱坠,但感觉不甚靠谱”,这就麻烦了;给人的正确感觉应该是“如此司空见惯之事,我为什么没有早点想到呢?”

平衡感的把握是一种平日的功夫,不妨称为管理人的修炼。平衡的要义是要使得资源保持合理的水平,并流向合理的去处。管理人要精于数字的计算,但更重要的则是培养估算和直觉。最要紧的不是做平均,而是估算合适的权值。必须能够看到别人看不到的投入放大路径,这样才能够发挥好团队的效益。这种能力,并非一朝一夕之功,而是经年累月反复试验才能获得的经验。而且技术行业的变化从来是不打招呼的,行业变了,管理思路不变,就要落后挨打。因此,管理人欲在技术行业里求生存,没有别的办法,只能艰苦地从实践中学习。哪怕一开始不懂也不要紧,平日里有的是时间去试错,或者说要从太多宿命般的错误中杀出一条正确的血路来,这不仅需要有快速的反应,还要有顽强的意志和不错的运气。

集中与责任

然而生活并不按照理想的方式来发生,突发事件和异常压力总会不期而至。平日的修炼,在关键的时刻就要经受考验。平衡的原则依然适用,但此时管理人必须以更主动的姿态介入,因为留来计算的时间窗口变得非常紧迫了。如果说平衡是以静制动,那么集中就是以动制动了。它的具体形式,就是管理人主要的决策计算依据的来源,从团队中的他人意志和中长期的试验数据,变成了历史事件经验和短期的试验数据。管理人的个人意志发挥的作用,在团队重要决定中的比例明显增加,这也是所谓集中的原始意义。

但他人意志和较长时间的试验数据,对于决策正确性的影响,永远是极其关键的。管理人一旦听不进别人的话,或是拍脑袋做决定,就几乎一定会犯错。因此,任何时候都不能取消这两个计算依据,只是说在资源不允许的条件下,不得已才要用历史事件经验来一定程度上替代他人意志,才要缩短试验的时长和频度。所以管理人绝对不能是急性子。哪怕火烧了眉毛,也要理性地用一点时间来收集尽可能多的外部信息,搞清楚火从哪里来,有哪几种可以逃生的选择,在逃生之前需要避免哪些低级错误,等等。

我们经常会在重大的产品上线之际,发现有几个始料未及的缺陷,而这时所有的高管和媒体的目光都集中在此。此刻,能否保持一颗冷静的心,弄清楚问题的来源,然后果断地给出下一步动作的指示和作出合理的解释,是非常考验人的。在众说纷纭中,要判断出关键的信息所在,极其需要管理水平,但其实倒也不难:关键在于要听取相关负责人等的意见,而不要道听途说。而在下一步动作的指示中,当以造成最小破坏者为准,这个度的把握却只可意会。比如,在Web产品新版本上线以后,发现部分用户无法登录。此时,究竟是上一个热修复,还是回滚到旧版本?这就需要首先找到与登录相关的前后端工程师,排查是哪一部分逻辑出了问题。如果时间并不允许,那就要判断回滚是否会带来更大的影响。比如,在数据库中加了一些字段,而大量用户已经往这些字段里填充了数据,回滚会造成用户的数据丢失。在这样的情况下,与其回滚可能就不如给那些一时不能登录的部分用户发邮件做解释,争取时间来除错更好些。

集中永远是特殊时期不得已而为之的办事方式,原因就在于它的风险太大,免不了团队要因为信息不足而犯错。管理人的个人意志,永远都要植根于团队里尽可能多的信息土壤中,才能持续地在正确的方向上成长。即使大方向不错,在执行时需要的细节信息也必须落实到位,才会看到团队在向目标靠近。绝对不会有哪个团队,仅凭管理人的个人意志就能领导的。管理,是个人才能和精力在团队维度上的延伸,但这一点从来都不是自然地发生的,而只能是反复的意志碰撞和融合,反复试验择优汰劣的结果,区别无非在于团队融合和试验结果改进的效率罢了。

正因为集中是冒大风险的事,所以管理人不能不挺身而出,承担与这风险相应的责任。大中型团队的管理人,不能免于经常面对集中决策的场合。这就需要在平日下更大的功夫来进行平衡感的自我训练,广开渠道,才能在关键时刻收集到尽可能多的必要信息和资源。而最高层的管理人,则需要有超强的生存能力,敢担任何生死存亡的责任。较之中层管理人,最高层的管理人就要想得更多更远:团队今天能活下去了,明天应该做些什么来活得更好?团队的资源不够了,要到哪里去融来新鲜的血液?团队内部出现了裂痕,应该因势利导地分拆,还是要强调表面上的和谐?管理人在平日能够多想想集中的场合,在需要集中的时候,就能够更从容些。正所谓居安思危,有备无患。掌握了足够多的信息,自然也就能避免管理时的好高骛远,或者妄自菲薄。

小结

在本文中,我们深入地考察了管理中的若干重要方面,以帮助管理人走向成熟,获得管理大中型团队的能力。管理人首先要有超出自己所掌握团队人数单兵作战之和的目标,才谈得上管理的效益,即发挥出团队的潜力,做到个人不能实现的事。管理人要想方设法为团队目标弄到足额甚至更多的资源,但同时也要及时地调整目标,使得团队保持一个健康的饥饿感。

管理人要在平日像信息海绵一样,吸取一切必要的信息,并将其转化为解决团队问题,引导团队决定的意志力。这种意志力会带给管理人以极大的魅力,将管理人个人意志的影响力延伸到管理人所不直接掌控的人和事。管理人要充满激情,积极地发现和尝试别人看不到、想不到的可能,然而要防止激情变成个人意志的膨胀,甚至以个人意志取代理性判断。

归根到底,平衡是成熟管理人需要掌握的核心技能,这项长期的自我训练,甚至要强化为管理人的本能。冷静思考,向正确的相关人等收集信息,这是管理人甚至在极端场合都要尽力而为的工作,同时又不能因此而规避承担相应风险的责任。在不得已时,可以部分地采用历史经验的信息,或只做较短较少的试验,但绝对不可拍脑袋做决定。无论结果如何,只要管理人勇于承担责任,团队就不会受到毁灭性的伤害,即使解散了,人心都还是有数的,东山再起只是时间的问题。在无常的人心和世事中取得平衡感,在风雨飘摇中承担责任并发挥集中的效率,这是管理人荣誉的来源,也是立身之本。

作者高博,EMC中国卓越研发集团首席工程师,有丰富的技术团队管理经验,交付项目有大型桌面软件、移动设备和应用平台和以云存储和云计算为基础的在线企业备份系统。新浪微博:但以理_高博


 CTO俱乐部是目前国内最有影响力、规模最大的技术管理者分享与交流平台,由中国最大的IT社区CSDN创办。CTO俱乐部实行会员免费申请、实名认证的加入机制。自2009年创办以来,已有注册会员10000余名,覆盖国内数千家IT公司和各行业企业研发部门的CTO、技术副总裁、首席架构师、技术总监、工程总监等高级技术管理者。更多精彩分享与交流机会,欢迎加入CTO俱乐部。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解分布式id生成算法--雪花算法(SnowFlake)

分布式ID生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种。 注: 1B就是1个字节。Byte、KB、B、MB、GB之间的关系是:Bit——比特 ; B ——字节;KB——千字节;MB——兆字节;GB——吉字节…

注解 @PostConstruct 与 @PreDestroy 详解及实例

简介 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Java EE5 引入了PostConstruct和PreDestroy这两个作用于Servlet生命周期的注解,实现Bean初始化之前和销毁之前的自定义操…

PHP 安装xdebug

xdebug官网: https://xdebug.org 安装步骤如下: 使用 phpinfo() 打印出PHP相关信息, 全选, 复制 打开 xdebug 网站: https://xdebug.org/wizard.php 在图中输入框中粘贴你复制的信息, 点击 Analyse my phpinfo() output 在结果中点击下载, 然后按照它提示的步骤进行操作即可…

分布式消息中间件 : Rocketmq

简述 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 分布式消息中间件,主要是实现分布式系统中解耦、异步消息、流量销锋、日志处理等场景。生产中用的最多的消息队…

消息中间件:RocketMQ 介绍(特性、术语、原理、优缺点、消息顺序、消息重复)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 消息中间件的作用 1. 应用解耦 2. 异步处理 比如用户注册场景,注册主流程完成以后,需要调用邮件系统发送邮件…

使用 Intellij Idea 打包 java 工程为可执行 jar 包

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 其实还有个简单多了方法,见: 超简单方法: Intellij Idea 把 java 工程打成可运行的 jar 步骤&#x…

QuickStart系列:docker部署之Gitlab本地代码仓库

gitlab是可以在本地搭建的使用git作为源代码管理的仓库。 运行环境: win10vmware14docker7docker 1. 使用命令拉取镜像(非必须,耗时比较久,这里以ce为准,ce是社区版,ee是企业版): do…

超简单方法: Intellij Idea 把 java 工程打成可运行的 jar

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 找到 Intellij Idea 最下面的 Terminal 选项,并点击进入该界面。 2. 在光标位置输入命令:mvn clean 。清理…

kafka集群搭建(消息)

1、Kafka使用背景在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题:我们想分析下用户行为(pageviews),以便我们设计出更好的广告位我想对用户的搜索关键词进行统计,分析出当前的…

[转]在Windows 下使用OpenCL

目前,NVIDIA和AMD的Windows driver均有支援OpenCL(NVIDIA的正式版driver是从195.62版开始,而AMD则是从9.11版开始)。NVIDIA的正式版driver中包含OpenCL.dll,因此可以直接使用。AMD到目前为止,则仍需要安装其…

docker 之 Dockerfile 实践

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 上一篇介绍了Dockerfile中使用的指令,现在开始进行指令实践 先查看下本地的镜像,选一个作为base image&#xf…

tomcat启动后命令行日志中文乱码

这是日志的编码设置和窗体的编码格式不一致。 将 conf\logging.properties 文件中的 UTF-8 改成 GBK 重启tomcat (右键cmd标题栏部分,可以查看cmd属性) 转载于:https://www.cnblogs.com/Echiops/p/10974587.html

Coursera机器学习笔记(一) - 监督学习vs无监督学习

转载 http://daniellaah.github.io/2016/Machine-Learning-Andrew-Ng-My-Notes-Week-1-Introduction.html 一. 监督学习 什么是监督学习? 我们来看看维基百科中给出的定义: 监督式学习(英语:Supervised learning),是一个机器学习…

基于OpenCL的mean filter性能

1.对于一个标准的3*3 均值滤波,kernel代码如下: 使用buffer/image缓冲对象 __kernel void filter(__global uchar4* inputImage, __global uchar4* outputImage, uint N) {int x get_global_id(0);int y get_global_id(1);int width get_global_size(…

Docker 实战:编写 Dockerfile

一、编译镜像 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 编译镜像 Dockerfile类似于Makfile,用户使用docker build就可以编译镜像,使用该命令可以设置编译…

dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)

一、建立maven模块和provider、consumer、service子模块,其中service是开发接口的模块 建立一个maven模块,不选择样板,直接next知道完成,建立三个子模块,建立完后发现各个模块的java目录不是源目录 右键——>make Directory as…

AMD 5XXX 系列显卡的 peak bandwidth计算

在ATI Stream Computing Programming Guide中,例举了AMD 5系列显卡的参数信息。 我比较关注其中Peak bandwidths的计算,以便在opencl程序测试bandwidth利用率。 下面,我以5870为例,探讨一下如何计算得到这些结果: L1 c…

OpenCL memory object 之 Global memory (1)

这篇日志是学习AMD OpenCL文档时候的总结。 OpenCL用memory object在host和device之间传输数据,memory object由runtime(运行库,driver的一部分)来管理。 OpenCL中的内存对象包括buffer以及image,buffer是一维数据元素…

OpenCL memory object 之 Global memory (2)

当我们用clCreateBuffer, clCreateImage创建OpenCL memory object时候,我们需要输入一个flag参数,这个参数决定memory object的位置。 cl_mem clCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errc…

数据结构进阶篇-跳表

大家想必都知道,数组和链表的搜索操作的时间复杂度都是O(N)的,在数据量大的时候是非常耗时的。对于数组来说,我们可以先排序,然后使用二分搜索,就能够将时间复杂度降低到O(logN),但是有序数组的插入是一个O…