编者按:本文来自微信公众号“InfoQ”(ID:infoqchina),做者周明耀java
关于技术管理的系列文章,这是第三篇。没有实践支持的理论,容易流于空想。为此做者特地设计了 20 个特定的场景,帮助你更好地去理解、落地技术管理这件事儿。这 20 个问题,不必定都适合你,但总有一个,是你已经遇到,或者即将遇到的痛点所在。想知道怎么解决吗?程序员
写在前面性能优化
最近针对技术管理工做写了两篇文章,分别是《程序员, 这是你想要的技术 leader 吗?》和《别人家的技术 leader 是如何建设团队、管理人员、沟通工做的?》。读者针对技术管理提了不少问题,这里我对这些问题进行回复,既是出于对提出问题的朋友的尊重,同时这些问题也是不少朋友均可能正在遇到或存在的疑惑,书面回复比较容易扩大交流范围。一共 20 道问题,我尽可能用平实的语言回答这些问题。微信
1. 我在小公司作了 2 年的 Leader,请问如今应该继续作下去,仍是去阿里这样的大公司从程序员作起?架构
个人见解是,不管去阿里作程序员,仍是继续留在当前的公司作 Leader,本质上都没有错,更多应该关注你所作的事情,是否有技术含量?是否符合你将来的职业发展方向?这两点很重要,不管在哪一个环境,千万不要习惯于安逸,这样就比如温水煮青蛙,慢慢地你会失去技术能力,进而失去成为或继续作技术管理的机会。分布式
2. 内向的人如何管理?内向的人如何带团队?性能
这一题我想多讲一些,由于,本质上我也是内向型的人。学习
外向的人天生善于交际,长袖善舞,更容易引发别人的关注,在团队中表现更加活跃,因此他们更容易得到成功,也更讨人喜欢;内向的人却不容易获得重视、关注,甚至快乐。测试
有些父母发现本身的孩子是内向的人,他们会以为有点遗憾,甚至难过。还有一些会尝试改变孩子这种性格特色,更有甚者,会认为孩子有心理障碍。然而内向型人格真的是一种不太好的人格特质吗?美国有一本畅销书《安静,内向性格的竞争力》,做者苏珊. 凯恩列举了许多性格内向的成功人士,他们安静、稳重、深思熟虑,他们默默地带给这个世界许多改变。若是他们不幸被强制改变成外向的人,这个世界会少量多天才,多出来许多“病人”。优化
回到工做中。内向的人表现为很是沉默、内敛,几乎感受不到他们的存在。他们能够把工做完成得很出色,可是对团队执行力或者在会议上几乎没有什么贡献。他们在一对一的时候能进行交流,但退回到人群里之后几乎消失了。
在会议上让他们发言时,当他们分享本身的意见或看法时,要给予正面的支持,这样能够逐渐帮助他们创建自信,让他们感受到本身对于团队是有贡献的。找机会跟他们交谈,当面承认他们的贡献。与他们的交流要单独进行,经过一些小事情与他们创建特殊的联系,例如分享工做经验、交流管孩子心得。总之,想法设法创建更紧密的联系。
而做为一名 Leader,你在生活中能够继续保持本身内向的本质,可是在工做中,你须要可以作出改变,承担起全部技术管理者应该承担的责任,勇敢地面对你所须要面对的复杂环境和事物,积极地与员工沟通,积极而高效地解决遇到的难题。回到家,你依然能够是那个内向而细腻的你。
3. 如何评判一个 Leader 好仍是很差?
我以为 Leader 没有好或者很差之分,只有称职和不称职的区别。一位称职的领导,他须要作好团队的向下管理、向上管理、对外管理、自我管理等四个方面,管理的最终目标是:“不要让你的下属陷入困境,不要让你的同事陷入困境,尤为是在任何状况下,都不要让你的上级陷入困境”。
做为一名 Leader,千万不要觉得不让员工承担较重的工做负担就等同于好领导。在技术圈,好人不等于好领导。技术是须要实际工做环境进行积累的,若是不让他们参与到技术难度较大的项目里,那么他们工做几年可能都是在原地踏步,这样会让热爱技术、对职业发展有本身的规划的有志之士选择离开你,他们要的不是一个单纯的好人,而是一位可以教给他们知识、引领他们不断提高技术的 Leader。
4. 你有遇到过怎么样的很难处理的人或者事情?
有。在我过往的职业生涯中,我有遇到致使团队奔溃的奇葩,也有遇到因为没有及时搞定技术问题,致使领导层对技术能力不承认的状况发生。
先说奇葩这件事。我有遇到过一心想当“老大”,不择手段压制同伴的奇葩,也遇到过对人很粗鲁、思惟方式很自个人奇葩,还遇到过处处借钱的奇葩。对于各种奇葩,换成如今的我,我必定会在第一时间让他们走,不管他们的水平有多高,都不会犹豫,也不会指望本身可以改变什么,他们的性格是受了家庭或者经历的严重影响的。让这些人尽快远离团队,这样整个团队都会轻松不少。在我做为技术管理者还不成熟时,我没有处理好,致使了团队的负能量激增,这是个人过错,不会再犯。
再说后面那种状况。对于从事技术管理的人来讲,技术和管理的比重最好可以保持在 8:2 的状态,这里不是说只拿出 20% 的时间进行管理,而是须要你可以天天只用 20% 的时间作完应该用 50% 时间作的管理工做,只有这样你才可以有足够的时间处理技术问题、不断提高本身的技术能力。不管出现什么技术问题或难题,必定要第一时间引发注意,将这件事的优先级派到较高地位,第一时间带领团队成员分析问题缘由、明确解决思路和方案,安排相应人员着手进行技术调研或测试、编码等工做,用最短的时间找到切实可行的解决方案,并付诸实施。
5. 平级的人,很难相处,怎么办?
米歇尔在去年美国大选以前的民主党全国表明大会上,这样描述本身的想法,“When they go low,we go high.”。当你遇到你以为很难相处的人时,你须要告诉本身,保持本身的职业素养,不要轻易被别人激怒、烦恼,依然保持一颗日常心,努力把本身的工做作好。
对于平级的人,你确实拿他没办法,个人建议是找大家共同的领导反映你的困惑,或是经过你的领导找到他们的领导,由领导层沟通。对于全部的管理类问题,我以为首先要自我检查,确保不是自身的问题,而后是沟通,保持高效、简单的沟通,这样能够帮助你至少说出本身的困惑,最后是放松自我,不要被不值得的事情或人所烦恼,过好本身的每一天,全力作好本身的工做,不断提高自我价值,抽出时间陪伴家人,这才是你应该作的。
6. 技术为主的公司和非技术为主的公司,技术管理有什么区别?
首先,技术为主的公司和非技术为主的公司,技术管理者所作的工做是有明显区别的,所以,对于技术管理者的技术背景也是有明显差别的。非技术为主的公司,团队领导能够不是程序员出身,他可能来自业务部门,也可能来自运营部门,只要他过往的经历能够帮助他 Hold 住这个岗位。而对于技术为主的公司,技术管理者若是不懂技术,那基本上参加会议时一句话也插不上,别人又怎么对你有技术尊重呢。
技术为主的公司,程序员不少。从许多方面看,程序员之间的差别很是大,只有很了解程序设计的人才能彻底理解这一点,事实上,程序员之间的差别主要来自我的内在因素,而不是外在属性。微软公司的 Bill Gates、Adobe 公司的 John Warnock、FaceBook 公司的 Mark Zuckerberg 都没有犯这样的错误,由于他们本质上也都是程序员。这也是为何我以为某些大型软件企业须要变革的缘由,我的认为,在科技界你最好不要让非技术出身的人担任 CEO。
7. 小公司里项目很是多,项目流程怎么走?
通常状况下,企业开发软件时会按照基线和定制两块并行方式执行项目开发工做。不管什么公司,都须要听从一套成熟的产品研发过程体系,才能作出质量较好的产品。所以,若是出现项目较多的状况,应该合理地安排基线和定制以前的里程碑,让基线产品可以尽可能多地收集用户的通用型需求,为定制项目进度实现技术支撑,减小定制项目中大量更改代码、须要新增模块状况发生。此外,产品研发过程体系也须要按照业务实际时间要求变化,不要拘泥于必定要按照瀑布方式,或是敏捷方式进行管理,凡事都须要找到契合本身的方式。鞋合不合脚,只有脚知道。
8. 如何使技术开发的人愿意从事产品业务开发?
确实存在这样的状况,技术开发人员不太愿意理解产品业务。咱们要从另外一方面来引导他们,每一个人都会对本身作的产品有特殊的关注,若是你能不断地收集用户使用后的反馈,特别是正面的反馈,那样就能够激发起技术人员对于产品的热情。我据说双 11 时,阿里会在办公室挂上电子地图,动态实时反馈各个城市的销售量,这种方式会让技术人员颇有让系统保持稳定运行的动力。
9. 老是控制不住情绪,产品有些简单问题,老是来问,怎么办?
庆祝你的成功,在失败中寻找幽默。别太把本身当回事儿,你放松,你周围的人才能放松。享受乐趣,并始终保持激情。——Sam Walton,沃尔玛创始人
不要对别人过于苛刻,这样会让你控制不住本身的情绪,你会认为别人很愚蠢,但在你作出这样的判断以前,你应该学会理解别人,由于你没有站在他的位置上,他所承担的压力、所面对的困惑,是你所不了解。因此,首先学会和人沟通,学会理解别人,不管对方是你的上级、接口人,或是下级。
若是你以为不少问题一遍遍地解释,那我以为有必要抽象出一份资料,Word 或者 PPT 均可以,形式不限,往往遇到这类状况时,你就能够甩出文档,避免本身的时间被这类状况消费了。
10. 公司没有项目奖、年终奖,如何激励下属?
亚伯拉罕. 马斯洛在 20 世纪中叶提出了需求层次模型。在 1954 年首次出版的《动机与人格》(Motivation and Personality)一书中,他将该理论引入了商界。马斯洛认为,人的需求能够按层次划分,从最基本的对事物和居所的需求,到最高的追求自我完善,在低层次需求还没有彻底知足以前,更高层次的激励没有多少用武之地。
直到今天,需求层次理论依然使人信服,在理解人的动机和我的发展的管理培训中常常会引用它。事实上,马斯洛围绕需求层次理论所提出的观点,今天依然在促使咱们不断改善工做环境,鼓励员工充分发展,自我实现。
一旦生理需求知足后,人们就会寻求更高层次的知足。佛雷德里克. 赫茨伯格在 1959 年出版的《The Motivation to Work》一书中描述了他认为的激励因素,包括成就、承认、工做自己、责任、发展,只有当这些都获得实现和知足时,人们才能获得真正的激励,这样来看,这些因素意义重大,表明着更深层次的成就。
回到咱们的问题。我以为,他们家老板开公司到底想不想赚钱了?搞了一个大锅饭环境,连基本的激励都不存在了,还怎么让员工作出成绩。
11. 领导要求工做时间 996,怎么看待?
我我的以为并非以待在办公室的时间长短评判一我的的工做是否称职,咱们须要坚持的是以任务结果导向为主要评判标准。对于重大问题,好比阿里的双 11,若是系统出现问题,那么意味着全部的供应商都有可能由于系统问题致使破产、失业,进而你的职业生涯也结束了。因此,咱们仍是要看本身所从事的工做的复杂性,若是确实须要,即使是通宵待在办公室或客户现场,我以为也是必要的。
12. 如何提高团队的技术氛围?
团队的技术氛围,咱们能够依靠创建技术分享制度、要求资深工程师参与或主导开源项目等方式增强技术氛围,但归根到底仍是要有需求。只有当你团队所负责的业务需求迫使你不断作出技术更新,你才会真正意义上去不断自我学习,进而造成浓重的技术氛围。人,都是被逼出来的。
13. 对于态度不是很好的员工,应该如何解决,沟经过几回,也没有效果。
表现不好的人给团队拖后腿的方式不少。他们占用了预算的一部分,可是却没法交付出有效的成果。其余人若是看到他们差劲的表现,也会消极得失去动力或者失去对你的尊重。表现差的人可能会影响项目的进度,从而对项目中的每一个人都产生不利影响。他们也会占用会议中的大量时间。所以不论如何,这种状况必须尽快解决。
虽然很难开口,但一般,终止合同对你和员工都是件好事。不少表现不好的员工都知道本身不好。不多有人会看不到现实状况,还幻想本身表现很出色。他们天天上班和睡觉都背负这这个沉重的负担。对大多数人来讲,负担会沉重到难以忍受。因此,当你最终直面他们,并开始终止合同的流程时,员工一般会感到一种放下包袱的轻松。不少人会选择离开,也有一些人会选择尝试绩效改进,若是选择后一条路,你必定要按期与这个员工会面,审查绩效状况并讨论结果。
14. 技术管理者的 Coding 能力须要有多强?
这一题和第 6 题相似。对于技术为主的公司,若是你没有很强的代码编写经验或者能力,你实际上会缺乏对于技术方向的把握、对于技术细节的指导能力,进而失去程序员对你的技术尊重,可能只剩下管理尊重了,也就谈不上合格的技术管理称呼了。
对于非技术为主的公司,例如银行,我据说有研发团队的 Director 是由测试出身的人担任,也担任得很好,这是由于他可使用业务知识(多是他工做以外积累的)、较好的英语能力,赢得客户的信任。
15. 没有考核权利怎么办?
仍是沟通。不少状况下,你确实没有直接的考核权利,那就和你的领导进行沟通,但愿至少给予你参与考核的权利,即以他为主,以你为辅,这样你就能间接地参与所管理者的考核。万事,学会沟通,高效、有效地沟通。
16. 创业型公司给配了一些能力不好的程序员,让我来领导,怎么办?
不管 Starbucks,仍是台湾的一点点奶茶店,他们所雇佣的员工素养通常都较高,尤为是 Starbucks。正是因为这一点,造就了这两家公司分别在咖啡零售店和奶茶零售店的绝对优点,至少在杭州是这样的。
创业型公司,若是认为技术人员的投入太多,而转而选择能力不好的程序员,那么最终也会落得和上面所说的例子之外的其余咖啡或奶茶零售店同样,永远不可能作成行业领头羊,而是很容易被淘汰。这是一个科技的时代,只有拥有技术,你才有可能最快、最好地作出产品。
17. 公司政治斗争激烈,如何避免卷入?
真正热爱技术的人是不肯意参与政治斗争的,由于那样会很耗费本身的精力,让本身深陷其中,致使技术不能深刻研究。
我以为避免卷入的最好方式是,成为技术大牛,成为一位让公司高管、中层所尊重的技术人员,用你的专业能力证实本身。
18. 怎样引导 / 协调好各个部门的关系?
若是你想要建造一艘大船,不要立马号召你们开始收集木材,也不要立马分配任务和工做,而是应该先教会他们去憧憬广阔无垠的大海。——Antoine de Saint-Exupéry
团队技术管理者工做中的一个重要部分是引导事情走向正确的方向,并确保团队成员之间以及团队之间有正确的沟通方式,这就须要协调团队成员之间、团队与团队之间工做。须要注意的是,引导 / 协调的最终目的是为了让事情完成,而不是把关注点放在如何完成。
对于一个团队管理者来讲,要想最大化地利用本身的时间和技能,就要引导程序员本身作出正确的决定,而不该该本身就把决定作了。想要协调好全部人,你首先须要学会倾听别人的想法,只有理解了他们的困惑,你才可以把引导 / 协调工做作好。这样作,能够帮助下属员工培养技术、积累经验、创建自信,还能得到那些具体执行决定的员工的认同。
若是你发现本身常常须要讨论很是具体的命令如何执行,那说明你没能很好利用你的管理技能,或者没能赋予下属员工足够的权利。做为团队管理者,你必须指出大方向,而后作好充分的检查,以确保员工作出正确的决定和实现。及早检查下属员工作出的重要决定,不然当你想中途接入并修正时,员工可能已经作了不少无用的工做。这也是为何我在“进度管理”一栏中强化本身的天天进度跟踪、讨论的重要性。
记住,优秀的主管要有足够的自制力,不在下属员工工做时瞎指挥。
19. 领导不懂技术怎么办?
领导是你的上级,因此你须要作好本身的向上管理。向上管理取决于你是否可以正确地理解你的老板,以及其余你可能间接或隐式汇报的人。若是你是向工程副总裁汇报,那么沟通和汇报多是技术性的,若是你是向首席执行官或者产品副总裁汇报,那么你的汇报可能就要减小技术性,增长信息性,也许还要多加一些与产品相关的内容。除此以外,你老板的级别越高,你的报告就越要精简,越要注重大局,细节更少、局面更大,文字更少、项目符号更多。
对于一位对技术不敏感的领导,你应该去深刻了解这位领导的擅长领域,或者他过去的从业经历。经过将技术与这位领导的关注点相结合,例如产品出身的领导比较关注产品,那么你能够从技术为产品发展带来了什么好处提及,吸引他的兴趣,这样你才可以继续不断地深刻技术研究。
20. 个人 Leader 生病了,请了长病假,CTO 直接管团队,可是几个月都不开团队会议,咱们很迷茫!
我曾经参加过一次技术管理者培训。培训课上看了一段小短片,讲述的是一位盲人报名参加一次野外马拉松赛。短片中这位盲人有一位导师,这位导师用绳子将本身的手臂和盲人的手臂绑住,比赛开始后两人同时出发,比胜过程中他不断地提醒盲人须要注意什么,例如前面是平路,咱们用怎样的步履跑步,前面有个坑,我喊一二三就跳过去,等等。
一路上,盲人始终听从着导师的指导,顺利完成了马拉松赛。咱们做为技术管理者,对于员工的指导,也和这个短片中的导师与盲人的角色相似,须要给予指导,而不是仅仅下发工做安排,或是插着手站在边上看着他们陷入困境。
回到这个问题,个人认知是,不管你是 CTO,仍是 CEO,甚至是 UFO,既然你承担了团队负责人的实际工做,那么你就应该天天召开例会,就应该不断地抽时间和你们一块儿讨论架构、业务流程、技术难点、技术方向,这是你的职责,不要来谈你有多忙,你的职务有多高,若是真的很忙,你能够任命临时团队管理者替你承担责任,而不是让团队处于流浪状态。简而言之,这位 CTO,你失职了,无论你喜不喜欢,既然你直接管理团队,就要以身做则。
做者介绍
周明耀,2004 年毕业于浙江大学,工学硕士,国外投资银行 12 年工做经验,4 年分布式系统,物联网工做经验,10 年技术团队管理经验。IBM 开发者论坛专家做者,Infoq 专栏做者。著有《大话 java 性能优化》,即将出版著做《深刻理解 JVM 和 G1 GC》,已提交分布式计算领域发明专利超过 15 项。微信号 michael_tec。
来自: InfoQ