现代软件工程讲义 5 团队合作的阶段

[现代软件工程 讲义]

团队合作要经历的阶段

 

1  萌芽阶段

萌芽(Forming)阶段,就像小苗破土而出,柔弱但充满希望。在这个时候,团队成员刚刚接触到团队的宗旨,同时很可能刚刚互相认识。在学校的环境中,一些同学只是匆忙地加入一个团队,加入团队的原因并不是因为他们对团队的目标很认同, 而是多种多样的 (这个团队有大牛,我可以少做一些; 别的团队人满了,就剩这个了; 平时在一起混的还可以,就加入吧; 这个团队有女生,我要加入! ... ).  团队的目标只是听说过,但是并没有真正达成一致。团队缺少一个明确的领导,团队成员也非常依赖领导的指导。其它特征:

(1)个人的角色和职责不清楚,做事的规程往往被忽略。

(2)这时大家都有礼貌,一般交流不少,每个人往往想得到其他队友的接纳,试图避免冲突和容易引起挑战的观点。团队的成员在有意无意地探知同伴和领导的做事方式和容忍度。

(3)成员也在琢磨任务到底有多大,怎么去完成它。

(4)每个人都忙着适应环境、团队结构、角色、日常流程等。正是由于这些原因,严重的问题不一定能够及时地提出来讨论。重要的事情并不能够真正得到解决。

(5)开始各种各样的讨论。成员们对于组织结构有不少看法,对完成任务的困难也有不少讨论,但是还没有把注意力集中到解决问题上。这时已经有人对太多的讨论感到不耐烦了。

原因:大家都是来自五湖四海,项目还处于萌芽状态,每个人的能力/弱点还没有得到体现。

在这一时期,领导要回答很多问题:我们要做什么,怎么做,如何才是成功,和其他团队是什么样的关系,等等。由于百废待兴,没有太多时间进行详细讨论,得到一致共识,因此,要快刀斩乱麻地决定一些重要的问题。

这个阶段最重要的就是让成员明确地了解团队的目标。正确的目标设定应从整个团队的最终目标开始,然后在成员的参与下,将这一最终目标分解成为一系列相互关联,易于操作的短期目标。

 

2  磨合阶段

磨合阶段(Storming)就像一个人的青少年时期,充满了对个人、同伴和团队的疑惑和冲突。

团队中的一团和气只能维持一小段时间,大家不得不认真地面对问题进行讨论。随着讨论的深入,有些人会沉不住气,小的意见分歧和冲突会出现。这些冲突不一定都是技术问题,也许是关于角色、职责、相互关系,甚至是各自性格、文化的冲突。

这时会出现成员之间的竞争,不少人都想成为某个领域的“拥有者”(在软件项目中,谁负责哪方面,每个方面要怎么做,等等)。同时也有一些人以不同的方式进行挑战。也许会形成小团体,甚至有权力斗争。

有人专注于解决问题,有人喜欢“与人斗,其乐无穷”,有人想回到当初一团和气的阶段。冲突的结果是有人觉得自己“赢了”,有人反之。不管每人的输赢如何,大家都想从体制上、流程上避免冲突持续发生。

有时即使大家有相同的论点,还是有争论(因为大家想充分表达自己)。这个时期最可能出现谣言和误解。

 

原因:在该阶段,团队成员们开始逐步熟悉和适应团队工作的方式,并且确定各自的存在价值。在这个阶段,矛盾会层出不穷,主要包括团队成员之间的矛盾,项目远景和成员理解程度的差异,个人习惯和企业文化的矛盾,个人的价值取向和企业规则之间的矛盾。

领导要做什么呢?

这时候最好让矛盾和分歧充分地暴露,将各种冲突公开化,并且学会倾听、理解和调整。在这一阶段,有时候不得不妥协以让项目向前推进(没有时间去说服每一个人从而得到最优结果)。

领导主要是采用指导的方式,引导成员发现正确处理问题的方法。

