饭饭TXT > 学习管理 > 《技术领导力:程序员如何才能带团队(出版书)》作者:周明耀【完结】 > 技术领导力:程序员如何才能带团队 (周明耀).txt

第2章 团队建设、人员管理

作者:周明耀 当前章节:15489 字 更新时间:2026-6-23 09:06

尽管有规范的软件工程流程(如CMMI1-5级),但是这些流程的发挥的作用其实不大。很多程序员开发软件并没有遵循这样的规范。即便遵循,也只是对流程有所改进,却无法将程序设计转变为纯粹的工程实践。此外,规范化的框架只解决了编写软件的流程问题,而没有涉及程序员管理的问题。遵循流程对管理程序员只能起到最低限度的帮助。技术团队管理者们仍然只能依靠自己的方法和工具来对程序员进行管理。

我们要懂得,欲管理人,必先了解人。程序员之所以难以管理,在于他们有着各种不同的个性。

本章主要介绍和解决以下问题:

·什么是管理。

·怎样组建团队?

·如何管理团队?

·影响团队管理的因素有哪些?

2.1

管理基础

管理人员是与人打交道,其任务是使员工能够协同工作、扬长避短。

——彼得·德鲁克

2.1.1 什么是管理

首先聊聊什么是科学,如何定义科学?

科学通常需要按照前人的理论和数据继续向前走,深入钻研,管理靠的是个人实践。我不建议在没有准备好的情况下匆忙地转到管理上,你以为进入管理岗就可以学管理,你是拿你的短板和别人的长板比较,一定会遇到很多麻烦。观察、假设、校验,是一切科学实践的基础,管理活动也是类似的,你观察到某位员工最近好像不怎么说话了,产出也没有之前那么高了,就会假设他是不是遇到问题了或者想要跳槽了,最后通过直接沟通或侧面了解检验假设的正确与否。通过不断地刻意训练,慢慢积累自己的管理经验,再想着怎么去拿捏平衡,完成类似艺术形态的进化。

2.1.2 开发岗位解释

程序设计作为一种严肃的职业已经存在70多年了。全球目前至少有数百万程序员,这还不包括在校的学生、业余编程爱好者(他们非常认真地编写程序,但不以此为谋生之道)。1968年开始,人们开始将程序设计这门艺术称为软件工程,从零开始编写新程序更像是在一张白纸上写小说。任何人都可以成为程序员,不需要接受正式教育,也没有必需的证书或考试。事实上,我认为只有特定类型的人才能成为程序员,只有非常特别的一类人才能成为杰出的程序员。从技术能力或分工来看,又分为应用程序员、系统程序员、系统架构师/工程师、开发团队管理者。

(1)应用程序员

应用程序员开发的程序通常给终端用户直接使用。程序包括文字处理软件、OA系统、Web浏览器、安卓应用程序等。一些应用程序员能够跳出代码本身的束缚,与应用程序的用户产生交互,真正从用户的角度看问题,从而很好地把握各种可视化、交互式设计之间的细微差别。如果让这样一位有天分的应用程序员与一名UI设计师合作,将产生一加一大于二的效果。

(2)系统程序员

系统程序员理解系统中所有组件的工作原理,包括客户端/服务端的操作系统和通信系统。以某个产品为例,系统程序员负责编写与硬件交互的设备启动程序,创建能够为设备驱动程序和应用程序提供运行时环境的操作系统,为其他程序员创建编译器和调试工具,还需要为其他程序员提供工具和服务以用于交付程序。

(3)系统架构师/工程师

大多数系统架构师/工程师都是从系统程序员做起的。在所有开发类职位中,系统架构师/工程师是最需要技术和经验的。要想理解所有相关的系统组件(操作系统、通信系统、数据库、在线/离线访问方式、安全性、硬件等)之间的复杂关系,你需要对所有这些技术和系统都有丰富的专业知识和实际工作经验。杰出的系统架构师/工程师可以让团队中的其他人表现得更好,他们设计的系统工作起来会更可靠,代码模块、系统架构也会更简洁。Google公司的联合创始人Larry Page和Sergey Brin就是这样的人,他们在设计和实现上培育的优雅风格帮助Google公司在技术和商业领域都取得了伟大的成功。

(4)开发团队管理者

与项目团队管理者不同(项目团队管理者需要在自己规划的职业道路上花大量的时间学习并获得证书),开发团队管理者一般都是优秀程序员出身,积累了较强的技术和架构能力,对业务知识也较熟悉,且拥有较强的人际关系处理能力,智商、经验、情商的三者综合水平都较高。这个岗位也是本书的重点目标人群。

2.1.3 团队成员品质

