官方淘宝店 易迪拓培训 旧站入口
首页 > 仿真设计 > 射频仿真设计学习 > 软件开发团队中的普遍问题及高效团队特征

软件开发团队中的普遍问题及高效团队特征

05-08
 一、高效软件开发团队的特征  本人从事软件开发几年以来,经历了多次的成功与失败的体验,总觉得我所在的团队可以做得更好些,但结果并不是我想象中的那样,许多时候整个团队并不能像我想象那样运作,总是出现各种各样的问题。一些问题的存在只是因为其他问题存在而存在的,所以我一直都想寻找开发团队优化的根源。也许,至今,我仍没有找出真正的根源,单是至少已经像前走出了一步,体会到了一个高效的开发团队应该具备的特征,在此简单描述一下。
  1、 团队有明确的共同目标
  事实证明,一个具有明确的而且有挑战性目标的团队比目标不明确或不具有很大的挑战性目标的团队效率高得多,通常技术人员往往会因为完成了某个明确的任务,而且这个任务的完成具有挑战性的意义而感到自豪,反过来团队成员为了获取这种自豪的感觉而更加积极的工作从而带来团队开发的高效率,如作为系统设计人员很清楚的知道在什么时候要做到什么,什么时候开始做,什么时候必须完成,为了完成工作必须面临哪些挑战,怎么解决这些困难等为设计出一个高质量的软件项目提供了重要保证,而模模糊糊的去设计一个系统或模模糊糊的就去编写代码是非常危险的,而且会为此付出高昂代价,因此高效的软件开发团队具有挑战性的共同目标。
  2、 [size=+0][size=+0][size=+0]团队有很强的凝聚力
  在一个高效的软件开发团队中,成员们凝聚为一个整体共同进行工作,他们是相互支持、互相交流、互相尊重的,而不是相互推卸责任、保守、相互指责的,在一些散乱的开发团队中往往存在这样的问题,一些程序员是比较保守的,明明知道另外的模块中需要用到一段与自己已经编写完成但有些难度的程序代码,他也不愿拿出来给其它程序员共享,不愿与系统设计人员交流,这样给项目的进度造成了些不可度量的因素。
  3、 团队有融洽的交流环境
  在一个开发团队中,每个人行使自己的职责,如需求分析人员制定需求规格说明、系统设计人员做系统概要设计和详细设计、项目经理配置项目开发环境并且制定项目计划等,但每个人的工作不可能做到完美的,如系统概要设计的文档可能有个别地方词不达意,做详细设计的时候就可能会造成误解,项目经理制定计划时可能忽略了某种风险的存在而造成执行者过于紧张的压力等等情况都需要大家通过交流、反馈的手段然后协商解决的,因此高效的软件开发团队是具有融洽的交流环境的,而不是那种简单的命令执行式的。
  4、 团队有明确的角色划分
  所有成员都明白自己的职责,知道必须完成什么计划?由谁来完成?什么时候开始?什么时候结束?按什么顺序?这里我所强调的是整个团队必须有一个核心,这个角色就是项目经理。这个角色应该具有相应的日程制定和修改权利,开发团队内部人员调配的权利,分配任务并验收的权利,在开发团队中不应该再有其他行政权利角色存在。想到这一点的原因就是我曾经处于模糊的角色任命状态,老总并没有明确指定我为项目经理,但实际上是承担这一角色的工作和责任。这就导致了有责任而无权利的状态,导致很多事情障碍重重,无法顺利开展。
  综上几点,不难看出软件开发团队酷似一个足球队,因为二者是如此的相近。球对的核心是人,开发团队的核心也是人;球队中需要不同角色各负其责,如前锋、后卫、守门员,开发团队也是需要美工、架构师、DBA、测试员;球队需要教练,开发团队需要项目经理。喜欢足球的朋友都清楚,一场球赛中假如球员之间缺少默契的配合或教练的指导思想执行不到位等情况下,那场比赛多半是以失败告终的,因为这支球队并不是优秀的球队。开发软件项目就象一场进行中的足球赛,是靠项目管理、系统分析设计、程序编制、测试等不同角色人员共同协作完成的,不同角色的人执行的工作相互促进和制约着其它角色的人的工作。
  二、开发团队中存在的普遍问题
  好的团队各具特色,单是不好的团对却如出一辙,基本上都存在以下几个方面的问题:
  1、 项目经理领导不力
  有效的领导是高效率软件开发团队的基本要求,如果领导不力,工作计划就不一定会合理,团队成员也不一定会投入工作的热情,使团队的凝聚力大打折扣;如果领导不力,就不一定有明确且具有挑战性的目标,团队成员就无法完成高质量的项目产品,无法投入信心和激情。传统的旧体制下的管理思想的沿袭,是部分领导还具有老大爷的心态,于是贪功、推卸责任、明则保身等一系列现象也相继而生;如果领导不力,就无法营造融洽的交流环境,团队的工作便是死板的没有生气的;如果领导不力,就不知道采用什么样的开发过程是合理的,就不可能高效率、高质量的完成软件项目。领导不力还可能导致其它问题的出现。
  2、 成员缺少必要的信心和激情
  也许你会发现周围的一些同事仅仅是为了薪水而工作,在执行工作的时候即使发现了上层领导忽略的问题依然照糊涂画瓢也不反馈问题所在,即便他是个天才,但成功不会属于他的,因为成功垂青于有激情的人才,其实这些同事并不是一开始就缺少激情的,原因也许是失去了信心,而暂时做"糊涂人"而已,无论如何,缺少信心和激情的团队,只会是一盘散沙。
  3、 成员相互的合作并不协调
  在一个开发团队中偶尔有部分人不愿意与整个团队合作,也许是这些人性格比较保守,也许是有某些不平衡的心态,也许是他们还没有明白目标是什么,也许他们并没有体验到团队开发成功的快乐,等等。不管怎样,这种情况的出现必然影响融洽的交流环境。也许是一些不良的传统观念和思想的沿袭,一些软件开发团队出现了排挤其它有异议的成员、推卸责任、相互指责、贪功等,这种情况是最坏的,但却事实存在。
  4、 团队中角色职责定义模糊不清
  软件开发是由不同角色的成员共同协作完成的,但一些开发团队却没有对各种角色成员的职责做出明确的定义,成员就无法明确知道自己的目标,很简单的道理,都不知道要做的是什么,能按时准确的完成吗?如果每人都按自己想象中的职责去工作,那么有多少工作冲突、多少遗漏,谁能给出正确的估计?没有明确的职责定义人力资源的安排可能合理吗?结果可能是找了个资格较老的程序员做了项目经理,找了个没有理会对象概念的人去做面向对象的系统分析,找个不顾网络安全、网络流量、事务特性、运行费用的人去设计一个分布式系统,等等。有才华的人也许只能跺在被窝里激呼怀才不遇或许能做个美梦安慰自己!
  可能除了以上几点以后,不好的团队还有其他问题,但这几点确实是我体会的最多的。一般来说,一个正规的软件开发团队,不会同时出现以上的问题,如果同时出现了,那么这个团队是应该解散或者停业整顿的团队,最好不要继续搞开发了,否则结果只有失败。