积极、公开的信息流动是消除谣言和误解的最好方式。如果缺乏足够的信息交流平台(如SharePoint服务器,公开的电子邮件组,公开的项目进度表),成员之间会互相猜疑。领导必须做出明确规定,要求公司上下都要进行充分的交流,并且告知团队成员,不允许将信息滞留在小团队内部。

领导在这个阶段会发现成员的一些特点,要区别对待,例如:

(1)对于技术能力强,并且通过实际工作得到大家认可的成员,应鼓励他们发挥更多技术领导的作用。

(2)对一些经常有不同意见,特立独行,看似拖团队后腿的成员,这时不应该妄下判断,其实他们很可能是不错的员工,只是没有掌握表达意见的适当方式,不懂如何说服别人,应该鼓励他们找到和团队共存、共事的途径。

(3)有的成员虽然自己的工作能应付,但他们不爱讨论、分享经验,似乎没有更高的要求。对这种类型的人,应该让他们与更自信、积极的同事合作,给予他们要求更高的工作,让富有挑战性的工作激发他们的热情。

(4)有的成员在实际工作中显示出较差的技能,不怎么胜任工作。对这类成员,要考虑安排他们做得来的事,调整在团队中的位置,做到人尽其用。

在这一阶段, 团队也会讨论到每个成员的投入,和 绩效评估的问题, 在这个问题上能开诚布公地讨论并达成一致,是一个团队度过磨合阶段的重要标志。

长期处于这一阶段的团队,其自信心会下降,会出现久病乱投医的现象,我们用什么开发方法,这个模式还是那个模式?等等。就像某国国家足球队不断变更打法和风格,一会儿是平行站位,一会儿是双后腰,有时过分保守,有时过于冒进,有时学习欧洲,有时学习南美,走马灯一样换教练,最后自己找不到北,成为笑柄。

 

2.5 散伙阶段

有些团队过不了磨合这一道门坎, 退化到 “散伙阶段” - 有些名存实亡的 “团队” 就剩下一两个人干活,  其他人在打酱油, 并且还抱怨其他伙伴不重视他们。 这些情况在我们学生项目中是不是很常见呢?

 

3  规范阶段

从磨合阶段毕业,进入规范(Norming)阶段的团队,成员们意识到光争吵是没有用的,大家还是要协同作战。成员们就很多事情取得了一致。角色和职责定义得非常清楚。团队还进行过有趣的团队建设活动。

这一时期的团队有这样的特点:

(1)团队公开地讨论流程和工作的方式。团队的领导得到广泛的尊重,其他的成员也分担了一定的领导职责。

(2)随着项目的发展和成员们的互动,一些成文或不成文的规则逐步建立起来了。

(3)作为一个整体,团队要做和不要做的事情都更加明确。团队定下了更现实的目标和决心。

(4)通过聆听、讨论,成员互相之间更加了解,认识到并欣赏各自的能力和经验。

(5)在工作中互相支持,并且愿意摒弃自己固有的想法。

(6)成员之间的讨论更加友好,大家意识到并尊重各人的个性。

(7)集体意识更强,有共同的目标。

在这一阶段,领导主要扮演促成者和鼓励者的角色,协调成员之间的矛盾和竞争关系,建立起流畅的合作模式。

要注意到,并不是当团队进入到了规范阶段,就万事大吉了。经验表明,很多情况下团队会由规范阶段回到磨合阶段,或者在两个阶段间徘徊。团队成员们必须努力工作,才能使团队保持在这一阶段, 他们同时还要抵御外界的压力,以免使团队分裂,或者回到磨合阶段。

另外,一个人要是刚刚加入一个有一定历史的团队,要注意了解这个团队的“Norm”是什么,入境随俗。正如西方谚语说——When in Rome,do as the Romans do。

 

4  创造阶段

经历了萌芽、磨合、规范阶段,现在团队终于可以创造一些有意义的东西——这就是创造阶段(Performing)。当然并不是所有的团队都能达到这一阶段。

这一阶段的现象是:

(1)团队知道为何而战,有共同的远景。

(2)团队的注意力集中到如何创造、实现目标上。

(3)高度自治。不再需要领导的时时教诲与介入。