团队是为了实现某一目标而由相互协作的个体所组成的正式群体,是由员工和管理层组成的一个共同体,它合理利用每一个成员的知识和技能协同工作,从而解决问题,达到共同的目标。团队的构成要素总结为目标、人、定位、权限、计划。团队和群体有一些根本性的区别,群体可以向团队过渡。一般可根据团队存在的目的和拥有自主权的大小将团队分为三种类型,即问题解决型团队、自我管理型团队、多功能型团队。

组建一支团队的基础是需要雇佣合适的成员。一支整体作战能力较强的开发团队,它雇佣的员工需要具备以下几点素质:

1.职业素养

社交媒体上我多次收到这样的邀约:“我们对您的技术背景和行业背景很感兴趣,我们是一家专业的咨询公司,受雇于国内××基金公司,正在针对您所处的行业进行技术、产品和竞争力分析,我们想对您进行采访。采访将采用电话访谈方式,耗时40分钟至1小时,我们会给予您1000元人民币的报酬。”这不是技术访谈,它涉嫌商业间谍,如果你真的照做了,你能不能收到钱我不知道,你的职业素养是要被打问号的。你以为钱是这么容易给你的吗?他们只会问一些不痛不痒的通识性技术问题?很大可能要的是你所在公司的产品发展情况、技术使用情况,最终以数据形式卖给一些公司或机构。

不要贪图小利,一个人的职业素养非常重要,让别人觉得你的职业素养有问题,你的职业生涯也会很危险。上面这种案例,我的回复是:“这类事情请用公对公形式,您可以与我们公司市场部或者战略规划部对接,如果对私人进行采访,我认为这是一种商业间谍行为,对于您今天的联络,我会向公司报备。”

2.做事专注

专注的人,更容易获得成功。爱因斯坦说过:“一个人只有以他全部的力量和精神致力于某一事业时,才能成为一个真正的大师。因此,只有全力以赴才能精通。”

假期我带女儿去少年宫画画,老师要求在一个白色的存钱罐上面涂上颜色,这需要充分保持自己的注意力,女儿不是那种注意力很集中的人,事实上,我觉得没有谁是天生就注意力很集中的,孩子的认知、行为方式来自家庭的影响。我对女儿反复说:“无论别人在你周围谈论什么话题,或者他们发出什么声音,都和你无关,你现在要做的是专注于画画。”

同样的事例发生在《妙手仁心》这部电视剧,急诊室的主任在有人行凶的情况下,仍旧保持高水准的急救,这也是专注工作的充分体现。

回到技术领域,一名真正的技术牛人,他在做事的时候绝对是全神贯注的,否则他不可能在短时间内读懂别人的代码、找到问题原因、完成框架设计,这是技术专家的必备能力。

3.乐于挑战

知乎上有这么一个问题:“在BD工作,遇到的最大挑战是什么?”该问题回复很多,我列举一些,大家自己评判。

·“觉得最大的挑战是公司人多需求多,你实际的工作和当时的设想完全不同,这种情况下如何调整职业发展方向,或者是努力纠正,让自己回到原来设定的发展方向上来。”

·“盲目地扩张导致入职人员的素质水平跌得很厉害;越来越多的新人缺乏敬业精神;有能力的老人离职率很高;大多数PM缺乏专业知识;缺乏实在的指导人体系;上头什么都想做;大多数都做不出成绩;上班的时候山寨感强烈。”

·“各种会议和杂事儿一堆,能耗费你很多的时间和精力,不能专注到技术与架构本身。经理过分强调手下的工程师对项目整体、产品、预期的理解,有时候真觉得自己在产品上花的时间相当于半个PM了。”

在工作中你一定会遇到各种各样的挑战,你所需要做的是积极地迎接、应对这些挑战,而不是每次都退缩,越退缩就越容易失去机会,失去让自己过上自己喜欢的生活的机会。

当你加入一家新公司时,要挑一个比较棘手的难题(其他人尽量回避的)来解决。这样可以帮你快速积累经验,并赢得成为一名卓有成效的开发者所必需的信誉和尊重。我不太喜欢向别人要技术调研报告,事实上我最喜欢做的事情就是对一项未知技术做技术调研和预研,这会让我能够有机会挑战新技术,有机会让自己的视野更加开阔。

4.永不气馁

我在职业生涯中投篮失败9000余次,输掉了300场比赛,有26场比赛,我被委以投出致胜球的重任,却没能命中。我不断地遭遇失败,而这恰恰是我取得成功的原因。

——迈克尔·乔丹

