标签归档:研发效能

万字长文,探讨有效的团队管理

在一个软件企业中,人力成本往往是最高的,随着时代的进步,人员的学历更高了,情况也更复杂,管理团队的挑战不断增加,常常被如何吸引和留住顶级人才,如何在团队中建立有效的沟通和协作机制,如何处理日益复杂的项目和任务,如何评估和提升团队的效能等问题困扰。

如何有效的管理团队已经成为企业成功的关键因素之一。特别是在技术团队,在管理过程中都面临一些共性问题,如沟通不畅、目标不明确、流程混乱、人才流失等等。这些问题在很大程度上影响了团队的效率和产出。

针对这些问题,我们将在本文中探讨什么是团队,团队的发展过程,以及如何有效的管理团队。

1 什么是团队

1.1 定义团队

从定义上来看,团队是为了达成某一承诺的共同目标而相互协作的一群人。

团队可以被定义为一组由个体组成的实体,这些个体共享共同的目标,对其达成负有责任,并通过相互协作以实现这些目标。这个定义包含了团队的两个关键特性:目标的共享性和协作的必要性。

  1. 共享的目标:团队的成员都应该对共同的目标有清晰的理解,并对达成这些目标有共享的承诺。这可能是完成一个项目,解决一个问题,或者达到一个业绩目标。这种对目标的共享理解和承诺为团队提供了方向,并保证了所有成员都在努力的推动团队向着同一方向发展。
  2. 相互协作:团队的成员需要通过相互协作来达成这些目标。这可能涉及到分工协作,相互学习,以及共享资源和信息等行为。相互协作不仅可以提高团队的效率,也能促进团队成员之间的关系,增强团队的凝聚力,从而提高团队的整体效能。

除此之外,还有相互依赖、尊重、信任和有效的沟通。

1.2 团队是一个开放系统

从整体上来看,团队是个动态复杂的开放系统

团队是由多个相互依赖、相互影响的部分组成的,这些部分包括团队的成员、团队的结构、团队的目标,以及团队的工作流程等。团队的各个部分都是动态的,都会随着时间和环境的变化而变化。其拆解来看可以分为三部分:

  1. 动态: 团队的状态和行为会随着时间改变。这可能是由于团队成员的交互、团队成员的更换、新的任务或目标的设定,或者团队成员的个人成长和发展。

  2. 复杂: 团队的行为和效能不仅取决于个体成员的行为,还取决于这些成员之间的交互和关系。因此,理解和管理团队需要考虑到这种复杂性。

  3. 开放系统: 团队不是孤立存在的,而是和周围的环境相互作用的。这可能包括其他团队、组织的其他部分、组织的领导、客户、供应商、法规和社会文化等。这些外部因素都可以影响团队的行为和效能。

1.3 团队组成框架

从组成框架来看,团队包括 PCP、SCP 和 ICP 三个层面

任务程序(PCP)、社会程序(SCP)和个体程序(ICP),这三个层面共同构成了团队的基本框架,它们互相交织、互相影响,共同推动了团队的运行和发展。

  1. 任务程序(PCP):任务程序是团队为了实现共同目标而进行的工作流程和规范。这可能包括任务分配、决策制定、问题解决等一系列的工作程序。一个有效的任务程序可以提高团队的效率,确保团队的工作有序进行,帮助团队成功地完成其目标。
  2. 社会程序(SCP): 社会程序是团队中的人际交往和沟通方式,它决定了团队内部的氛围和文化。有效的社会程序可以增强团队的凝聚力,提高团队成员的工作满意度,促进团队成员之间的良好关系。一些如决策程序、冲突解决机制和团队建设活动等,都是社会程序的重要组成部分。
  3. 个体程序(ICP):个体程序是指团队成员各自的行为模式和工作方式,它受到各个成员的个性、技能、经验等因素的影响。团队成员的个体程序会影响到团队的整体效能,因此,管理者需要关注团队成员的个体程序,尽可能地提供适合各个成员的工作环境和条件,以发挥他们的潜力。

总的来说,团队可以被视为一个由任务程序、社会程序和个体程序共同构成的复杂系统。这个系统中的各个部分都是相互关联、相互影响的,只有当这三个部分都有效地运作时,团队才能够高效地运行,成功地实现其目标。

2 团队管理的发展过程

我们常用的团队模型包括 Bruce Tuckman 的团队发展模型,Hersey-Blanchard 情境领导理论,Drexler/Sibbet 团队绩效模型。这三个模型各有偏重:

  • Tuckman 的模型主要是为了解决团队成长过程中的冲突和团队动态问题。它帮助团队理解团队发展的自然进程,并通过理解各个阶段的特点,来更好地应对团队中出现的冲突,提高团队合作的效率。
  • Hersey-Blanchard 模型的重点是领导风格如何应对团队成员的成熟度变化。它主要解决的是领导者如何根据团队成员的成熟度和能力级别,灵活地改变自己的领导风格,以激励团队成员,提高团队效能。
  • Drexler/Sibbet 模型着重于团队的任务完成和效能提升。它解决的主要问题是如何通过明确的目标设定、建立信任、承诺和高效协作,帮助团队在完成任务的过程中提高效率和效果。同时,它也强调了团队在项目结束后的反思和更新。

这里我们主要是根据 Bruce Tuckman 的团队发展模型来看团队的发展过程。

2.1 团队发展模型

Bruce Tuckman 的团队发展模型是一种描述团队从最初形成到最终达到高效运作的理论模型。这个模型最初在 1965 年被 Tuckman 提出,原本包含四个阶段:形成、激荡、规范和执行。然后,在 1977 年,Tuckman 和 Mary Ann Jensen 添加了第五个阶段:解散/休整。

以下是这五个阶段的详细描述:

2.1.1 形成阶段

在形成阶段,团队成员刚刚被组织在一起,他们可能对团队的目标、结构和领导者感到不确定或不安。成员们可能会表现得比较矛盾,既希望被接纳,又害怕过度投入。通常,成员们会对领导者寻求指导和明确的指示。

在此阶段,主要解决的问题是团队成员的熟悉和初步建立关系。团队成员可能会对彼此、团队的目标和期望、以及他们在团队中的角色感到不确定。这个阶段要解决的问题包括:

  • 什么是我们的团队目标?
  • 我们每个人的角色和职责是什么?
  • 如何分配和管理任务?
  • 我们的工作流程和通信方式是什么?
  • 我们如何决定和解决问题?

针对这些问题,我们有一些常用的应对策略:

  • 生命地图:这是一种让团队成员分享他们的个人历史和经验的方法,让大家更好地了解彼此,建立信任和熟悉度。
  • MBTI:MBTI(Myers-Briggs Type Indicator)是一种性格类型指标,由凯瑟琳·库克·布里格斯和她的女儿伊莎贝尔·布里格斯·迈尔斯在二十世纪中叶创立。这种指标基于荣格的心理类型理论,用于评估个体的性格特质和倾向。通过使用 MBTI,我们可以理解团队成员的个性类型,这有助于增进团队内的理解和接纳。
  • 团建活动:通过组织团队建设活动,我们可以通过共享的经验和挑战来增强团队的凝聚力。俗一点,喝点小酒不错,不俗一些,可以一起搞点事情,比如一起解决某个问题。
  • 新成员欢迎仪式:通过举行欢迎新成员的仪式,可以让新成员感到被接纳和重视。
  • 团队画像:提供一个框架,帮助团队成员理解和识别团队整体特征、动态和关系的工具。它可以是一幅图像,一张图表,或者一个模型,描绘出团队的结构,成员的角色,团队的目标,以及团队中的关系和互动等。

2.1.2 激荡阶段

在激荡阶段,随着团队成员开始表达个人观点,冲突可能会开始出现。团队成员可能会对团队的目标、任务分配、工作方法或团队的领导产生分歧。这个阶段可能会有所挫折,但也是团队发展的重要阶段,因为它可以帮助清晰地定义团队的方向和结构。

