原文最早发表于百度空间2008-01-09
国内规模较大的软件公司A为了规范管理开发团队和测试团队,于是把两个团队的人员分开在不同的楼层管理,这样便于开发不受测试“打扰”,潜心开发出更好的产品。开发和测试人员最常用的联系方式便是即使通讯工具或电子邮件,面对面的交流可以说是非常少,除了每周固定一天会有测试组长和开发组长等的例会外,其他时候两个团队几乎不怎么见面的,普通测试人员想和开发人员交流更是困难,所以,测试人员发现问题或者有疑问时会纪录在一个笔记本或别的工具中,当开例会时交由测试组长一次性向开发人员提问……
另一个软件公司B采用的是另外一种管理方法,按项目划分,同一个项目的开发和测试工作在同一个楼层,便于项目在测试过程中发现的问题能够及时反馈给开发,同时开发可以及时了解产品测试的流程根据开发经验提出测试流程需要改进的地方。开发人员和测试人员最常用的联系方式除了即使通讯工具和邮件,面对面交流是非常重要的一种手段,这种交流不需要经由双方组长预先安排,随时可以互相的“拜访”……
这两种管理手法各有各的考虑,我觉得B公司采用的方法更能迅速提高两个团队的能力,开发从测试那里得到思路——完善自己;测试从开发那里学习程序——提高自己,但是这些都要建立在面对面的沟通基础上。即使通讯和电子邮件可以表达的东西太少了,往往对方不一定能理解你要表达的意思,大部分时间就会被这种交流方式浪费掉,面对面交流不但可以把问题表达得更清楚还可以使双发讨论得更深入,这种交流方法是最省时间也最有效的。
测试和开发人员针对程序bug进行的交流可以使开发人员知道测试人员测试过程中的想法,因为开发人员的思路往往比较狭窄,不会了解用户使用产品中一些“奇怪”的操作,或者开发人员的环境比较单一,不知道产品在用户那种复杂多变的环境中会出现的bug,这些弊端测试人员就可以弥补很大的部分,开发通过面对面交流就可以针对这些情况迅速对程序作出调整。如果只是把bug简单地描述给开发知道,结果是开发会机械地把bug修复,但是他却得不到测试人员心中的想法,这样开发下一个产品时很容易就会出现类似的问题了。
测试人员和开发人员交流可以使测试人员更叫深入地了解软件的原理和工作流程,甚至软件实现一个细小功能的步骤,例如修改了系统哪个文件等等,在某些情况下测试人员可以直接开到程序代码,这样测试人员就可以轻而易举地获得产品某个功能的所有细节,这对于测试人员在测试产品的全面性有很大帮助,否则测试人员只会机械地对软件进行“点点点”,这种测试方法实在浪费时间且收效不大,同时让开发人员更加瞧不起测试。测试人员通过和开发人员深入的面对面交流可以学习到开发人员开发程序时的一些想法,更重要的是测试人员可以得到难得的学习程序的机会,这对于提高测试人员的个人素质非常重要,一个只会机械“点点点”的测试人员做一辈子也只能是最普通的测试人员,一个经常和开发交流的测试人员一定可以很快地成长成一个高级的测试人员甚至软件架构人员。