写点什么

如何在开发团队中增加新成员

  • 2013-12-08
  • 本文字数:2773 字

    阅读完需:约 9 分钟

在项目开发过程中,团队规模往往不是一成不变的,特别是在项目进度紧张的时候,增加人手也许是一个必要的选择。但是,人员的变动往往会影响到整个团队的建设甚至效率,那么,如何正确地在开发团队中增加新成员呢?T. LAMINE BA 是一位有着丰富团队领导经验的开发者,他分享了自己的心得。

他指出了需要增加人手的一个典型场景:

我——项目的技术领导——和十几个 Java 开发者都知道,这将又是一天漫长的工作。我们已经落后于我们的进度了,而我们的客户不会接受低于他们预期的产品的。尽管我的直觉告诉我,事情已经有点麻烦了,但我依旧尽最大的可能保持冷静、客观,以让我的同事们保持信心。过度的加班已耗尽了开发人员的精力,我也观察到他们的工作效率已经开始下降了。此外,我的计划成本差异分析表表明,我现在最好的选择就是往这个项目上多添加些人力资源。

当软件开发项目停滞时,在开发团队里添加一名新成员看似是一件简单地事情。然后项目经理常常发现添加新成员后他们的处境变的更加艰难。为什么呢?往团队里添加新成员是一件敏感、有危险的事情,项目中所有领导都应该足够关注、关心添加新成员这件事情。

既然提到“团队”,那么团队应该如何来定义?Michael Levin 是位 Java 大牛,也是遍布全世界的多个 Java 用户组的创建者,他曾经这么说:“人力资源就像锋利度不同的刀子。是的,他们都能工作,但是‘锋利度’是不同的。因此诀窍是在正式开工前先测试他们的能力。”这说明找到适合一份工作的人力资源并不是一个简单的任务。因此在解决手上的问题前,我们需要先了解下是什么组成了一个团队。

依据定义,也依据项目管理协会 (Project Management Institute) 的说法,团队包括该项目的利益相关者。在这里,我们只关心开发团队。我们是社会型动物,团队是我们的生存和发展中重要、固有的一部分。为了更好地理解团队的特点,我向大家推荐 Bruce Tuckman,他在 1965 年提出了团队发展的“组成—震荡—正规—执行”(Forming-Storming-Norming-Performing) 模型。Bruce Tuckman 提出,团队的形成往往遵循这四个连续的、可预测的阶段。在“组成”阶段,团队成员对团队的目的尚不清楚,是团队领导在指引方向。在“震荡”阶段,多个想法互相竞争。在“正规”阶段,大家对目标有了共识,大家也有了一个共同的方案。最后,在“执行”阶段,整个团队已经有了清晰的自我认知,并且可以迅速响应外界环境因素的改变,以实现高绩效水平,实现团队目标。

T. LAMINE BA 认为,一个新成员很有可能伤害整个组织。为了避免这种情况的发生,技术领导必须时刻关注团队现在所处的状态。领导必须假设,如果有变化发生,团队将退回“震荡”状态以适应变化。因此,领导要注意到,在某些阶段引进新成员效果好于在其它阶段引入新成员的效果。下面是针对不同阶段的一些建议。

  • “形成”阶段。考虑到大部分利益相关者在这个阶段对项目的目标尚不明确,大多情况下,这个阶段是增加新成员的最好时机。新成员可以很轻松地融入团队,很快为团队做出贡献。
  • “震荡”阶段。在这个阶段,团队成员讨论、提出许多想法。并依据经验、亲和力以及其它特征产生一些子团队。通过自我组织,每个子团队都会产生自己的领袖,而这个领袖在指定的渠道发布正确信息。领袖需要预期到紧张、困难的局势,此外,领袖个人还需要有过硬的软实力,例如良好的谈判能力等。在这个阶段,新成员能否很容易地融入团队往往取决于项目经理的能力。因此,项目经历需要密切关注团队内形成的新的、非正式的等级制度,这个制度对团队成员有重要的意义。此外,项目经理可以明智地向全部团队成员介绍新成员的角色,推动全体成员参与重组。
  • “正规”状态。团队此时已经有了清晰的计划。所以成员都理解这个计划,并且认可这个计划。团队的目标已经取代了个人的目标,工作进展成了各个利益相关者的仪表盘。在这个时候增加新成员是有风险的,其他人可能会拒绝做任何改变,因为他们花费了很大功夫才达到现在的共识。因此,技术领导有必要在团队整合过程中密切关注、引导新成员。这是向各个利益相关者展示业绩图、情景假设、预测模型的最好时机,通过这些展示,领导可以让团队成员认识到团队需要更多的资源这一现状并获得团队成员的支持。团队领导也应该做好团队可能会自然过渡回“震荡”阶段的准备。此外,优秀的谈判技巧可以让团队很快地再变回“正规”状态。
  • “执行”阶段。在执行阶段,团队工作效率很高。团队可以在预计的预算、时间条件下完成所有交付任务。通常,大部分团队成员对工作环境非常满意。这种高效的工作效率不容易达到,也不常达到。而且这种状态持续时间往往不长,团队很可能又折回“震荡”状态。因此在“执行”阶段添加新成员是最糟糕的。尽量保持这种好的工作状态,不要随意重组。不过,如果项目需要立刻加入新资源的话,那么添加过程必须谨慎,必须考虑周到。事实上,在这种形势下,开发者已经可以预期到许多重要的决定,这些决定甚至可能是开发者做出的。换句话说,团队里可能已经有很高的呼声要求引入新资源来帮助他们一起完成团队目标。那么,项目经理就需要密切观察新成员是不是“合得来”,并尽早采用恰当的措施。