在此阶段,主要解决的问题是团队内部的冲突和分歧。团队成员可能会对团队的目标、工作方式或他们在团队中的角色产生分歧。这个阶段要解决的问题包括:

  1. 职责和角色的定义:团队成员对自己的角色和职责是否有清晰的认识?是否存在角色冲突或不清晰的地方?

  2. 决策制度:团队有明确的决策流程吗?谁有权做重要决定?团队成员是否对这一流程感到满意?

  3. 沟通效率:团队的沟通是否畅通?是否存在信息传递不准确或不完全的情况?

  4. 冲突解决机制:团队内部出现冲突时,有明确的解决机制吗?成员们是否知道如何提出和解决问题?

  5. 团队文化和价值观:团队的价值观是否明确?成员们是否接受并认同这些价值观?

  6. 信任和尊重:团队成员之间是否存在足够的信任和尊重?是否有开放的、支持性的环境,让成员们能够表达自己的观点和感受?

  7. 团队合作:团队成员是否能有效地合作?是否有明确的工作流程和配合机制?

针对这些问题,我们有一些常用的应对策略:

  • 团队委任状:通过明确团队的目标、角色和工作方式,可以帮助团队达到一致。
  • 团队原则:团队成员共同确定的行为准则和期望,这有助于他们更有效地协作。
  • 1 对 1会议:通过私人会议,可以促进直接的沟通和反馈,增强信任和理解。
  • 情感银行:通过积极的行为和互动,可以建立和保持信任,这是团队协作的重要基础。
  • 处理冲突:使用各种冲突解决策略来处理团队内部的分歧和冲突。
  • 建设性反馈:团队成员需要学习如何提供和接受反馈,这对改进工作效率和团队关系至关重要。
  • 双赢思维:鼓励团队成员寻找既能满足所有人需要又能满足个人需求的解决方案。

2.1.3 规范阶段

在规范阶段,团队成员开始解决在激荡阶段出现的冲突,并开始建立更深的相互理解和协作。团队成员开始对团队的目标、角色和工作方式达成一致。团队凝聚力增强,团队成员开始更加尊重彼此,建立更强的关系。

在此阶段,主要解决的问题是团队的凝聚力和工作方式。团队成员开始形成一种共享的工作方式和行为准则。这个阶段要解决的问题包括:

  1. 如何建立并维护有效的团队规则和行为规范?
  2. 如何设计和实施有效的沟通机制以保证信息的准确及时传递?
  3. 如何提供具体且有效的反馈,促使团队和个人的持续发展?
  4. 如何监控和调整团队的工作效果以及内部的关系和氛围?
  5. 当团队或个人取得成就时,应如何进行有效的庆祝和认可以提高团队的凝聚力和动力?

针对这些问题,我们有一些常用的应对策略:

  1. 创建并传播团队原则和规则:建立清晰、明确的团队原则和规则是创建健康团队文化的关键。这些原则和规则应该包括团队的使命、价值观、行为标准以及决策流程等内容。所有团队成员都应参与到创建过程中来,这样可以确保这些原则和规则得到大家的认同。一旦原则和规则确定,就需要通过各种方式(比如团队会议、内部通讯等)在团队中进行传播,并在日常工作中持续实施和维护。

  2. 提供及时的反馈并处理冲突:反馈是提升团队效率和效果的重要工具。建设性反馈应该是具体的、积极的,旨在帮助团队成员改善工作效果和个人发展。1 对 1的沟通机制可以提供一个私密的环境,让团队成员能够分享他们的观察、想法和感受。如果出现冲突,应立即进行处理。处理冲突的过程应以理解和解决问题为目标,避免指责和争吵,寻求双赢的解决方案。

  3. 庆祝成功和成就:庆祝仪式是提高团队士气和增强团队凝聚力的有效方式。当团队或团队成员达到一定的目标或取得了显著的成就时,应进行适当的庆祝和认可。庆祝的方式可以多种多样,比如组织团队聚餐、颁发证书或奖杯、公开表扬等。重要的是,庆祝应该是真诚的,要让团队成员感到他们的努力和贡献得到了认可。

2.1.4 执行阶段

这是团队发展的最后一个阶段,团队已经达到了高效运作的状态。在这个阶段,团队成员能够自我管理,解决冲突,并且能够有效地完成任务。团队的目标已经很清晰,所有的团队成员都对此有深入的理解,他们都为达成这个目标而努力工作。

在此阶段,主要解决的问题是团队的效能。团队已经形成了一种有效的工作方式,并且能够高效地完成任务。这个阶段要解决的问题包括:

  • 如何保持和提高团队的效能?
  • 如何适应和应对新的挑战和变化?
  • 如何确保每个人都能持续地学习和发展?

针对这些问题,我们有一些常用的应对策略:

  • 教练技术:通过使用教练技术,可以帮助团队成员提高他们的技能和效率,从而提高团队的效能。
  • 更新团队规则:团队的发展和变化可能需要我们更新团队的工作方式和期望。
  • 授权:团队领导人可以让团队成员有权做出决策,这样他们能更好地完成任务和承担责任。

2.1.5 休整阶段

这是 Tuckman 和 Jensen 后来添加的阶段。在这个阶段,项目或任务完成后,团队开始解散。团队成员可能会对团队的解散感到不安,尤其是当他们在团队工作中建立了强烈的归属感和相互依赖时。这个阶段的关键是确保团队的努力和成果得到认可,同时支持团队成员进行过渡。

在此阶段,主要解决的问题是团队的结束和转变。当团队的任务或项目结束时,团队可能需要解散或进行重组。这个阶段要解决的问题包括:

  • 如何处理团队成员的情绪和反应?
  • 如何确保团队的知识和经验能够被保留和传递?

需要注意的是,这个模型并不是严格线性的,团队可能会在不同的阶段之间来回移动,甚至可能会跳过某些阶段,或者同时具备两个或多个阶段的特点。

2.2 领导者的成长阶段

以上是团队的发展过程,对一个团队的管理者来说,也有一个类似的发展过程,用《礼记·大学》中我们特别熟悉的一句话来概括就是:「修身齐家治国平天下」。这是一句讲自我修炼,一生成就的四个阶段,将其映射到团队领导者的成长上看,也是适用的。

  1. 修身(个人): 在这个阶段,重点是发展个人能力。这包括技术知识、专业技能、时间管理、沟通、解决问题的能力等。个人也需要建立自我驱动和自我学习的习惯,这样他们可以不断地学习新的技能和知识。

  2. 齐家(团队): 当从个人转向团队的角色时,需要发展一种新的技能集。这包括领导力、决策能力、团队建设、冲突解决、激励和教育团队成员等。领导者需要从个体视角转向集体视角,思考如何提高团队的整体效能,而不仅仅是提高个人的产出。

  3. 治国(组织): 当领导者从团队管理转向组织管理时,他们需要开始考虑更为复杂的问题。这包括组织战略、组织结构、文化建设、财务管理、风险管理等。领导者需要考虑如何建立和维护一个高效、稳定、健康的组织。

  4. 平天下(行业/社会): 在这个阶段,领导者需要考虑他们的组织如何影响更大的社会和行业环境。这涉及到公共政策、行业标准、社会责任等问题。领导者需要考虑如何利用他们的影响力来推动行业的发展,以及如何通过他们的决策和行动来产生积极的社会影响。

每一个阶段都需要领导者具备不同的技能和认知,领导者需要根据不同的角色和责任来适应和发展。

3 有效的团队管理

有效的团队管理是指通过一种系统化的方式,领导一个团队,运营之,以实现既定的目标。这包括以下几个关键要素:

  1. 明确的目标:团队需要有一个明确和共享的目标或愿景,以指导其工作和决策。

  2. 卓越的领导:团队需要有一个或多个能够激励和指导团队的领导者。这包括设定明确的期望,提供反馈,处理冲突,以及帮助团队应对挑战。

  3. 明确的角色和责任:每个团队成员需要明确他们的角色和职责,以确保所有的任务都能得到有效的处理。

  4. 良好的沟通:团队需要有良好的沟通机制,以促进信息和想法的分享,解决问题,以及提高团队的协调性和效率。

  5. 有效的系统和流程:团队需要有一套有效的系统和流程来支持其日常运作。这可能包括决策制定的流程,任务管理的工具,以及反馈和评估的机制等。

  6. 良好的团队关系:团队成员之间需要有良好的工作关系,以提高团队的凝聚力和满意度。

将其概括一下,就是包括方向,领导力、角色分工、系统、沟通和关系六个方面。这六点是基础,在此基础上,有效的团队管理也需要有适应性和灵活性,以应对不断变化的环境和挑战。这可能包括调整团队的目标,改变工作方法,以及提供持续的学习和发展机会等等。接下来我们从这六个方面来阐述如何有效的管理团队。