2016年我获得了公司的一个奖项,HR让我写几句获奖感言,以便发表在公司刊物上,我写的是“永远不要放弃”,这也是我时常对自己说的话。这句话是原浙江省特级化学老师、杭州市高级中学退休老师郑克良老师对我说的。那时候我正在读高复班,对于未来我没有太清晰的想法,其实在那之前,我一直都是一个没有太多个人想法、内向、老实的孩子,我只是想通过高考让自己有一条清晰的路。遇到郑老师是在公交车上,他和我聊着天,了解了我的特殊情况(我读大学前的情况和一般城市里的孩子确实有些不一样,应该是我内心的那种坚持,主导着我不愿意进入真实水平对应的学校,一直想着从小的梦想——清华大学和美国哥伦比亚大学)。一次月考后,我拿着30多分的试卷去请教郑老师,他看着我说:“永远不要放弃了”,我开心地点点头。其实郑老师不知道,我一直都在进步,从第一次考试得5分开始,之后每次考试都能进步10分,这段经历也培养了我的自信,不懂的东西我学学就会了,没什么大不了的。

5.承认错误

不管你做出多大努力,这个问题是不可避免的:在生命的某个时候,你会犯错。

错误难以消化,所以我们有时会孤注一掷,或回避他们,而不是直面它们。这时候,我们对事物的认知会产生偏差,导致我们需要寻求证据来证明自己所坚持的信念。

心理学家称之为认知失调,即当我们持有两种相互冲突的想法、信念、观点或态度时所感受到的压力。《错不在我》的作者Carol Tavris认为:“认知失调是我们在自我认知(我是聪明、善良的,我坚信这是真的)受到事实挑战时所产生的感受,表示我们做了不聪明的、伤害到其他人的事,证明我们之前的想法是错的。”

回到技术领域,如果你知道大家正在寻找的问题的根源在于你的程序,那么请你主动站出来,简要地解释一下存在什么问题,出现问题的原因,以及你能想到的解决对策。在专业领域,出现这种讨论的原因,往往是由于主导者在情况变得糟糕时得不到直接的答复。如果能够及时向他们提供信息,说明问题出在哪里,正在采取哪些措施以最大限度地降低问题再度发生的可能性,他们就能对问题的影响做出准确的评估了。

敢于承认错误,并积极地弥补错误所造成的损失,是一种非常可贵的精神,值得我们大力称赞。这让我想起爱迪生的一位学徒,不小心打碎了一天的劳动成果,实验室其他人都在责备他的粗心,只有爱迪生不仅没有打击他反例安慰他,并让他继续担任成果传递的工作,这一经历最终造就了一位科学家。如果哪一个领导因为你主动承认错误,而把责任全部推给你,那你也应该离开他了。

2.2

组建团队

“一流人才招聘一流人才,二流人才招聘三流人才。”

——史蒂夫·乔布斯

管理者首先必须学会管理程序员和软件团队的技巧,换言之,必须学会了解员工,包括如何聘用他们、激励他们,进而领导他们开发并交付杰出的产品。

2.2.1 招聘策略

1.了解岗位需求

在招聘之前,我们需要明确知道自己需要什么样的程序员,需要分析自己所提供的岗位,即便都是合格的程序员,也需要根据我们的实际需求确定最适合的那一位,也就是说,明确我们当前是需要开发经验,还是需要对技术有钻研热情的人,即你是需要:

·一个可以领导整个团队开展各种实际工作的程序员?

·一个可以找出产品里隐蔽难寻的设计缺陷的程序员?

·一个具备大局意识、能预想到需求可以如何分解为模块和组件的设计师?

·一个能主动行动、能很好地配合管理层的工程师?

还是需要:

·在短时间内可以编写数千行代码?

·能够快速开发出对客户非常重要的原型系统?

·能快速领会业务流程,围绕根本需求设计产品。

上面提到的这些特质,它们互相并不是排斥的。但前一类程序员可能是经验丰富的老手,后一类更可能是充满热情的新手,关键看你的岗位、行业需要怎么样的人,招到错误的人,不仅是对的失误,也是这个人的失误,他会觉得自己到了错误的岗位上。

2.编写职位描述

当我们了解清楚自己的实际需求后,我们需要针对职位进行描述。

职位描述一般包含以下三部分内容:

·基本信息,包括岗位、部门、直接领导、状态、工作地点;

·职位概述,包括工作职责和预期表现;

·岗位最低要求。

具体案例如下所示:

职位:服务端开发工程师

部门:C++程序设计

直接领导:C++团队负责人

状态:全职

工作地点:杭州

职位描述:入门级职位。负责代码开发、转换、验证与维护。负责根据已有的文档和代码质量标准,撰写风格良好的源代码。能较好地融入团队,并遵循团队管理者和资深团队成员的指导。能在团队管理者的指导下开展工作,并就出现的问题主动进行沟通。

职位要求:

·具有研究生学历,211大学及以上学校优先。