他特别强调,当添加新成员时,政策和文化也是要考虑的重要方面。作为技术领袖,密切关注、深入理解团队互动方式并将这些信息分享给新团队成员是十分重要的,这有助于新成员融入团队。例如,这个团队可能喜欢安静的工作环境,或者喜欢在一天中特定的时间碰面(例如说早上),或者倾向于图形化的展示方式而不是文字化的展示方式。最终,大部分趋势(从企业文化的角度)应由项目经理控制或在某些程度上由项目经理主导。此外,项目经理不应当期望新成员依靠自己学会团队的各种“制度”。花些时间辅导新成员将缩短他们的学习时间。

另外,T. LAMINE BA 建议利用良好的面向对象设计实践来帮助团队里的新成员:

墨菲定律说:“任何可能出错的,都将会出错。”当你的组织发生变化时,遵循优秀的面向对象设计实践非常有帮助。例如,Java 中的继承让一个类具有了扩展或重写另一个类的功能。通过继承功能,新来的程序员可以只修改代码库中的部分代码,这种优势加快了新程序员团队的整合过程。程序员也可以重新使用被测试过、被认可的模块,可以在模块上试验自己的应用程序。此外,使用多态性的方法还有很多益处。多态性让一个对象有包含其它对象(也可以是它自己)的能力。通过这种方法,程序员可以在同一个对象上实施多种不同的行为。打个比方说,开发团队可以创建一个名为“动物”的对象,如果是只鸭子,它就有“嘎嘎叫”的能力,如果是只狗,他就有“咆哮”的能力。通过这种代码组织,新成员可以通过学习和修改整个系统中的一部分就完成他们的任务,从而成为有作用、有贡献的团队成员。还是刚才那个例子,假设新来了一个成员,他负责的是“动物”类中咆哮的行为,我们可以只把他分配给那些实现了“咆哮”行为的类。

2013-12-08 08:382152
用户头像

发布了 501 篇内容, 共 257.6 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

网络中一些很常见的协议,以及他们对应的报文格式介绍

阿柠xn

TCP 网络协议 9月月更 ARP

跟着卷卷龙一起学Camera--3D LUT

卷卷龙

ISP 9月月更

再添重磅理事成员!麒麟软件、浪潮信息、中科曙光、新华三加入龙蜥

OpenAnolis小助手

龙蜥社区 新华三 中科曙光 麒麟软件 浪潮信息

每日算法刷题Day5-平方矩阵II和III、蛇形矩阵图解

timerring

刷题 算法题 9月月更

大数据ELK(七):安装Elasticsearch-head插件

Lansonli

elasticsearch 9月月更

Optional源码解析与实践

京东科技开发者

Java Optional 抛出异常 NullPointerException 映射函数

爱番番企业查询结果优化实践

百度Geek说

大数据 搜索引擎 elasticsearch

MASA Stack 第五期社区例会

MASA技术团队

MASA Framewrok MASA MASA Blazor

每日算法刷题Day3-起始时间转换、二次方根、while连续输入、斐波那契思路

timerring

刷题 算法题 9月月更

跟着卷卷龙一起学Camera--TNR

卷卷龙

ISP 9月月更

跟着卷卷龙一起学Camera--PDAF 02

卷卷龙

ISP 9月月更

多云容器编排 Karmada-Operator 实践

vivo互联网技术

容器 云原生 Karmada

大咖说 | 小码王应用无影打造纯净课堂,三年综合使用成本降低60%以上

大咖说

每日算法刷题Day2-向上取整、三角形条件、字符串拼接匹配、三数排序思路

timerring

算法 刷题 9月月更

【web 开发基础】php 开发基础快速入门 (2)-PHP的程序开发

迷彩

php开源 9月月更 PHP语法 PHP面向对象

自制操作系统系列(一):显示hello world开始旅程

操作系统

技术分享| anyRTC服务4.3升级

anyRTC开发者

音视频 sdk 视频通话 实时消息 快对讲

1

神经蛙

MySQL安装到非系统盘详细教程

阿柠xn

MySQL 教程分享 安装使用 9月月更

刘潇翔:基于OpenHarmony的仿生四足狗开发分享

OpenHarmony开发者

Open Harmony

orbeon form 的架构简介 - 如何访问用户通过 form 存储的数据

汪子熙

SAP Hybris commerce form 9月月更

CDH/CDP中开启kerberos后如何访问HDFS/YARN/HIVESERVER2 等服务的webui

明哥的IT随笔

hadoop hive kerberos

重磅预告!2022研运一体创新峰会火热报名中!

嘉为蓝鲸

运维 数字化转型 IT 研发

StarRocks Summit Asia 2022圆满闭幕,极速统一3.0时代开启

StarRocks

数据库

每日算法刷题Day1-隐式转换与精度丢失

timerring

算法 刷题笔记 9月月更

每日算法刷题Day4-完全数、分情况输出、平方矩阵、斐波那契数列匹配输出

timerring

刷题 算法题 9月月更

跟着卷卷龙一起学Camera--PDAF 01

卷卷龙

ISP 9月月更

Git,GitHub和Gitee

阿柠xn

git GitHub license gitee 9月月更

架构实战营9期第一模块课后作业

旋风

「架构实战营」

意外!花20天刷完Alibaba JVM笔记去面阿里,却意外拿到京东Offer?

Geek_0c76c3

Java 数据库 开源 程序员 面试

Github星标百万!终于有人将Spring技术精髓收录成册

Geek_0c76c3

Java 数据库 开源 程序员 开发

如何在开发团队中增加新成员_语言 & 开发_崔康_InfoQ精选文章