3.1 方向

带团队如大海行舟,方向是第一要务。为什么要有方向,因为当所有人都对方向有共同的理解,并且同意并承诺支持这个方向时,他们有更大概率的有效地合作,并积极地向目标前进。

方向主要关注三个问题:团队的目标和战略是否明确?每个团队成员是否理解并认同这些目标和战略?团队的目标是否需要随着环境的变化进行调整?

方向在团队管理中非常重要,原因有以下几点:

  1. 共享目标:一个明确的方向为团队提供了一个共享的目标或愿景。这可以帮助团队成员理解他们的工作为何重要,以及他们的努力如何帮助团队实现其目标。

  2. 决策指导:方向也提供了一个框架,用于指导团队的决策和优先事项。团队成员可以根据团队的目标来决定他们应该如何分配资源,选择哪些任务,以及如何执行这些任务。

  3. 提高凝聚力:当团队成员对团队的方向有共同的理解和认同时,他们可能会感到更加投入和满足。这可以提高团队的凝聚力和满意度。

  4. 提供动力:明确的方向也可以为团队提供动力。团队成员知道他们正在追求的目标,了解他们的工作如何贡献于这个目标,这可以激发他们的积极性和热情,将从被动执行任务变为主动推动目标的实现。

  5. 测量进度:最后,方向可以帮助团队测量其进度和成效。通过比较当前的状态和目标,团队可以了解他们在实现目标方面的进度如何,以及他们是否需要改变策略或方法。

在我们做战略沟通,或者在探讨方向时,需要考虑以下三个方向:

  • Why:为什么我们要这样做?这通常涉及到组织的使命、愿景或核心价值观。
  • What:我们要做什么?这是具体的目标或战略。
  • How:我们如何做到这一点?这包括实施战略的具体步骤或方法。

要想达成方向的一致,有许多方法,我们常用的方法如下:

  1. 一对一讨论: 领导者可以与每个团队成员单独会面,讨论并达成共识。

  2. 集体共创: 可以组织工作坊或大会,让所有人都有机会参与讨论和决策。

  3. 单方宣导: 在某些情况下,领导者可能需要明确阐述他们的观点,并期望团队成员接受和支持。

无论选择哪种方式,最重要的是确保每个人都有机会表达他们的观点,并且他们的观点被认真考虑。这样才能保证达成真正的共识,而不仅仅是表面的一致。

3.2 领导力

经常有人说「领导者决定了团队的基因」,这说明领导者的行为、决策、态度、价值观和领导风格对团队的特质和行为有着重大影响。就像基因决定了生物的特性一样,领导者的特质和行为也可以决定团队的「特性」。其主要体现在以下 4 个方面:

  1. 设定价值观和期望:领导者通常会设定团队的价值观和期望,这些价值观和期望形成了团队文化的基础。例如,如果领导者重视创新和风险承受能力强,那么团队可能也会发展出一种鼓励尝试新事物和接受失败的文化。

  2. 塑造行为和决策:领导者的行为和决策模式对团队成员有示范作用。例如,如果领导者以开放和透明的方式进行决策,那么团队成员也可能会采取同样的方式。

  3. 激励和驱动:领导者通过他们的激励策略影响团队的动力和表现。如果领导者激励团队成员追求卓越和持续改进,那么这可能会成为团队的一个核心驱动力。

  4. 选择和发展人才:领导者在招聘和发展人才方面的决策也会影响团队的特性。例如,如果领导者倾向于招聘具有强烈团队精神和合作能力的人,那么整个团队可能也会具有这些特性。

在领导者改变团队的过程中,领导的领导力是一个非常重要的因素,在团队管理和组织成功中扮演着重要的角色。

当你在管理岗位上时,看看以下的一些陷阱你有没有遇到过:

  1. 过度放权或忽视领导职责:领导者有时可能会过度放权,以至于放弃了领导权力,并忽略了团队管理的各种要素,如ICP/SCP/PCP(Input/Control/Process)。可能过于乐观地认为,只要给团队足够的自由,一切都会按计划进行。然而,这是一种误解。领导者不仅要放权,还要根据团队的成熟度正确使用权力,以及情景管理。我们应该与团队一起工作,帮助解决难题,而不是完全放手。

  2. 以自我为中心,忽视团队需求:领导者可能过于关注自己的想法和目标,而忽视了团队的需求和感受。可能把人性假设得太理想化,缺乏对团队的爱和耐心。领导者应该以团队的理解和需求为出发点来进行沟通和赋权。他们也应该愿意为提高团队的能力付出努力,包括必要时进行人员调整。

  3. 过度依赖自我思考,忽视团队输入:领导者可能会认为自己已经清楚了解了所有问题,结果导致团队成员只是执行者,没有参与决策的机会。这种做法可能会阻碍团队成员的发展和创新。领导者应该把团队成员视为平等的伙伴,愿意花时间进行沟通和同步,并相信他们具有巨大的潜力。

  4. 过度参与执行,忽视领导职责:有些领导者可能过于关注执行任务,以至于忘记了他们的领导职责。他们可能会在周会上跟进每项任务,但忽视了作为领导者的责任,包括设定战略,提供支持,和激励团队。领导者应该意识到他们是团队的扩大器,他们的主要职责是领导和赋能,而不仅仅是执行任务。

  5. 避免冲突:领导者可能会避免处理团队之间的冲突,以希望保持和谐。然而,未解决的冲突可能会升级,影响团队的士气和效率。领导者应该勇于面对和解决冲突,而不是避开它。

  6. 过度承诺:有些领导者可能会对团队成员或者与他们合作的人过度承诺,这可能会导致资源过于紧张,或者在无法达到承诺的时候失去信任。领导者应该明白他们的能力范围,并理性地做出承诺。

  7. 忽视个人发展:领导者可能过于专注于团队的目标,而忽视了他们自己的个人成长和发展。这可能导致他们的技能和知识变得过时,无法有效地领导团队。领导者应该意识到,他们自己的发展同样重要,他们需要不断地学习和提高。

  8. 忽视人才培养:领导者可能过于关注短期的目标,而忽视了人才的培养。这可能导致团队的长期发展受到限制。领导者应该投资于人才的培养,为团队的未来做好准备。

  9. 抵制变革:领导者可能对变革持防御态度,尤其是当这些变革可能影响他们的权力和舒适区时。然而,变革是必要的,领导者应该积极接受并驱动变革,以变化应对不断变化的环境

每个领导者都可能面临这些陷阱,关键在于认识到它们,然后采取行动来避免或者克服它们。避免这些陷阱需要领导者具有深度的自我认识,对团队的尊重和理解,以及对长期目标和策略的清晰理解。

那么,领导力是什么?

领导力是一种复杂的能力,包含多个层面。领导作为团队绩效的放大器,他们的作用和影响占团队成功要素的 70%,他们的角色既不是独自承担所有工作,也不是放任不管,而是负全责。领导力有一个基本框架,可以分为以下 6 个层面:

  1. 战略层面:这涉及到制定和实施长期目标和策略,以及识别和适应外部环境的变化。领导者在这个层面需要展示出前瞻性和战略性思考。

  2. 人际层面:这涉及到与团队成员、客户、合作伙伴等各方进行有效的沟通和协作。领导者在这个层面需要展示出强大的沟通、协调和冲突解决能力。

  3. 任务层面:这涉及到设置和实现具体的目标,以及管理和分配资源。领导者在这个层面需要展示出强大的组织、规划和执行能力。

  4. 发展层面:这涉及到培养和发展团队成员,以及自我学习和成长。领导者在这个层面需要展示出教育、指导和激励他人的能力,以及开放性和学习意愿。

  5. 情绪层面:这涉及到理解和管理自己和他人的情绪。领导者在这个层面需要展示出较高的情商,包括自我意识、自我管理、社会意识和关系管理。

  6. 变革层面:这涉及到驱动和管理变革,以适应不断变化的环境。领导者在这个层面需要展示出创新思维、灵活性和适应性。