·掌握Windows、Mac或Linux系统中的任一种,掌握两种及以上优先。

·掌握C/C++及其调试技术。

·有良好的编码实践,对基本的计算机科学原理有初步的认识。

·对互联网技术和通信协议及其相关技术有所了解。

·对数据库技术有所了解。

·对多线程技术有所了解。

·能适应团队工作,能根据指导较好地完成工作。

·能够自我激励,具有较强的学习能力。

·能够配合团队管理者制订工作计划,并预估工期。

·能够根据工作的变化做出相应调整。

建议不要只写一份职位描述,而是要多写几组,以体现对不同工作的能力要求。根据过往经验,多写几组职位描述可以更容易让应聘者看到职业发展和晋升机会,不仅有利于HR招聘,也能帮助应聘者定位。大家要记住,招聘一位员工,从一开始就已经使用了公司的资源,HR招聘专员、面试官、会议室、领导、HR薪酬专员、HR合同专员等,这一系列的人员、物资都是公司的资源,所以一定要确保招聘策略准确无误,避免出现对的人看到我们错误的岗位描述。

3.STAR面试法

STAR是SITUATION(背景)、TASK(任务)、ACTION(行动)和RESULT(结果)四个英文单词的首字母组合。

在招聘面试中,仅通过应聘者的简历无法全面了解应聘者的知识、经验、技能、工作风格、性格特点等,而使用STAR技巧则可以对应聘者做出全面而客观的评价。

·背景(SITUATION):通过不断提出与工作业绩有关的背景问题,可以全面了解该应聘者获得优秀业绩的前提因素,从而获知所取得的业绩有多少是与应聘者个人有直接关联的,有多少是与市场的状况、行业的特点有关的。

·任务(TASK):每项任务的具体内容是什么。通过这些可以了解应聘者的工作经历和经验,以确定他所从事的工作与获得的经验是否适合现在的职位。

·行动(ACTION):了解他是如何完成工作的,都采取了哪些行动,所采取的行动是如何帮助他完成工作的。通过这些,可以进一步了解他的工作方式、思维方式和行为方式。

·结果(RESULT):每项任务在采取了行动之后的结果是什么,是好还是不好,好是因为什么,不好又是因为什么。

4.招聘文化

好的招聘流程可以促成好的工程团队文化,必须做到快速回应、测试驱动和积极沟通。

如果你在面试中碰到好的候选人,在面试时你需要回复他们:“你最迟在两天内可以收到我们的通知,如果没有,请直接给我发邮件。”如果候选人在某个领域有很大的影响力,那么就没必要花两个礼拜的时间才把他们招进来。如果动作慢了,你就有可能错过优秀的候选人。

如果你把代码看得比人重要,那么你就无法真正建立起一个技术团队,即使候选人接受了录用通知书(Offer)也无法改变这个事实。

管理和组织流程的最大问题来源于价值的不对称,也就是说一套做一套。重点不在于招到“最聪明最优秀的人才”,你必须明白,你在招聘过程中的表现在一定程度上体现了你的团队价值观,所以请无限高度重视招聘。

记住,招聘是一项长期且繁琐的工作,很多时候没法完全依靠HR,需要自己花费大量的时间和精力去寻找和沟通。即使如此,仍会有一些岗位长期空缺,找不到合适的人选。招聘一个技术人的时间、金钱、精力,以及培养的成本都是巨大的,如果留不住,就等于前功尽弃。

2.2.2 面试技巧

优秀的主管要有足够的判断力,学会挑选能完成自己目标的优秀人才。

1.学历

对于中小型公司来说,不要太在意学历,学校经历并不是关键因素(看看史蒂夫·乔布斯和比尔·盖茨)。对于工作很多年的人来说,他的实际工作经历远比大学学历重要得多,因为当一个人离开学校的时间足够长之后,学位就基本没有意义了,经验和能力才是最重要的,学历仅仅是在大学毕业时证明你的学习能力不错,一旦进入公司后就只看你的成绩了。

2.面试题

我比较喜欢自己出面试题,不喜欢网上千篇一律的题目,当然公司出的笔试题我也会认真批改,并将它作为挑选面试者的依据之一。

我们以Java程序员面试题为例:

1)请使用两种设计模式编写代码(考察基础编程能力)。

2)请描述面向对象的三个特性及使用场景(考察面向对象的基础知识)

3)编写数据结构相关的程序,例如“实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作”(考察对于数据结构的了解)。

4)编写算法设计题,例如“给定一个32位整数n,可为0,也可为负,返回该整数二进制表达中1的个数”(考察对于复杂算法的了解)。

5)请描述JVM堆、栈、方法区的用处和区别(考察对于JVM的了解)。

