沟通为王
沟通问题是一个项目成功最重要的因素之一。一个项目可能并没有什么正式的软件过程,但是只要团队成员能够进行有效的沟通,项目成功的可能性就很大,但是如果项目中缺乏有效的沟通渠道,再优秀,再严谨的软件过程也没有用。优秀的软件方法学,总是会在沟通渠道的建立,推动有效沟通上花费大量的精力。我们分析RUP、XP等方法学,都会看到很多这样的实践。沟通对一个项目而言是重要的,对一个软件组织而言就更重要了。从长期来看,内部能够进行有效沟通的组织能够得到很好的发展,但是反过来,内部沟通不畅的组织将会出现很多的问题。
在软件开发过程存在的一个很大的问题就是沟通不畅的问题。事实上,这个问题并不仅仅在一个开发过程中存在,在整个软件组织内都将长期的存在,并成为阻碍软件组织发展的一大障碍。这样的说法可能过于理论化,但是我们只要想想,如果现在的项目中,一个主力程序员离开的话,是否会给项目,甚至组织带来重大的影响,就能够理解这段话的含义了。造成这种现象的主要问题是程序是分散在各个程序员手中的。各个代码块就像是程序员们的私有财产一样,神圣不可侵犯。
更为糟糕的是,任何一个程序员都不愿意阅读他人的代码,比起理解别人的代码,程序员们宁可自己重新编写代码,这导致另一个严重的问题――软件组织中大部分的工作都是重复的,以至于程序员天天忙于开发代码,却难以把精力放在更有价值的地方(关于什么是更有价值的地方,我们在下文会详细的描述)。
在一些项目中,我们经常看到这样一种开发环境:每个程序员都拥有个人的隔离空间,彼此之间不进行交流,甚至有时候他们整天不说一句话。在和项目中的一位主力程序员进行沟通之后,我们发现了他们的真实想法:
项目非常紧张,团队成员之间的关系非常的微妙,主力程序员必须要保持自己的主力地位,对他们来说,必须努力写出优秀的代码,同时,你还需要承担项目进度的压力,并提防着其它的程序员。将程序掌握在手中是自己安全感的来源。压力如此之大,他们不得不每天工作12个小时以上。程序开发就如同噩梦一样。
虽然未必所有的团队都如此不良的开发人文环境,但是或多或少都存在一些不好的环境因素。可以肯定的说,没有多少人愿意在这样一个开发环境中工作。这些环境因素都影响了沟通问题的形成。
XP的四大价值观中的一项就是沟通。XP中的沟通范围很广,有开发人员和客户之间的沟通(我们在需求和故事一章中也提到了沟通问题),有程序员和设计师之间的沟通,有程序员和测试人员之间的沟通。但是本文的重点集中在开发团队内部,即,如何改进开发团队内部的沟通质量。
改进沟通的实践-结对编程
文章来源于领测软件测试网 https://www.ltesting.net/