换成宝洁的 5E 领导力模型来描述,即:高瞻远瞩(Envision),凝聚他人(Empower),发展他人(Encourage),激励人心(Educate),和高效执行(Evaluate)。

  1. 高瞻远瞩(Envision): 领导者需要有构建愿景的能力,能够给整个组织指明方向,激发团队内心的激情。好的愿景应该符合外部市场、用户和业务现阶段的需求,有足够的力量解决业务目前面临的根本问题,并且不只是口号,而要有实际的行动路线。要设计一个好的愿景,可以参照行业标杆,找出关键路径,建立 KPI。领导者需要清晰、有说服力地表述这个愿景,并展示出他们如何带领团队实现这个愿景。

  2. 凝聚他人(Engage): 领导者需要将员工、同事、客户甚至老板纳入自己的愿景达成梯队,让每个项目的所有参与者都把这个项目当成重要的项目。在这个过程中,需要保持开放的沟通,同步进展和规划,让每个人都有机会了解项目的全局情况并参与其中。这包括倾听他人的观点,尊重和理解他们的需求,以及鼓励他们在实现共同目标的过程中扮演积极的角色。

  3. 发展他人(Enable): 领导者需要确保团队有信心、有能力、有精力来做好自己的那部分工作。这包括提前告知工作需求和意义,提供全面的信息,及时提醒需要的方向调整,以及在可控的范围内给予团队犯错和改进的机会。

  4. 激励人心(Energize): 无论困境逆境,领导者需要保持团队的斗志。这可以通过保持积极的态度,使用幽默来化解压力,及时庆祝小胜利,反馈表扬,以及了解并回应每个人的想法来实现。

  5. 高效执行(Execute): 领导者需要保证任务的完美执行。这包括梳理工作,做好分配和排期,让每个人都有机会参与,不遗余力地寻求帮助,以终为始,及时检查里程碑,以最终体验为目标。

作为一名领导者,需要持续的自我反思和对团队的深深关爱,时刻反思 ,时刻反思自己的行为和决定,以确保它们都是以团队的最佳利益为导向的。这意味着你需要放下自我,优先考虑团队的需求和利益。在决策时,你需要考虑的是决策对团队的影响,而不仅仅是对自己的影响。此外,你需要建立一个开放和透明的环境,鼓励团队成员提供反馈,以帮助你更好地理解他们的需求和期望。

同时许以 严格的爱。严格的爱是建立在对标准、规则和期望的坚持上的。这意味着你需要设定明确的期望,使团队知道他们需要达到什么样的标准。你也需要坚持规则和程序,确保所有的工作都按照既定的方式进行。同时,你需要提供及时和具有建设性的反馈,帮助团队成员理解他们需要如何改进。在这一过程中,你也需要给予团队成员必要的支持和关心,以帮助他们达到这些标准。

如 Python 中的「鸭子模型」:如果一个对象能够完成你需要的操作(也就是它“走起来像鸭子,叫起来像鸭子”),你就可以把它当作鸭子来对待(即不在乎它的真实类型或类别)。

如果你像领导者一样思考,像领导者一样讲话,像领导者一样行动,那你就是一个合格的领导者。

3.3 角色和分工

在有效的团队管理中,角色和分工十分关键。明确的角色和分工可以确保团队的高效运作,减少重复工作和冲突,同时也能让每个团队成员明确自己的责任和期望。

首先,我们需要根据团队的战略和核心任务来规划组织结构,即「先岗再人」的原则。这一步包括:

  1. 基于战略和核心任务的组织规划:在招募团队成员之前,我们需要首先明确团队的目标和任务,以确定所需的角色和这些角色在组织中的位置。

  2. 任务性质和管理范围的团队分工和分层:根据任务的性质和管理范围来决定团队的结构和角色分配。这样可以帮助每个人清楚地理解他们的职责和与其他团队成员的关系。理解团队分工和分层就像是在打造一支足球队。首先,你需要了解比赛的规则和每个位置的特点(任务性质)。例如,守门员的任务是防守,而前锋的任务是进球。然后,你需要决定哪个球员去打什么位置(团队分工)。这取决于他们的技能和才能,以及他们与其他球员的协作方式。你还需要了解每个位置在球场上的位置(管理范围)。例如,队长可能需要管理全队的战术,而边锋可能只需关注自己的区域。最后,你需要明确哪些位置是领导位置,哪些位置是执行位置(团队分层)。例如,队长和教练需要做战略决策,而前锋和中场球员需要执行这些决策。

  3. 明确关键岗位:我们需要确定哪些是关键岗位,这些岗位在实现团队目标和任务上起着决定性的作用。

接着,我们要遵循「强将精兵高产出」的效率原则,以提高团队的效率:

  1. 强将是核心:强将被视为团队或组织的核心,因为他们拥有推动力、领导力、专业知识和技能,同时他们的行为和态度常常被其他团队成员视为模范。他们不仅能推动团队前进,提供专业的解决方案,还能通过他们的领导力引导和协调团队的工作。另外,他们的存在为团队提供了稳定性和信任,特别是在面对挑战的时候,他们的冷静和果断能帮助团队保持稳定并继续前进。

  2. 精兵至关重要:精兵是团队或组织的重要组成部分,他们的专业技能、执行力、稳定性和团队协作能力对于团队的成功起到了关键的作用。他们不仅能以高效和质量的方式完成任务,提升整个团队的效率,也通过他们的纪律性和可靠性为团队提供了稳定性。同时,他们的协作精神让他们能够与团队中的其他成员携手合作,共同推动团队的进步。并且,他们的专业性和忠诚度也使他们成为未来领导角色的有力候选人。

最后,当团队规模越大,结构越复杂时,我们更需要重视核心团队的建设和分层管理,以形成像涟漪一样向外扩散的效应,拆解下来分为三个关键点::

  1. 核心团队的建设:随着团队规模的扩大和结构的复杂化,建设一个强大的核心团队变得越来越重要。核心团队的成员应具有关键的角色或岗位,并且能够对组织的目标和决策产生直接影响。

  2. 分层管理:应使用分层管理的方式来应对团队规模的增长和结构的复杂化。每一层都有自己的职责和管理者,以保持信息流和决策过程的效率。

  3. 涟漪效应:一个强大的核心团队和有效的分层管理系统可以在整个组织中产生积极的影响,就像在水面上投下一颗石子会产生涟漪一样。可以提高整个团队的效率和生产力。

随着团队规模的增长和结构的复杂化,我们应更加重视核心团队的建设和分层管理,以实现有效的组织管理和协同工作,从而产生涟漪效应,提高整个团队的效率和生产力。

3.4 系统

这里的所说的系统是一种整体观念,强调整体大于部分之和,部分之间的互动关系对整体的性质和功能有决定性的影响。以系统观来解决问题

系统可以理解为一套组织的流程、规则和机制,这些流程、规则和机制协同工作,以实现组织的特定目标。系统观强调整体性和协同性,而不仅仅是单个流程或机制。

有效的团队管理中的系统,包括了流程(如工作流程、决策流程)、规则(如政策、规章制度)和机制(如奖励机制、反馈机制)。这些元素相互关联,共同构成了一个整体,以实现团队的目标。系统的设计和实施主要是为了解决团队管理中的各种问题,如效率低下、信息流通不畅、决策错误、员工满意度低、团队目标达成困难等问题。

系统中的各部分都建议遵循目的、痛点、方案、行动的逻辑来走,这其实也就是我们之前聊过的解决问题方案中的第二类方法,深度分析类问题。

系统的建设和实施需要以下几个步骤:

  1. 明确目的:首先,需要明确系统的目的,即希望通过系统解决什么问题,实现什么目标。

  2. 识别痛点:然后,需要识别和分析现有的问题和痛点,这将为系统的设计提供依据。

  3. 制定方案:根据目的和痛点,制定相应的流程、规则和机制。这可能包括重新设计工作流程,制定新的政策,或设置新的奖励机制等。

  4. 实施行动:将方案落实到实际行动中,这可能需要培训员工,改变工作方式,或调整资源分配等。

  5. 持续优化:在实施过程中,需要收集反馈,评估效果,然后根据结果进行调整和优化,使系统能够更好地服务于团队的目标。

这里的系统是指一系列的流程、规则和机制。今天我们主要简单聊一下流程和运营机制。

3.4.1 流程

对于流程建设,它的核心并不仅仅是管理者制定内部规章的过程,而更是一个机会,一个可以总结和提炼团队内部的最佳实践,同时也是管理者对于自身权力的一种约束。流程建设是将团队实践中的隐性知识沉淀为明文规定的最佳工具。