6)举例说明Java8与Java7的区别,写出对比代码(考察对于新技术的了解)。

7)对您使用的GC作原理性描述(考察对于垃圾回收机制的了解)。

8)举例说明某个JDK函数或者类的源代码并进行分析(考察对于技术原理的了解)。

9)说说您过去的项目经历(开始了解他的工作经历,以便后续进行提问)。

10)画出您最了解的项目的总体设计图,或者概要设计(了解他的架构设计能力)。

11)说说过去工作中遇到的最复杂的技术难题,并说出您的解决方案(考察他的问题解决能力,也可以了解他所做的项目的复杂度)。

12)工作中您最讨厌领导的哪些行为?过去的经历中有没有发生什么不愉快的经历(了解他对领导的期望)。

13)为什么离开上一家公司(可以深入聊聊,了解这个人的个性)?

14)反问他有什么问题(别小看这一题,一般来说,如果他有自己的职业规划,他一定会问你很多关于你们公司、岗位的问题,或者如果他对这个岗位很感兴趣,他也会问。反之,如果他想都不想直接说没问题,那我觉得应该多和他聊聊为什么会来面试,仅仅是为了有一份工作吗)。

我从2015年校招开始使用自己的这套面试题(题目内容会变化),效果还是很明显的,一些笔试题做得很好的学生,到了这一环节就开始暴露出问题。我记得在西安的一次面试,一位学生已经拿到了阿里A等实习评价和Offer、华为特等Offer,以及网易和其他一些互联网公司的Offer,所以她过来面试时其实是带着不屑的,加上等的时间比较长,很不开心她进来后,很不情愿地开始了面试问答。我知道并理解她的情绪,没有和她正面冲突(这是个人的职业修养,能够控制住自己的情绪,对于一名技术管理者来说是核心能力)。等技术交流完毕,她了解了我们的技术背景后,我开始和她聊Offer、聊未来、聊技术情怀,最后她鞠躬离开。

面试过程体现了一家公司的技术能力、思维和管理能力,绝不可以轻率应付,你代表着公司,而不仅仅是你个人,如果你不够资格,或者根本不想做好,那请你让开位子,请合格的人来坐。

3.逻辑思维观察

我一般会让面试者对我口述的场景和需要做的事情进行快速地归纳总结,从他开始阅读或者倾听我的话开始计时,直到他用最简洁的语句描述出事情的背景及我希望他做的事情为止。我们看下面这个例子:

“我们今天想做一个测试,准确地说是想做一个系统接入能力的测试,也可以说是性能测试,有些公司可能也有其他的称呼,但这里我们统一叫性能测试,需要在三周时间内完成并提交测试报告。小赵负责今天的记录并参与测试过程,小张负责做一个计划,或者说方案,就是说清楚我们具体应该按照怎样的思路来完成测试,以及我们需要输出的结果。请小张记录,我需要拿到系统的接入能力数据,最好是每秒的TPS,还需要观察一些其他与当时运行状态相关的机器状态信息,比如CPU、内存消耗、磁盘I/O、网络I/O等,你自己再考虑一下还有什么我没有提到的,具体的测试方案还包括客户端和服务端的测试方案设计,这些我们会后会进行单独讨论,任务需要在本周五完成并提交评审,下周一完成评审。小王负责根据方案出一个用例,你需要等小张的方案评审完毕之后开始做,不过你可以自己先思考起来,具体可以去参考一些外部公司的性能测试用例,我周五来找你到时会结合小张的方案进行具体讨论,这个任务需要在下周四之前完成,下周六完成评审。所有评审完毕后,我们一起商量后续的具体测试分工,测试报告输出时间不变,三周之后,具体分工下周安排。”

我不喜欢拖泥带水、啰嗦的人,喜欢做事干练的人,因此我针对这道题目比较倾向的总结(会议纪要)是:

1)决定进行性能测试,三周时间,需要提交性能测试报告;

2)参与人员:领导、小张、小王、小赵;

3)小张负责测试方案编写,重点是拿到系统接入能力(TPS)数据及观察机器状态信息,本周五提交方案,下周一完成评审。领导会后单独找你讨论;

4)小王负责测试用例编写,请先自查资料、准备内容,周五根据测试方案编写用例,下周四完成编写,下周六完成评审,领导周五会找你单独讨论;

5)剩余一周半时间进行测试并输出报告,具体分工领导下周安排。

4.心理状态观察

面试时,我们可以通过提问的方式了解面试人为什么离开上一家公司,是不是发生了严重的冲突,或是存在隐忍的矛盾。如果你不善于观察一个人的心理状态,可以请HR协助一起面试,HR一般都受过专业训练,可以在短时间内判断某个人的心理状态和性格,这些都有利于你招聘。

5.面试官形象