(4)不同意见仍会发生,但是成员都以一种积极的心态和方式来解决。 团队成员互相支持,互相依赖,而又保持各自的灵活性。

(5)所有人互相都比较了解,同时也互相信任,个人可以放手独立工作。

(6)角色和职责能够根据项目的要求自然地转换,没有人为此担心或发牢骚。在这样的情况下,所有人都能把大部分精力花在工作上。团队士气高涨。

(7)为了集体的利益而改进自己的行为——例如学习新技术,做更好的自我代码复审。

(8)能够避免冲突,并且在冲突发生的时候,能够解决矛盾。

领导在这一阶段,要实践“充分的授权”这一原则,委派得力的人员解决问题,并按期检查。在“磨合”阶段的经验和教训让大家明白不少道理,在“规范”阶段形成的流程让团队能高效的工作。

在创造阶段,团队减少了对上级领导的依赖。成员们相互鼓励,积极提出自己的意见和建议,也对别人提出的意见和建议给出积极评价和迅速反馈。

这时团队的效率达到了颠峰状态,这时最重要的已经不是解决团员之间的矛盾,也不是明确每个团员的职责和任务了,而是要建立团队业绩和个人绩效相结合的考评体系,最大限度地调动团队成员的积极性。

这一阶段的团队有一个特点:他们一般不会关心或争执“方法论”的问题——我们究竟是瀑布模型,还是改良的螺旋模型,或者是超级敏捷型。我们是CMM 2级或3级。方法论对于他们,就像水对于鱼一样自然。一个实际的例子就是:微软公司很多员工都不知道MSF究竟是什么东西[1]

当然,这时也必须认识到危险所在。好的团队有时候会骄傲自满,这将导致他们的衰败。团队成员自我感觉太好,过分亲近也可能导致过度利己,造成产出下降以及傲慢自大的后果。



[1] 作者注:我在2002年进行MSF的讲座的时候,还特地学习了MSF的手册,因为我在微软团队中做开发从来没有听说过MSF。后来才恍然大悟——哦,原来微软开发的方法就叫MSF。

 

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

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

相关文章

现代程序设计 (课程设计中, 征求意见稿)

背景: 目前中国大陆大学里学的编程主要有两种: 1) 学编程为了应付考试,偏重于静态的知识点, 语言细节。以闭卷考试为主。有些学校的数据结构和算法课有许多实际的练习,也有的课程练习很少。 2) 学编程为了ACM 算法比赛,偏重于算…

现代软件工程 团队作业 - 软件分析和用户需求调查 (2013)

【现代软件工程 的讲义】 医学院的学生, 要解剖人体; 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看。 要求: 通过定性, 定量地分析, 总结和评定某软件是否满足了目标用户的需求,并把分析的过程和结果用博客表达出来…

现代程序设计 学生情况调查

【课程设计在这里】 既然开始上课,就要把目标受众研究一下,搞清楚他们的需求。下面是我在课上做的调查。由助教整理。 (学生都是计算机学院大三上学期, 还有一些高等工程学院的学生) 黄色标注的代表是人数最多的选项 代码量…

现代程序设计 作业 第1次

第 0 次作业已经在课堂上做了。 1) 建立 GitHub 账户, 把课上做的 “最大子数组之和” 程序签入 2) 在 cnblogs.com 建立自己的博客。 写博客介绍自己的 GitHub 账户. 并把博客地址写到这个博客的留言。这样TA 可以收集信息 3) 搞到一本教科书 (三本中选一本), 并在博客中说…

现代程序设计 作业 2

我们上节课讲了 返回整数数组中最大子数组的和 这个问题。 我们第二次作业在这个基础上扩展。 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数, 见 MSDN 的定义. 当然, 行…

现代程序设计 作业 3