流程本质上是人与任务的有效组合。 它是为了完成特定目标或任务,人们进行的一系列逻辑相关的,跨时间和空间的活动集合。流程是将投入转化为产出的方法,通常包含三个组成部分:投入、转换活动和产出。具有系统观点的人会将组织视为一个流程,而不是各自独立的部门。

流程中的专责化的含义并不是专门的机构或者人员来负责团队所有的标准流程建设,而是谁负责工作,谁就应该负责流程的建设工作。流程建设是一种实践性的工作,源于实际工作,服务于实际工作。如果由专职人员负责流程,可能会导致一线管理者在责任上有所缺失。

流程是一个过程性的制度,需要在过程中发现问题,解决问题,并随着业务的发展和变化进行持续迭代。当某些流程不再适用时,我们需要主动发起优化,按照更优的方向优化流程,精简冗余的流程,追求极简。

一个组织实际上是由各种流程串联起来的。这些流程可能并不都是书面的,但一定隐藏在团队的常规操作和员工的习惯中。组织的工作效率在很大程度上受到流程的影响,组织的运行本质上就是业务流程的运行。

每个管理者都应该学会建立和优化流程。建立流程的目的是高效管理业务,让大家可以按照流程解决问题,尤其是跨团队的问题,而不是寻找人来解决;每件事情都可以按照流程来解决,而不是频繁的开会沟通。那么如何来构建有效的流程呢?

  1. 从实际出发:流程建设应该是为了解决实际问题或提高某个事情的效率,而不是为了流程本身。比如,如果在人力调度问题上需要频繁地找各级领导开会讨论,明显存在效率问题。为此,我们可以制定一个人力调度的流程,明确需要提供的信息,哪些人需要讨论,哪些人需要审批等。在此之后,大家可以按流程执行,无需频繁地找各级领导开会。

  2. 灰度执行:流程建设完成后,不应立即全面实施,而应该先在某个部门或业务部门进行试点,发现可能存在的问题,如流程的顺序、时限等,然后有针对性地对流程进行优化和完善,再逐步扩大试点范围,最后全面实施。这个逻辑和我们服务灰度的逻辑是一致的,尽量减少新变化的影响范围,使变化更好地落地。

  3. 持续迭代:流程全面实施一段时间后,需要对流程进行复盘和回顾,而不是一旦流程建立就不再关注。例如,如果公司是从事 toC 业务,现行的研发流程是双周迭代,运行了一段时间。但现在,公司要转向 toB 业务,这时候就需要重新审视双周迭代的流程,看是否需要优化,以满足新的业务需求。

在流程的构建过程中需要注意不是所有的事情都需要建立流程,关键的流程能够大大提升团队的效率,在出现以下的情况时,我们就需要注意是否要创建新的流程或者优化流程了:

  1. 刻意跟进的重要不紧急(突破创新)的事情
  2. 多方共同参与,提升协同效率(流程/角色/决策等需要配置)
  3. 日常的重复性工作

流程建设是一个动态的过程,需要管理者从实际工作出发,灰度执行并持续迭代,以达到提升工作效率,解决问题的目标。

3.4.2 运营机制

运营机制是一套规范团队运作的方法和流程,它解决的是如何有效管理和协调团队资源,以实现团队的目标。它的本质是制度和流程,它旨在提高团队的效率,减少混乱,提升团队的协作能力,以及适应环境的变化。

在有效的团队管理中,以下是关键的运营机制:

  1. OKR 跟进:OKR(Objectives and Key Results)是一种目标设定框架,它明确了团队的目标(Objectives)和衡量目标实现程度的关键结果(Key Results)。团队需要定期跟进 OKR,以确保目标的实现。这个过程包括定期检查关键结果的进展,以及调整策略以更好地实现目标。

  2. 常规基础工作:这是团队日常运营的重要组成部分,包括任务分配、项目管理、报告编制,以及其他常规的管理工作等。这些工作是确保团队正常运行的基础,也是团队能够有效执行其职能和达成目标的基础。

  3. 处理突发问题/bug:在日常运营中,团队可能会遇到突发的问题或者 bug。团队需要有处理这些问题的能力,这包括快速定位问题,制定解决方案,并执行修复。这种能力不仅可以避免问题对业务造成影响,也是提升团队解决问题能力的重要方式。

除此之外,还有关于团队、领导和反馈的一些机制,详细内容在前面讲过,这里带一下:

  1. 明确的角色和职责:一个高效的团队需要有一个核心团队,其中每个成员的角色和职责都应该明确。这可以确保每个人都明白自己的工作是什么,以及如何与其他团队成员协作。明确的角色和职责,可以提高团队的协作效率,也可以有效地避免工作的重复和遗漏。

  2. 团队领导的责任:团队的领导者(Owner)是决定团队成功的关键因素。他们需要对团队的成功负责,这包括确定和维持团队的战略方向,做出关键的判断和决策,以及协调资源以支持团队的工作。适当的领导可以激发团队成员的潜力,驱动团队的创新和进步。

  3. 定期的跟进和反馈:团队需要进行定期的跟进和反馈,这包括周度跟进和月度跟进,以及在关键节点的洞察。这些跟进和反馈可以帮助团队了解他们的进展,发现问题,并在需要的时候做出调整。定期的跟进和反馈,也是团队持续改进和学习的重要机制。

通过以上这些运营机制,团队可以确保目标的实现,日常工作的正常推进,以及在遇到问题时能够有效地解决。这也可以帮助团队建立一个明确的定位和团队精神,使成功成为一群人共同的事情。

从流程观到系统观,是一个从关注单个流程或机制,到关注整个系统如何协同工作以实现目标的转变。这需要明确目的,识别痛点,制定并实施方案,最后通过收集反馈和持续优化,以实现系统的最大价值。

有系统观的团队管理,能使团队运行更高效、更有序,有助于提高工作效率,减少错误,提升员工满意度,最终实现团队的目标。同时,通过系统的反馈机制,可以不断学习、优化和改进,从而实现组织的持续改进和发展。

3.5 沟通

在团队管理中,沟通是一个至关重要的组成部分。沟通是团队成员之间交换信息、观点、想法和感受的过程。沟通不仅仅是说出自己的想法,更重要的是倾听和理解他人的观点。在沟通过程中,我们应首先接纳对方的观点,然后再去理解。这样的沟通方式可能更容易促成有效的合作。

沟通从种类上来分,可以分为语言沟通或非语言沟通、口头沟通和书面沟通、正式沟通和非正式沟通,向上沟通、向下沟通和平级沟通等。

  • 语言沟通或非语言沟通是从沟通的载体来区分,语言沟通包括书面沟通和口头沟通,非语言沟通包括面部表情,身体语言等;
  • 口头沟通和书面沟通是从语言的载体来区分,口头沟通有会议、面谈、演讲、电话等,书面沟通有电子邮件、信函、刊物(电子和非电子)、报表、通讯录等传递书面文字的手段。口头沟通的特点是快速传递和反馈,但是可能传递过程中会失真,书面沟通更偏向于单向沟通、一般会缺少反馈且耗时较多。
  • 正式沟通和非正式沟通更多的是在组织层面,通过是否具有系统性和结构性来区分。正式沟通是从组织所规定的路线和程序进行信息的传递和交流,如组织间的信函、内部的文件、汇报、会议等等;非正式沟通一般是线下的一些闲聊、喝酒时的吹牛以及一些小道消息等。
  • 向上沟通、向下沟通和平级沟通,这里主要是以组织层级间沟通的对象为区分,以方向表述对象群体。向上沟通一般是指向你的老板沟通,即所谓的下情上达;向下沟通是指向你的下属沟通,即所谓的上情下达;平级沟通是指横向的沟通,如一些平级的部门负责人之间的沟通,以交接意见,互助互赢为主。

沟通的主要目的有几个方面。首先,沟通可以帮助团队的成员对团队的目标、任务、策略和进度有清晰的理解,这需要我们寻找合适的沟通「切入点」。其次,沟通也可以帮助解决可能出现的误解或冲突,这需要我们正确对待和处理抱怨。最后,沟通可以增强团队的凝聚力和合作精神,这需要我们建立完善的内部沟通机制,消除沟通障碍,确保信息共享,引导团队成员之间进行充分的沟通。