公司派我们出去面试,代表的是公司的形象,这自然不用多说,另外需要注意的是,你面试的人是在整个公司使用的,不是只给自己使用的,所以需要对技术严格把关,加强责任心,只录取技术能力过关的、性格适合做技术工作的人,不要受自身情绪影响,导致录取不合适的人。

2.2.3 性格分析

首先我们应该明白,人的性格分为很多类。内向的人面对问题时喜欢一个人独立思考、整理思路,我就是这一类型的人,我不喜欢一大堆人围着我讲。但是外向的人通常很喜欢跟大家聊天,聊得越多,整理得越清楚,他们喜欢从几个发散的点开始讨论,在你快晕头转向时,他却能画出一张清晰的图。

有的人是判断型,这类人非常喜欢按计划办事,另一种人是认知型,非常喜欢自由,不按规矩办事。工作中,项目管理需要判断型的人,因为他们对时间的把握很精确,总是能够按照时间完成。认知型的人不喜欢规划,十个工作日,前面八个工作日没干活,因为没有感觉,最后两个工作日才开始工作。但是认知型的人也有发挥的时候,在系统出现重大故障时,喜欢计划的人一下子懵了,不知道怎么办,而对于认知型的人来说应对这一类突发事件就是他的强项了。当你对人的性格有所了解之后,你才知道跟不同性格类型的人沟通需要用不同的方式。我们通常喜欢用自己的方式去理解其他人,而真正要用别人的方式来理解他其实非常难。

1.DISC个性特征理论

1928年,威廉·马其顿博士出版了《正常人的情绪》一书,书中提出了DISC个性特性理论。他认为人类行为是个体自身的反应(主动或被动)以及其对环境的认知(友好与敌对)相互作用的结果,以这两方面为基本轴,可以区分出个体与环境互动的四种典型模式,每一个个体或多或少会呈现4种不同的模式:

·支配型(Dominance):在敌对的环境中保持主动的态度和反应;

·影响力(Influence):在友好的环境中保持主动的态度和反应;

·稳定性(Steadiness):在友好的环境中采取保守的态度和反应;

·遵从性(Compliance):在敌对的环境中采取保守的态度和反应;

管理行为作为工作情境下的一种特殊行为,它会受到人格特征的影响。具有不同人格特征的个体在同样的工作情境下会表现出不同的管理行为,往往会在工作中形成自己的管理风格。DISC个性测验就是把个体安排在这样的一种管理情境中,描述个体的优势、在工作中应注意的事项以及一些个体倾向等。例如,如何影响他人、对团队的贡献是什么、什么时候处于应激状态,这些能使个体更加清楚地了解自己的个性特征,企业也可以有针对性地考察应聘的个体是否具有对企业和职位十分关键的人格特征,以此作为筛选人员的标准之一。

DISC个性测验不限定时间,整个测验大约需要十分钟左右。纸笔作答或计算机测试均可,也可以集体测试,具体过程如下:

1)依据预定的参试人数选择适宜的测验地点,布置考场。考场环境应保持安静整洁、无干扰,采光照明良好。

2)准备测验所用的材料如下:问卷、铅笔、橡皮,要保证每位应试者都有完整的测验材料及用品。

3)安排考生入场,并宣布测验注意事项。

4)检查应试者是否完成了所有题目后,回收问卷,测验结束。

2.九型人格

人在追求至高觉悟的过程中,人的性格将成为他们发掘自身潜力的引导者。人性的发展是一个包括了不同阶段的完整体系,从最基本的性格特征,到一些不平常的潜能,比如爱的能力、感受他人的能力和先知先觉的能力,这是一个漫长的演变过程。

口头交流是获取九型人格信息的最好方式。让属于同一种性格类型的人坐在一起,讨论他们的生活,可以帮助他们更好地了解自己。一群外表迥异的人在经过一小时的交谈后,会变得非常相似。旁观者能够从他们的身体姿态、情感表达、面部表情,还有他们散发出的个人气息等细微信息发掘他们之间的相似性。当交谈者的性格特征逐渐显现出来时,观察者会明显感到,每一种性格类型都有一种独特的感觉,一种与众不同的气质。

九型人格是一种深层次了解人的方法和学问,它按照人们的思维、情绪和行为,将人分为九种:完美主义者、给予者、实干者、悲情浪漫者、观察者、怀疑者、享乐主义者、保护者、调停者。九型人格最卓越之处在于能穿透人们表面的喜怒哀乐,进入人心最隐秘之处,发现人最真实、最根本的需求和渴望(这个对于工作来说很重要)。九型人格能够帮助我们洞察人心,从而用有效地方式应对他人,最终提升我们人生的幸福感和成功率。