这个作业是采取结对编程的方式完成。 在上一个作业中, 我们尝试了各种命令行的处理,以及各种数组的处理。 现在, 我们要把 现代程序设计 作业 2 的各个结果转换成图形界面显示。这个问题看起来很难, 实际上大部分难的工作都在上一个作业完成了 (数组计…

现代程序设计 作业4

英语国家的小孩们经常玩 Word Search 的游戏, 就是在一个填满字母的矩阵中把单词找出来。 这是一个简单的例子: (来自 wikipedia) 这是一个比较复杂的例子: 这是答案: 美国的商店里还有不少 word search books 卖, 两三块钱一本。 让我们把这个有趣的…

现代程序设计 作业5

在前四个作业中, 我们体会了数组,子数组的和,二维数组,字符串和字母的处理, 简单和复杂的 UI 程序等。大家锻炼了命令行的处理,模块的持续重构和演化,单元测试,UI 程序的处理&#x…

现代程序设计 作业6 - 简单而有意义的题目

这是这个课件的一部分: 现代程序设计 (课程设计中, 征求意见稿) 好多同学们都说题目难,这回我们来一个简单而很有意义的。 :) 写代码爽还是读代码爽? 往一堆乱麻中再加上一些线索,似乎比较容易;然而从…

现代程序设计 作业7 - 更加简单的题目

在网上,当用户发现一个新东西 (海洋里捞出来的新物种,奇怪颜色的飞鸟,某种新的植物等), 大家会问下面的问题: 能吃么 好吃么 怎么吃 这三个振聋发聩的问题被吃货们简称为能好怎, 大家可以打开链接看看&…

现代程序设计 作业9 - 综合练习

经过大半学期的学习和练习, 我们把学到的东西综合起来。 在作业2 (http://www.cnblogs.com/xinz/p/3318230.html ) 中, 同学们用各种方法 (主要是动态规划,外加一些遍历)计算了一维和二维数组中最小最大子数组的和。 当然,程序在…

对微软实习生或者工作感兴趣的读者, 目前我的项目是...

从 2018/4 开始,我在微软亚洲研究院(北京)工作,做AI 工具的研发,请看:https://github.com/microsoft/ai-edu --------------- 从2014/7/28 开始,我在Windows 的中国工程团队干活: http://weibo.com/355…

现代软件工程 第一章 【概论】练习与讨论

0. 学习别人的经验和体会。 同学们在上这门课的时候,都是大二,大三,有的是跨专业考研过来的。觉得在大学里,到教室来听课有意思么?请看:你为何要来上课并且认真参与, 另外,请看&…

现代软件工程 第二章 【个人技术】 练习与讨论

1 基本作业: 从Hello World开始 要求每个读者(或者学生)开始管理自己的源代码: 每个人都有一个VSTS的客户端,系统管理员给每一个人都创建了TFS项目,每个学员都是各自项目的管理员。每个同学去申请一个GitHub [i]的项目&#xff0…

现代软件工程 第三章 【软件工程师的成长】练习与讨论

1. 选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提。我们很多人是边看Asp.net的书, 边开发Asp.ne…

现代软件工程 课件 软件工程师能力自我评价表

这是《构建之法》和软件工程教学的一部分,用于学生/工程师自我评价。 软件工程师如何评价自己的能力? 有人写Java,有人用C,还有人用1980年代就出现的 Object-C, 有人写前端,有人写后端,有人偏于行业应用&a…

现代软件工程 第四章 【结对编程】练习与讨论

4.7.0 结对编程的练习题 地铁导航和遍历 4.7.1 结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会。例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前&am…

现代软件工程 第五章 【团队和流程】练习与讨论

团队模式和团队的开发模式有什么关系?如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式?不同的团队模式如何影响团队绩效的评估?团队精神和集体主义的区别? 大家回想在小学和中学的学习过程&#xff…

现代软件工程 第六章 【敏捷流程】练习与讨论

6.3.1 什么时候适合选择敏捷 我们看了这么多方法论之后,一些同学一定比较困惑,到底选择哪一种开发方法比较好呢? 这在实践中不是难题,有学者还列出了一些简单的问题来帮助人们做决定[i]: 表6-3 问题引出方法 问题 Yes – 偏向传…

现代软件工程 第七章 【MSF】练习与讨论

7.7 移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信。 同学: 对!我们要用全5个工作项类型 – 任务、缺陷、场景…