沟通在团队管理中的重要性不可忽视。首先,良好的沟通可以加强团队的协作效率,帮助团队成员更好地理解和接受团队的目标和策略。其次,通过沟通,我们可以及时发现和解决问题,避免小问题演变成大问题。此外,通过有效的沟通,我们可以建立一个开放、透明的工作环境,增强团队的凝聚力和合作精神。

有效的沟通方法包括以下几个方面:

  1. 定期的团队沟通:可以通过团队会议,一对一的交谈等方式进行定期的沟通,以确保团队成员对团队的目标和策略有清晰的理解。

  2. 寻找沟通的「切入点」:寻找合适的沟通「切入点」可以使沟通更为有效。这可能是一个共享的目标,一个共同关注的问题,或者一个相关的话题。

  3. 消除沟通障碍:消除沟通障碍,确保信息的准确、及时和有效的传递。这可能包括明确的表达,有效的倾听,以及建立开放和透明的沟通环境。

  4. 处理抱怨:对于抱怨,我们应该先理解抱怨的原因,然后提供有效的反馈,最后寻找和实施解决方案。

对于团队管理来说,需要建立有效的沟通机制。以下是一些常见的步骤和建议:

  1. 明确沟通的目标:首先,我们需要明确沟通的目标,这可以帮助我们确定沟通的内容和方式。比如,我们的目标是提高团队的协作效率,还是解决具体的问题,或者增强团队的凝聚力。

  2. 设定沟通规则:我们需要设定明确的沟通规则,这包括沟通的时间,方式,频率,以及参与的人员。规则需要根据团队的具体情况进行设定,比如,团队成员的地理位置,时间区域,工作方式等。

  3. 选择合适的沟通工具:我们需要选择合适的沟通工具,以支持我们的沟通活动。这可能包括面对面的会议,电话,电子邮件,即时消息,视频会议,项目管理工具等。我们需要根据团队成员的需求和习惯,以及沟通的内容和目标,选择最合适的工具。

  4. 提供沟通培训:我们可以提供一些沟通培训,以帮助团队成员提高他们的沟通技巧。这可能包括如何清晰的表达自己的观点,如何有效的倾听他人的观点,如何解决沟通中的冲突和误解等。

  5. 鼓励开放和透明的沟通:我们需要鼓励开放和透明的沟通,让团队成员感到他们的观点和感受被尊重和接纳。我们可以通过设定安全和尊重的沟通环境,以及提供反馈和建议的机会,来实现这一点。

  6. 定期评估和改进沟通机制:我们需要定期评估我们的沟通机制的效果,以便进行必要的改进。我们可以通过收集和分析沟通的数据,以及听取团队成员的反馈和建议,来进行评估和改进。

通过这些步骤,我们可以建立一个支持团队目标和策略,增强团队凝聚力和协作精神,以及应对变化和冲突的沟通机制。

3.6 关系

这里的关系不是指拉帮结派,而是涉及到团队成员之间的相互作用、感情、理解和信任。这些关系能够影响团队的凝聚力、合作效率和整体的工作环境。这包括团队成员如何沟通、如何协作、如何处理冲突,以及他们对彼此的信任和尊重程度。有效的团队关系不仅涉及到个体与个体之间的关系,也涉及到个体与团队,以及团队与其他团队之间的关系。

团队关系对于有效的团队管理来说非常重要,其意义主要表现在以下几个方面:

  • 提高效率:当团队成员之间的关系良好时,他们更可能愿意共享信息,协作解决问题,这可以大大提高团队的工作效率。

  • 增强凝聚力:良好的团队关系可以增强团队的凝聚力,使成员感到他们是团队的一部分,愿意为团队的目标努力。

  • 提高满意度:当团队成员在工作中感到被尊重和被理解时,他们的工作满意度也会提高,这对于保持团队的稳定性和吸引优秀的人才非常重要。

  • 创新和解决问题:良好的关系可以促进不同观点的碰撞,从而激发创新和解决问题。

建立良好的团队关系需要投入时间和努力,以下是一些有效的策略:

  • 建立信任:信任是关系的基础,需要通过遵守承诺、公平对待所有成员、开放和诚实的沟通以及接受反馈来建立。
  • 提供支持:团队领导应提供必要的资源和支持,帮助团队成员成功完成任务,同时也要关注他们的职业发展。
  • 鼓励开放沟通:团队领导应鼓励开放、诚实和尊重的沟通,以确保所有成员都能够表达他们的观点和感受。
  • 解决冲突:团队领导需要具备解决冲突的能力,以及确保冲突的有效解决。

一旦建立了良好的关系,就需要进行维护。以下是一些有效的策略:

  • 定期沟通:团队领导需要定期与团队成员进行沟通,了解他们的需求和期望,解决可能出现的问题。
  • 公正和一致:团队领导需要公正地对待所有成员,确保所有的决策和行动都是公平和一致的。
  • 承认和奖励:团队领导应该承认和奖励团队成员的努力和贡献,以增强他们的满意度和投入度。

建立和维护良好的团队关系需要团队领导和成员的持续努力。在遇到破坏团队信任感的人,不能留,但用人不疑,疑人不用。团队关系在团队管理中起着关键的作用。通过建立信任、提供支持、鼓励开放沟通和有效解决冲突,我们可以建立和维护良好的团队关系,从而提高团队的效率,增强凝聚力,以及提高满意度。

4 团队有效性的评估和度量

当我们做了一些手段来优化团队管理的有效性,就需要有一个评估和度量的过程。以下是一个基于各种机制的团队系统有效性评估表。其分为五个主要类别:决策与目标设定、沟通与任务分配、报酬与激励、绩效评估、人才管理和日常运营。

1. 决策与目标设定

项目 描述
决策机制 评估团队的决策过程是否清晰、公平且有效。
OKR(Objectives and Key Results)机制 评估团队是否设定了清楚且可衡量的目标,以及这些目标是否与团队和组织的更大目标相一致。

2. 沟通与任务分配

项目 描述
沟通机制 评估团队的沟通是否有效,成员是否感到他们的声音被听到,以及是否有足够的机会进行沟通。
任务分配机制 评估任务是否根据团队成员的技能和兴趣进行分配,以及是否有机会进行新任务和挑战。

3. 报酬与激励

项目 描述
报酬机制 评估团队是否有一个公平和激励的报酬系统,这个系统是否与团队和个人的目标相一致。
激励机制 评估团队是否有有效的奖励和激励制度,以奖励和激励团队成员的努力和成就。

4. 绩效评估

项目 描述
绩效评估机制 评估绩效评估是否根据明确和公平的标准进行,团队成员是否有机会接收和提供反馈。

5. 人才管理和日常运营

项目 描述
人才招聘机制 评估招聘流程的有效性,应聘者的质量,以及新员工的留存率。
人才发展机制 评估是否有定期的技能培训,职业发展的机会,以及员工的满意度和忠诚度。
人才留任机制 评估员工的满意度,留任率,以及离职原因。
流程优化机制 评估工作流程是否清晰,是否有流程优化的机制,以及流程优化的结果。
风险管理机制 评估是否有风险预警系统,团队如何应对风险,以及风险管理的效果。
质量控制机制 评估是否有质量标准,质量控制的结果,以及质量改进的机制。

使用此评估表时,可以为每个项目打分,比如在 1-5 的范围内,其中 1 表示不满意,5 表示非常满意。然后对所有分数进行总结,得出总体评估结果。也可以将这些分数与其他团队或行业标准进行比较,以获得更深入的洞察。

后记

花老师说:你是爱自己还是爱团队?

一言以蔽之:搭班子、定战略、带队伍。

研发管理之基于代码的研发效能度量

在研发管理中,如何准确评估研发人员的效能一直以来都是一个挑战。传统的评估方式大多依赖于观察软性技能的表现,如问题的跟进实时性、反馈的有效性、推动事情的能力,以及解决技术问题的能力。然而,对于研发人员而言,他们的代码质量和效率往往是最直接、最硬性的评价标准。而代码很多时候是看不到的,特别是当团队规模到达一定数量的时候。

代码的质量和开发效率是研发同学工作的核心。好的代码不仅要能完成预设的任务,也要易于理解、修改和测试,以便其他开发者在未来能够维护和改进。代码的质量和开发效率可以直接反映开发人员的技术能力和专业知识。因此对于一个研发管理者来说,要想掌控一个团队的情况,从代码出发,从代码量和代码质量来度量是一个不可或缺的角度。