通过让应聘者做测试题目,你可以分析出他的内在性格,从而帮助你决定是否接纳他成为团队成员。

2.2.4 人员分类

1.“独狼”和“农民”

我们可以把程序员分为“独狼”和“农民”这两类,“独狼”更喜欢一个人完成工作,也就是说,当问题出现时,他们的第一反应是独自去解决问题。他们常常跳过规划阶段,最终得到的是一次性解决方案。

从团队角度来看,我们更加希望软件开发像种地一样。农民会有条不紊地先去了解地形、研究土地的化学成分,然后种植、浇水、除草,最终收获粮食。可靠、可扩展、可维护的软件也都是这样有条不紊地开发出来的。

许多“独狼”都是优秀的程序员,但是你需要对他们进行“贴身”管理。他们有着当主角和引起团队内部纠纷的倾向和能力,我们需要做的是尽量多地关注他们的工作,了解他们的具体工作内容,如果出现问题要马上采取措施进行纠正,否则最终局面可能会失控。

只能当“独狼”的程序员不会在任何一家企业待太久。要么是你对他们总是自顾自地向前冲感到厌烦而辞退他们,要么是他们因长期受限制感到厌烦而主动辞职。

2.“英雄”

这一类人指的是勇于承担需要付出极大努力才能完成的任务,并最终取得成功的人。在承受压力和愿意付出方面,“英雄”和“独狼”有点相似,但“英雄”更能够在团队工作和开发过程获得成功。此外,“英雄”是团队内部培养出来的,不是从外面雇佣过来的,很多时候他们会在企业的成长为超级明星。

管理“英雄”具有一定的挑战。你如果总是希望他们付出超人的努力,时间长了后会发现使用过度,从而发生矛盾。此外,作为技术团队管理者,你也需要有一定的技术功底,能够让“英雄”觉得可以从你这里学到一些知识,这样才能合作愉快。最后,需要对“英雄”的薪资、福利有所倾斜,并且多和他们沟通,让他们自己选择技术方向,为他们指明职业发展方向,并把他们放入关键项目里。

3.内向的人

外向的人天生善于交际,长袖善舞,也更容易引起别人的关注,在团队中表现更加活跃,所以他们更容易获得成功,也更讨人喜欢;内向的人不容易得到重视、关注甚至快乐。

有些父母发现自己的孩子是内向的人,他们会感到有点遗憾,甚至难过。还有一些会尝试去改变孩子这种性格特点,更有甚者,会认为孩子有心理障碍。内向型人格真的是一种不太好的人格特质吗?畅销书《安静:内向性格的竞争力》的作者苏珊·凯恩列举了许多性格内向的成功人士,他们安静、稳重、深思熟虑,默默地带给这个世界许多改变。如果他们不幸被强制改变成外向的人,这个世界会少许多天才,多出来许多“病人”。

如果一个内向的孩子在成长过程中总是被父母纠正其性格,被同伴嘲笑或者排斥,那么他就会对自己的性格产生自卑情绪,不仅不会去寻找自己这种性格的优势,反而还会痛恨自己为何是这样的人。这种自卑会给他内心造成很多冲突,这些冲突会引起他的心理障碍,比如会引起社交恐惧症、焦虑症等。

内向的人表现为非常沉默、内敛,几乎让人感觉不到他们的存在。他们可以把工作完成得很出色,但是对团队执行力或者在会议上几乎不会有什么贡献。他们在一对一的时候能正常进行交流,一旦退回到人群里就跟消失了一样。

在会议上让他们发言时,当他们分享自己的意见或见解时,都要给予正面的支持,这样可以逐渐帮助他们建立自信,让他们感觉自己对于团队是有贡献的。找机会跟他们交谈,当面认可他们的贡献。与他们的交流要单独进行,通过一些小事情与他们建立特殊的联系,例如分享工作经验、交流教育孩子心得等。总之,要想方设法与他们建立更紧密的联系。

4.带有明显负能量的人

尽量避免团队里存在充满负能量的人,他们可能会挑拨离间或发泄不满情绪来影响整个开发团队,并且对组织造成严重破坏。如果没有他们,有些负面情绪可能永远不会出现。比如“团队管理者根本不关心大家”,带有负能量的人会进一步夸大事实,把一些细枝末节的事情说成是管理层故意针对程序员的行为。

任正非在内部讲话中多次提到,所有人都应乐于到一线工作,不要总是给自己找很多借口,实际上就是懒或者养尊处优习惯了,有困难就解决,发牢骚、推脱,并无任何意义。

5.离奇之人与离奇之事

