在软件开发过程中,团队人际关系处理不好,会给团队士气带来灾难性的打击。邓士元是一家软件公司技术开发总监,现在他就遇到这个头痛的考验。近一个月来接二连三发生的团队人际关系纷争事件,让邓士元感到软件开发项目跟其它工程项目最大的不同就是人的因素对项目影响特别大。如果对团队人际关系纷争处理不当,会导致技术人员辞职、合作不愉快、士气低下,严重的还会出现相互推卸责任的局面,甚至引发无谓的口水战,使软件开发项目处于失败的可能。
在软件开发中,团队人际关系是一个软指标。人际关系对项目所起的作用不易量化,因为人际关系对项目的影响往往是隐形的,人际关系问题摆在桌面上有点说不清道不明,实际上却极富韧性。团队人际关系纷争处理不当不但会对各成员产生困扰,而且会成为拖住开发工期的软绳索,甚至阻碍和打乱开发计划,是软件开发进度的最大杀手之一。本文结合软件开发项目的特点,谈谈团队人际关系纷争对软件开发项目的影响。
人际关系纷争才是开发失败的真正原因
如果你现在问邓士元,在众多的软件开发失败原因中让他最深感受的是什么?他会告诉你失败的原因不在于技术,而在于团队复杂的人际关系纷争。尽管他在协调团队人员关系上作了很大的努力,但软件开发时人际关系的纷争还是常常出现。
为什么会有这么多开发人员会敌我相向?邓士元认为复杂人际关系归根究底可归结为开发组和测试组的协作问题。各组别之间守着不同的利益,也追求着不同的目标。因此,任何组别及其成员都倾向于分裂成为各自为营、敌我相向的派系或团体。一般来说,有三大因素导致人际关系纷争的出现,且每种因素本身都能产生巨大的影响。而且,在软件开发中都会遇到不止一种因素,因此其综合影响就更加不可小觊了。
(1)部门分工易产生纷争
从开发团队的角度来看,软件开发跨越了部门界限,因此软件开发中会细分许多独立的部门组别。例如,大的方面分为开发组和测试组,而且它们内部也会细分为多个开发小组和测试小组,这些小组都需要和其它功能组别分享信息,协调工作。出于考核制度,资源分配和职责任务的不同,也就不可避免地导致各细分小组追逐私利。不幸的是,邓士元在开始的时候忽略了不同细分小组之间会因分工的不同而产生人际关系纷争这一点,从而为此付出很大代价。
(2)在团队小圈子中,人们的情感联系更紧密
在与整个开发团队相比,一般来说小圈子会让人们觉得更为亲近,因为在小团队中更容易结交关系。所以,开发团队越庞大,其成员之间的关系就会越疏远。即使在那些中小型软件开发项目中,人们也倾向于结成单位更小、更容易建立人际关系的小圈子。邓士元说软件项目团队管理最难的部分不是遭拒绝,而是没有对人际关系中小圈子的复杂性做好足够的认识。
(3)人际间的化学反应
站在个人的层面上,不同工作方式的个体在相互之间是很难相处的,他们更多的是从直觉上就对“别人”产生厌恶和不信任的感觉。产生这种矛盾的原因多半是因为各小组成员间的行为处事方式存在天壤之别。正如邓士元常常开玩笑道:“如果是机器人,只要改编一下程序,这就简单多了。但你不是机器人,不能强求你按我的方式去工作。”
识别开发路上的“拦路虎”
开发团队人际关系恶化是软件开发求生路上最大的拦路虎。邓士元认为耗资巨大的开发项目如果最终陷入困境,大部份原因不是技术问题,造成这种尴尬的局面的根本原因之一可能会是人际关系纷争的问题。因此,人际关系的成败往往能决定整个开发项目的成败。万幸的是,在软件开发团队中人际关系的纷争也并非完全不可预测。对其征兆进行识别将有助于避免团队人际关系的恶化,就是迈向解决纷争的第一步。
(1)意见不合,这是纷争出现时最明显的征兆。两个表面上声称相互合作的小组实际上却敌我相向。通常他们都会公开宣战,直接表露各自的不同意见,也会公开批评对方和相互指责,甚至在会议记录或电子邮件中直言不讳。
(2)“这不是我份内的事。”在这种情况下,各小组的技术人员对项目开发计划阳奉阴违,特别是需要相互配合的计划,他们往往表现为没有积极和主动承担开发项目应该做的事情。
(3)“到底谁是专家,你们干嘛不听我们的呢?”说这话的技术人员拥有资深“专家级”的知识,在与其他合作小组接触时,态度恶劣而且傲慢,用的是上级对下级发号施令的口吻,这往往对解决问题不但无事无补,反而会让需要合作的小组反感。
(4)保持缄默态度,让开发进度陷入僵局。这种矛盾的纷争最常见在于矛盾还没有完全激化和表面化。在需要不同技术组别发表意见和建议来制定和确认开发进度时,这种现象便经常出现;或者说在相互合作的技术小组之间,如果一方对维持合作关系置之不理时也会出现这种问题。
如果在软件开发中各技术小组不能有效合作,以上四种情况都有可能出现。他们可能会对谁该负责哪些领域、做些什么工作而争论不休,且各自都抱着“自扫门前雪”的态度,事不关己高高挂起。他们也许觉得有必要给别人提供建议和意见,却没必要理会别人给他们提出的建议和意见。例如,当本来是正常开发技术讨论之争升级为个人人身攻击的时候,就有可能敌我相向。然而,当事件最终恶化时,他们又极有可能在缄默中陷入僵局。这些都会成为极富韧性的软绳索,让软件开发陷入困境,动弹不得。
巧借沟通妙解团队人际关系纷争
开发团队中人际关系的纷争是如此的普遍存在,使得开发主管意识到必须要有一个有效的人际关系纷争解决方案。但是要想将被人际关系的纷争拆得四分五裂的项目团队和技术人员重新整合起来,并不容易。团队人际关系纷争的解法秘诀在哪里?
后来,经过惨痛的教训后,邓士元终于找到最基本的解法就是沟通。实际上,各小组产生人际关系纷争,阳奉阴违,甚至故意掣肘,这是典型的缺乏沟通的结果。只要通过沟通,排除团队、文化、心理和行为习惯上的障碍,才能从根本上解开了这个纷争的软绳索。
(1)建立主动沟通意识
邓士元认为软件开发团队最需要的是各小组和技术人员建立主动沟通的意识。这个沟通意识有两个作用:一是让各技术小组之间建立起良好的关系;二是要建立团队共同的工作价值观和工作风格。
开发组和测试组由于职责不同必然对立,双方由于工作性质上的不一致,纷争必然会不断发生。可以说由于职责立场产生的纷争是司空见惯的,一般争论过了就过了,下次照样讨论或者争论,并不影响工作进展和造成情绪对立。但前提是双方能够理解并达成默契,认同这种沟通方式,而不是认为对方在找茬。如果工作纷争发展到双方都气得不愿意解释自己的观点,互相挑对方话语中的毛病,甚至干脆破罐破摔,这不但会影响到工作进展,还会把本来是岗位职责的讨论变成了人际关系纷争。
(2)建立团队沟通流程和程序
处理开发团队人际关系纷争归根结底是管人,为了处理好人际关系纷争,团队应进行科学的沟通管理。为此,项目主管应根据开发的实际需要,及时预见可能出现的矛盾和问题,制订沟通计划,明确沟通的内容、方式、渠道、手段和所要达到的目标。
在开发的全过程中按沟通计划与各方进行充分、准确、及时的沟通,并适时调整沟通计划。沟通流程从方向上可分为单向沟通和双向沟通,在项目中应以双向沟通为主,如各种例会、专题会及大量的面对面的口头协商和探讨问题等。建立良好的团队人际关系的沟通渠道有助于更快地实现开发目标,避免开发团队把精力耗尽在人际关系纷争上。
(3)建立彼此尊重的人际沟通文化
其实,几乎所有的人都懂得处理好团队人际关系的重要性。但尽管如此,大多数都不知道怎样才能处理好人际关系,甚至相当多的人错误的认为拍马屁、讲奉承话、请客送礼,才能处理好人际关系。其实,处理人际关系的决窍在于必须有开放的人格,能真正的去欣赏他人和尊重他人。
人际沟通是人与人之间传递和交换信息、意见、观点、思想、感情和愿望的过程,以达到相互交流和了解的目的。因此,彼此之间相互尊重是最基本原则。据有关资料表明:良好的人际关系,可使工作成功率与个人幸福达成率达85%以上。一个人获得成功的因素中,85%决定于人际关系,而知识、技术、经验等因素仅占15%。
因此,对于软件开发来说,要想协调和控制开发过程,就必须主动进行人际关系管理。邓士元感受最深的是:在成功的开发项目中,人们往往感受不到人际关系的复杂性;而在失败项目的痛苦反思中,却往往能看到人际关系纷争四起。换言之,团队人际关系纷争处理不当对软件开发的影响往往是巨大的,是一条无形的拌脚绳索。