为何要度量代码?

代码是软件产品的基础,深入理解代码可以帮助我们更好地了解产品的健康状况、性能状况和维护情况。更重要的是,通过深入分析代码,我们可以发现代码中可能存在的问题和改进点,以便提前发现并解决问题,降低项目风险。基于代码的研发效能度量为我们提供了一个量化、可度量的评估标准,从而使我们能够更科学、更有效地管理和优化研发过程和研发分工。

基于代码的度量是什么?

基于代码的研发效能度量是一种通过对代码及代码提交进行深入分析和理解,从中洞察出可能存在的问题和改进点,以提高研发效率和产品质量的方法。这涉及到代码质量分析、代码性能分析、代码测试分析、代码维护性分析以及技术债务分析等多个方面。

从实际落地来说,基于代码的研发效能度量通常涉及到以下几个方面:

  1. 代码质量:这是衡量代码健康状况的重要指标。

    • 代码复杂度:例如,使用圈复杂度(Cyclomatic Complexity)或 Halstead 复杂度(Halstead Complexity)度量代码的逻辑复杂度。
    • 代码规范性:如代码是否遵循了 PEP 8(Python编程规范)或其他语言的编程规范。
    • 代码重复率:如通过工具(如 SonarQube 或 PMD )检测代码的重复部分,计算代码重复率。
    • 用例覆盖率:如使用工具(如 JUnit 和 Cobertura )运行单元测试和集成测试,计算用例覆盖率。
    • 注释覆盖率:SonarQube 等工具可以分析出代码覆盖度
  2. 开发活动:这是了解开发团队工作模式的重要度量。

    • 提交频率:如通过 Github 或其他版本控制系统统计每个开发人员的提交频率。
    • 代码修改频率:如统计某段代码或某个文件被修改的频率,以理解代码的稳定性。
  3. 问题和缺陷:这是评估代码质量问题和风险的关键度量。

    • 缺陷密度:例如,通过错误跟踪系统(如Jira或Bugzilla)统计缺陷数量,然后除以代码行数,计算缺陷密度。
    • 问题解决时间:例如,统计从发现问题到解决问题的平均时间,了解团队的响应效率。

以上就是基于代码的研发效能洞察的主要组成部分。这些度量有助于我们理解代码的健康状况、开发过程的效率,以及代码质量的问题和风险。需要注意的是,这些度量并不能全面反映研发效能,还需要结合具体的项目情况和团队情况进行分析。

基于代码的研发效能度量如何实施

将以上的这些组成部分、时间、人、项目、团队这些结合起来就是一个基本完整的基于代码的研发效能分析系统。

做基于代码的研发效能洞察无非是回答如下的 2 类问题:

  1. 做了什么,做了多少
    • 你的团队做了什么,做了多少
    • 你的团队成员做了什么,做了多少
    • 每个成员在团队中的水平处于什么样的水平,有没有特别突出的(多或少)
  2. 做得怎么样
    • 你的团队的代码质量如何
    • 有没有比较突出(好或坏)的成员
    • 有没有共性的质量问题

要想回答这些问题,基于代码层面,通过代码度量研发的研发效能,影响力产出,代码质量等,拿到客观的数据度量到人、团队、项目。

我们做代码的洞察实施简化后可以有 4 步:

1.引入工具或系统:将代码这个盒子打开,看到度量后的数据。这里当然会有一个问题分析、行业方案对比的过程。

  1. 机制化跟进:需要有一个组织来承接事项,无组织即无成果。结合管理人员的机制化跟进,根据度量的数据和系统的指标,以某个时间间隔来做洞察,发现问题。
  2. 整体洞察:从下往上,形成整体效能的洞察,根据发现的问题,明确代码产出的问题点和能衡量状态的指标。
  3. 复盘:以 3 个月以一个区间来盘点指标和问题,清晰团队/项目的变化。

基于代码的研发效能度量的优势与挑战

当我们引入某些工具或系统来做了基于代码的度量或洞察后,可以得到如下的一些东西:

  1. 全面的代码质量管理:通常能够全面地对代码质量进行管理,包括代码质量分析、代码审查等。
  2. 技术债务管理:通常提供了一种有效的方式来管理技术债务。
  3. 提高团队效率:通过对代码的持续分析和审查,可以帮助团队提高效率,减少错误和问题。
  4. 提供具有洞察力的数据和报告:通常能够提供具有洞察力的数据和报告,帮助团队更好地理解代码质量和研发效能。

以上是一些好的方面,但是也有一些不好的点:

  1. 需要一定的学习和适应:对于新的系统和工具,团队成员可能需要一段时间来学习和适应。
  2. 可能存在一定的成本:这类系统通常需要付费使用,这可能会增加公司的开支。
  3. 可能与现有的流程和工具不兼容:如果团队已经有了自己的流程和工具,那么使用新的系统可能会导致一些兼容性问题。
  4. 安全或隐私问题:如果系统是基于云的服务,这意味着代码需要上传到外部服务器进行分析。这可能会引发一些安全和隐私问题。一般我们选择通过私有化部署来解决,但是成本会更高一些。

最后,随着时间的推移,可能会出现「面向指标编程」的情况。这通常发生在过度重视某些度量标准并以此作为主要驱动开发的团队或组织中。这些度量标准可能包括代码行数、问题数、提交频率、测试覆盖率等。

这样可能会带来一些问题:

  1. 优化错误的指标: 有时,开发同学可能会在不影响或甚至损害总体产品质量的情况下优化这些指标。比如,如果过度关注代码行数,开发者可能会写出冗长和复杂的代码来增加代码行数。
  2. 忽视质量和实用性: 过度关注指标可能会导致开发者忽视代码质量、可读性、可维护性和实用性。例如,开发者可能编写无实际价值的测试,只是为了提高测试覆盖率。
  3. 鼓励短视行为: 如果某些指标被用作评估性能或提升的基准,开发者可能会采取短期行为来满足这些指标,而忽视了长期的技术健康状况。

为避免「面向指标编程」,作为团队的管理者应该谨慎选择和使用度量标准。应该选择那些能反映出代码质量、可维护性和实用性的指标,并且要注意平衡多个指标,避免过度优化某一个指标。同时,要培养一个开放的团队文化,鼓励开发同学关注长期的技术健康状况,而不仅仅是满足短期的指标。

打造高效能研发团队的 5 个关键步骤

在互联网软件企业,今年是一个大家都在非常努力降本增效的年份,包括且不限于人员优化、人员结构优化、技术成本优化,提高人效,提升研发效能等等。 这篇文章我们从研发效能出发,尝试梳理一下打造高效能研发团队的 5 个关键步骤:目标、流程、团队、个人、度量。

1. 找到正确的目标

技术最终都是通过业务产生价值,就算是技术类的产品,最终产生价值也是业务,只是这个业务是一个强技术属性的业务。

一个高效能的研发团队管理者,其首要任务是为团队找到正确的方向和目标。这里正确的目标可以分为业务目标和技术目标。

业务目标的设定可以分为两步:

  1. 和业务方、上级沟通,弄清楚他们的目标是什么,以及明确他们对于研发团队的预期是什么;
  2. 在业务方目标和上级预期目标的基础上,分解目标,内化为带有一定进取的团队目标。

技术目标的设定可以分为两类:

  1. 解决过去留下来的问题,历史的问题我们通常称之为技术债,技术债分为主动债务和被动任务,主动债务大多数是在业务发展过程中为了追求速度而做的一种技术妥协,而被动债务大多数是团队能力或水平不足、业务的演化或技术的发展导致的代码或架构劣化任务,或者不再适用于当下的环境。技术债不一定是一个坏事,一个产品进化到要偿还技术债时,说明业务应该还不错了,在这个当下,找准时机,有计划的偿还一些技术债务是非常有必要的事情。
  2. 解决将来可能出现的问题,将来的问题我们一般称为技术前瞻性,即对即将出现或已经出现但不是很成熟的技术做一些预研和准备,居安思危,提前布局技术投资。

2. 优化流程,做到极致