对于技术团队来说,我们需要的是刻苦的工程师,需要的是能够解决问题的工程师,而不是搞办公室政治的高手,或者腹黑的工程师。不管是一心想当“老大”,不择手段压制同事的人,还是对同事很粗鲁的人,或是到处借钱的人,早点让他们走,无论他们的水平有多高,都不要犹豫,也不要期望自己能够改变他们什么。让这些人尽快远离团队,这样整个团队都会轻松很多。

2.2.5 新员工入职

做好新员工入职工作非常重要。这是一个向新员工表达你对他们非常看重,且你的团队管理与运行状况也十分良好的机会。

在大多数公司里,团队管理者一般都要负责为新员工寻找工作定位。我们需要考虑团队现有的人员配置,找到与新员工个性相近的老员工,另外还要考虑到新员工的工作职责,以及团队领导、技术领导和架构师的座位。

我的习惯做法是带着新员工逐一认识团队成员,自己带着他去食堂吃午饭,并指定新员工的导师(技术上的),然后和他聊聊最近一个月准备给他安排的工作等,等他和团队成员熟悉后,我会找机会组织全组人一起吃顿饭,一起欢迎新员工。

新员工很容易流失,大家要引起注意。新员工流失的原因大致有三类:

(1)没有对新员工进行明确区分

校招新员工和社招新员工完全不同:校招新员工就像是一张白纸,太多无经验、能力不足,而社招新员工则正好相反,因此在进行培训时要将两者区别对待。实际上,从更专业的角度讲,需要按照工作年限、岗位级别等区分社招员工的培训内容和方式,对不同的人做正确的培训,会对后续的工作帮助更大。

(2)忽略新员工直属主管的重要作用

企业招募新员工都希望其能为企业创造价值并长期为企业服务,但人才成长是一个长期培训的过程,任何企业都无法通过新员工培训就帮助其快速成长,还要依靠新员工主管后期对新员工进行更多的培训才能达成,只是很多企业的主管在这方面没有明确的认知。

(3)培训方式缺失

无论是选择内部培训还是外部培训,重点要考虑培训的对象和背景,这正是很多企业忽略的问题。我们要知道,校招新员工和社招新员工由于其背景和经历的不同,他们面对培训的心态不同,培训的内容也有很大的差异,如果用相同的方式进行培训,必然会导致其中一方培训效果低下。

2.3

管理团队

大多数公司内部都是垂直组织结构,所以管理团队、管理自己的团队领导岗位,大致上可以分为向下管理、向上管理、对外管理、自我管理这四个方面,管理的最终目标是:“不要让你的下属陷入困境,不要让你的同事陷入困境,尤其是在任何情况下,都不要让你的上级陷入困境”。

如果你想要建造一艘大船,不要立马号召大家开始收集木材,也不要立马分配任务和工作,而是应该先教会他们去憧憬广阔无垠的大海。

——Antoine de Saint-Exupéry

2.3.1 向下管理

向下管理包含的内容很多,下面我们分别讲解。

1.技术尊重

要了解程序员,首先需要深入理解他们使用的工具、流程,以及程序设计的艺术。你理解得越深入,在和他们进行技术对话时,参与能力就越强,越容易获得他们的尊重。微软的一位程序架构师这样评价比尔·盖茨:“盖茨最喜欢和他的程序员一起将程序分析到比特、字节层面。在技术战斗中他可以非常轻易地守住自己的阵地,他之所以可以获得程序员的尊重,因为他可以轻易地战胜他们。”

成功地管理程序员最重要、最关键的因素,是在技术层面得到他们的尊重。如果没有技术尊重,那么你的每一个具体想法,都可能会遇到主动或者被动的阻碍。正是由于这个原因,那些在职业生涯的某个时期没有做过程序员的团队管理者,会觉得有效地管理程序员是一件极其困难的事情。

要得到技术尊重,关键因素包括:

·理解计算机程序设计的艺术

·拥有良好的过往履历

·做出过技术贡献

·追逐技术潮流

·成为一个技术或者职业组织的活跃成员

·展现出强大的个人价值

这些要素解释了为什么从公司外部招聘过来的技术团队管理者很难真正落地(短时间内开展有效的管理工作)。你所选择的这位空降管理者,你需要充分考虑他是否有良好、可以被证明的履历,这样才能让他获得团队的尊重。所以说,一般情况下技术团队是不会空降高管的。

2.强化现有的团队

我们假设现有团队全部由普通程序员(能够完成交代的工作,但是没有主动创造能力)组成。我们需要做的是招聘1~2位杰出的程序员,这一步要耐心,明确候选人是否真的是杰出程序员,因为只有招聘到正确的人才能让工作高效,如果招到的员工很差,那么你就没有时间去处理其他的工作了(总是会有各种问题困扰着你)。

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体大小
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
首 页 < 上一章 章节列表 下一章 > 尾 页