[size=+0][size=+0]再看看咱们的团队,唉……让我感觉到心寒又让我感到开心,底层的开发人员团队默契地不得了,上面的人却只为了一个人而忽略所有人的感受,甚至忽略所有人的能力!话说“三个臭皮匠赛过诸葛亮”,我们三个好像比臭皮匠要强一点点吧?至少大家都是工作过几年,都带过项目,为什么在领导心中就比这个所谓的“诸葛亮”要差呢?是我们不应该对某些人的设计提出意见?还是我们在这个项目中是白拿工资的?(要真是这样就好了,每天打打游戏过日子,做点私活完事!)又或者是咱们没有“诸葛亮”那么有个性?在我看来,“诸葛亮”也没有传说中那么厉害,只是某些人故意这样看而已。我有时候都怀疑他们到底是什么关系?我从来不想把关系、思想看得那么复杂,但这种情况让我不得不这么去想。
希望下一个项目会是三个“臭皮匠”在一起合作吧,“诸葛亮”就去招点小“诸葛亮”带带吧。省得“臭皮匠”们被蹂躏。
一个WEB项目按C/S项目的方式去设计;数据量过大能分成两步操作非得加在一个页面上干什么?美工的活用得差程序员和设计者来干吗(我们的美工太专业了)?有利的建议却被一句话带过,还要加上一句“XXX问题你们跟XX商量吧。”,这样的话我听得太多。我开会讨论通过的设计为什么最后还是要强迫我改呢(客户没有确认)?为什么改来改去,最后客户却说那样做(最初实现方式)?
是领导不力?还是我太愚蠢,不懂得如何应对呢?又或者是我们天生就是这个命呢?领导从来不主动带团队里的人出去活动,这样如果把一个长期出差在外的团队带好?
我承认我能力是不怎么样,但我也不会否认对于WEB的开发我是有自己的想法和创意,更加不能否认我是有我自己的特长的!
个人以为底下做开发的几个人确实合作得非常开心,也非常有默契。到底是什么原因让大家做得不开心?而且都不愿意做?甚至已经开始有恐惧某些人的心理呢?更加想不通的就是领导却说我们能力不行,他最牛XX。

支持

团队的问题是最难解决的问题,可能与传统文化、教育相关,很难融合

支持中

Top