所谓流程,是基于时间线做一件事的过程,是指一系列的、连续的、有规律的活动,而这些活动以特定的方式进行,并导致特定的结果的产生。其关注的是过程,我们希望通过优化和设计过程来最终达到一个更好的结果。我们做任何一件事情时,都会有流程,只不过有些流程是自发的,有些是被设计出来的,或者说是优化后的。在团队演化的过程中,流程优化和流程管理经常会提出,这些操作都是为了提炼流程或优化流程,让效率更高,让质量更有保障。

流程最终目的在于创造价值,也就是增值,这里价值在研发过程中更多的是质量提高、效率提升等。

研发流程要重点关注两个问题:

  1. 流程对于做正确的事的辅助作用,是否能通过「过程正义」得到「结果正义」;
  2. 流程本身的效率,是否整个流程是顺畅且高效的。

在具体实施时我们可以考虑如下一些方式:

  1. 提高流程的自动化水平或者说工程化水平,如快速的本地构建速度、完善的自测环境、自动化测试、持续集成、流程的系统化等等;
  2. 减少流程的沟通成本,比如说 DevOps 减少的是研发和运维的沟通成本,又或者全栈,减少的是前后端的沟通成本;
  3. 流程分层:针对不同的级别将流程描述清楚,高层次流程较为粗略,中层流程和操作级流程会非常详细,以方便项目各级管理者和基层员工按照相应的流程开展工作;
  4. 大处着眼,小处着手:先全局出发找问题,再深入细节解决问题,比如我们希望提升研发流程的交付速度,可以收集产品周期中每一个阶段所占用的时间,包括计划的时间和最后实际花费的时间,然后通过对比寻找问题最严重的环节,再去解决这个环节。在具体落地时可以考虑流程的可视化。

3. 提升团队效能

我们是要打造一个高效能的研发团队,团队是作为一个整体存在,在团队之间有分工,团队成员之间有协同,沟通等等,如何让 1 + 1 > 2 是在团队层面要解决的问题。以下有一些方法可以提升团队的研发效能:

  1. 减少团队认知成本:如统一开发 IDE;提供完善且性能强劲的统一开发环境和联调环境;团队分工以模块负责人为核心,一个小团队一直聚集于一个模块,不经常轮换;
  2. 增加知识流通,促进知识共享:如知识库的建设、好用的文档系统、代码审查、机制化的分享会等;
  3. 团队的技术债会慢慢累积,在尽量减少债务的前提下把业务跑出来后,在适当的时候偿还部分债务,出来混迟早都是要还的,技术债也一样。
  4. 快速开发模式,尝试测试左移或测试右移。
    • 测试左移是指在研发流程中,把测试的覆盖范围从传统的测试节点中释放出来,将其向左扩展,介入代码提测之前的部分,如开发阶段阶段,需求评审阶段,让研发人员在架构设计时就考虑产品的可测试性,并尽量进行开发自测,同时评估需求的质量,比如分析需求的合理性以及完整性等。
    • 测试右移是指把测试的覆盖范围从传统的测试环节中切出来,将其向右扩展,更多地融入代码部署、发布,甚至上线之后的步骤中。
  5. 灰度发布,监控,A/B测试,混沌工程
  6. 专业的项目管理,研发人数达到 30 人以上时,由于缺乏项目过程中的沟通、控制能力,是造成开发项目混乱,需求返工,研发效率低下的重要原因。如果能够在产品规划时提前发现新产品的技术难点,就可以提前进行相关的技术研究和技术开发工作,减少产品开发项目实施过程中的技术风险。在项目过程中,加强沟通、协调,及时发现各种风险因素和意外情况并采取应对措施,有助于项目计划的顺利实施,从而提高研发的效率。

4. 强化单兵能力

研发最终是要落在人身上,强化单兵能力,对于提升整个团队的效能有极大的促进作用,单兵能力的高低能决定团队总体效能的高低。

一个人的单兵能力可以从目标、效率和初心三个方面来分析:

4.1 目标

高效能人士的七个习惯的第 2、3 个习惯分别是以终为始和要事第一,当我们需要做一件事情的时候先明确本质的要解决的问题是什么,规避掉「XY Problem」,寻找到解决方案以及实现方案的过程中聚焦最重要的任务。

在个人的目标中,我们常见的目标包括业务成功、帮助团队、个人成长。这三个目标是有递进关系的。

  • 业务成功是我们工作的最根本目标,也是基础;
  • 在业务成功的基础上,下一步考虑帮助团队成长;
  • 在帮助团队的同时,给自己带来一些直接或间接的成长机会。

4.2 效率/速度

可以仔细评估个人研发过程中哪些部分可以提速,如在开发前、开发中和开发后:

  1. 开发前:完善而友好的开发环境,不要过度设计,在保证一定扩展性的够用就行,鼓励方案的讨论,并将其机制化;
  2. 开发中:熟悉而高效的编辑工具和代码管理工具(如 Vim、Git,需要有一些刻意练习)让你能高效的编码,个人技能的边界扩展(如前端懂一些后端,在沟通交流中障碍就会很多;甚至全栈,沟通交流在自己脑袋里面完成);
  3. 开发后:尽快让代码跑起来,快速的本地构建、完善而快速的联调环境,使用单元测试和持续集成。

4.3 初心

对于业务,对于当下手上的事情能自驱的完成,最好是将目标和兴趣结合起来,主动的提出自己的想法并推动实施。

5. 合理度量但不追逐度量

著名管理大师德鲁克有句名言:“没有度量就没有管理”。

当我们开始想把研发过程的效能管理起来的时候,一定需要明确度量,即哪些指标可以表示效能的高低,并以此来判断是否有改进。 我们可以从三个方面来度量:

  1. 研发效率/速度:开发的速度,构建的速度,需求的吞吐率,需求的周期,代码行数,平均修复时间等;
  2. 研发质量:测试 BUG 数、新旧 BUG 比,缺陷率、缺陷修复率、线上 BUG 数、线上事故数,性能、安全等;
  3. 业务价值:营收、NPS、功能使用用户数、客服反馈数等。

度量的大概过程是从研发过程中获取数据,并用这些数据来评估过程的效率,质量和价值。 通过度量来评估研发团队的表现,发现对研发工作效率有阻碍的地方,了解流程是否有待改进的关键点并寻求改进的方案。

在我们度量的过程中,度量指标尽量不要与绩效挂钩,而是应该作为参考和工具,帮助团队提高效能。 不要过度追逐度量,不要让度量最后变成一个「数字游戏」,避免只关注一些局部指标而导致局部优化和全局优化脱节的情况,对于过度的不顾大局的局部优化说 No,因为这种局部的优化可能导致整体效能的降低。

6. 小结

我们实现一个系统或一个需求,其实就是在生产一个产品,需要若干个「工序」,从产品需求出发,经过开发、测试、发布、运维等环节,从一种工种流转到另一个工种,最后交付给用户。 在整个研发过程中,把每道工序定义清楚,明确输入和输出的标准,保证每个工序产出的质量,提升每个工序的速度,衔接好工序与工序,就能让整个过程更高效能的流转。

从这里可以看出一个高效能的过程包括如下三个方面:

  1. 清晰的「工序」定义、每个工序有标准的输入和输出;
  2. 保证每个「工序」的质量和速度,做到极致;
  3. 保障「工序」之间连接的有序;

转化成研发过程,一个高效能的开发过程包括如下四个方面:

  1. 清晰定义每个环节,明确每个环节的输入和输出的标准,做好自测;
  2. 保证每个环节的质量,产品需求有需求的质量要求,设计有设计的质量要求,研发有研发的质量要求;
  3. 强化每个环节中个体的单兵能力,提升每个环节的速度;
  4. 通过专业的项目管理,保障环节之间的有序进行,不快一步也不慢一步。

那么如何简单评估一个研发团队是否是高效能的呢?

看这个研发团队的一个需求从想法到上线,全流程平均生命周期需要多久,上线后的质量如何。

你好,我是潘锦,超过 10 年的研发管理和技术架构经历,出过书,创过业,带过百人团队,也在腾讯,A 股上市公司呆过一些年头,现在在一家 C 轮的公司负责一些技术方面的管理工作。早年做过 NOI 和 ACM,对前端架构、跨端、后端架构、云原生、DevOps 等技术始终保持着浓厚的兴趣,平时喜欢读书、思考,终身学习实践者,欢迎一起交流学习。微信公众号:架构和远方,博客: www.phppan.com