高效的软件研发团队结构

系统架构师专访 链接http://www.51testing.com/zhuanti/testarchitect/testarchitect.html
在前面为各位读者介绍了谁是最佳软件质量责任人—— 软件开发者。并给大家介绍了因此会给组织和个人带来的价值和好处。但是这里还有一个关键问题还需要解决,否则把软件质量责任人转换为软件开发者的这个改革就会变的无法实施。
  什么问题呢?——软件开发者增加了质量保障的职责,可他有足够的资源来完成这个职责吗? 如果只是简单地给软件开发者增加职责,又没有新增资源来支持他的新职责,那么这个改变不但不会得到好的效果,还会遭到开发者的更强烈的反对,他们更愿意回到过去的那种状态。因此为了让开发人员能更好的保障质量,就需要帮助开发人员提升 工作效率,辅助他保障质量,而不是让他一个人孤军奋战。当然如果你的团队都是精英开发者,个人战斗力极强,孤军奋战也没有问题,那么就无需为他们提供开发效率提升和质量保障方面的支撑。
   那么软件开发者增加了质量保障的职责后,需要增加哪些对应的资源以支撑他们可以在质量保障与功能实现的职责间获得平衡。
  1: 教给开发者高效的快速验证软件质量风险的 测试方法
  2: 减少开发者自验证测试的时间成本和复杂度
  3: 提供帮助开发者提高开发效率的开发工具和开发框架
  4: 让开发者的编译速度更快减少编译等待时间
  5: 通过有效的方法提高开发人员评审需求和设计的效率
  6: 减少开发人员分析定位bug的时间
  当你的开发人员能得到以上部分资源的支持时,他们才能挤出时间来思考如何能在设计和开发阶段保障自己输出的质量。
  可是公司中哪有资源来支持开发人员来提高工作效率呢?这里我们可以参考软件工程发展最前沿的美国公司的实践。在当前硅谷最先进软件生产力的公司—— 谷歌,他们的组织结构中有一个叫EP(Engine Productive)的团队,这个团队与广告技术团队、搜索算法团队、架构设计团队、性能团队的定位一样,是谷歌的长线建设的领域技术团队。该团队的成员有:
  测试开发工程师、工具开发工程师、测试工程师组成。测试工程师工作的目标变为了:帮助产品快速地达到质量目标,而不是作为质量保障的主体。
  EP团队除了对软件质量的检查测试提供 测试技术支持和测试资源外,还负责帮助开发人员提升工作效率,优化一切可以提升工作效率的工作环节。例如:开发人员更有效的测试,更合理的测试投入,减少与业务实现无关的工作耗时,帮他们更好地做好开发阶段的质量保障工作。在谷歌有些团队能达到10:1的开发测试人员比,除了这位测试人员能力超群外,开发人员的专业能力和开发人员的质量保障目标都是关键的决定因素。如果只有一位超级测试人员,没有开发人员作为质量责任主体和专业技能优秀的开发人员,那么10:1的配置下这位超级测试人员则会被各种软件问题铺天盖地淹没掉。
高效的软件研发团队结构_第1张图片
  如上图所示大多数的研发团队模式是旧模式,开发团队只关注进度, 测试团队只关注质量。于是测试团队规模越来越大,产品的进度总是与质量目标矛盾重重。如果应用新模式,则赋予开发团队更大的权利和责任,进度和质量都是由开发团队说了算,当开发团队因缺乏资源完成进度和质量目标时,开发团队可以通过EP团队的临时支援协助达成目标。
  开发团队与EP团队之间的合作模式,还应该是开发团队有需求时拉上EP团队来共同工作。而不应该是EP团队去推动开发团队,开发团队被动使用EP团队资源来共同工作。如果开发团队被动的被EP团队推动去提升工作效率和工作质量,则很可能会同时伤害到开发团队和EP团队的士气,EP团队去推动开发团队会受到很多阻力,感觉不到自我存在的价值,士气受影响。开发团队则被动的被服务,觉得自己的工作节奏受到了影响,影响自己的工作进度,心里也是不舒服的,影响士气。
版权声明:本文出自 架构师Jack 的51Testing软件测试博客:http://www.51testing.com/?293557

你可能感兴趣的:(软件测试)