`
kuwoleft
  • 浏览: 1073786 次
文章分类
社区版块
存档分类
最新评论

质量保证:是否应该保持一个独立的组织

 
阅读更多
质量保证:是否应该保持一个独立的组织
陈能技
2007-9-10
原文:Software Quality Assurance Should It Remain a Separate Organization- Johanna Rothman
产品开发组是为了组织起来制造人们会买的一个产品。组织产品开发组的第二个目的是拥有不断地制造产品的能力。为了达到这些目的,产品开发组一般组织成功能型的团队或项目型的团队。特别是在软件工程中,很多时候很难在产品开发组和SQA之间划分界限。
背景:什么是软件工程?
为了方便讨论开发组和SQA组之间是合并在一起,还是划分开来,让我们先来看一下软件工程涉及的任务:定义需求、设计和实现产品并进行测试、产品验证、发布。软件工程的目的是:通过制造人们会购买的产品来为公司赚钱。
软件工程人员必须判断对于顾客来说什么是质量,定义如何制造产品(产品开发流程),设计、实现、测试和发布产品。另外,软件工程师必须能够从前一个项目中犯的错误学习。
很多组织对质量的定义只是对缺陷的度量。然而,这是很有限的定义。为了真正地定义质量,我们还需要考虑功能、可用性、可靠性、性能和配套支持。把项目的质量定义好了,才能更加精确地制定流程和权衡项目。
软件工程角色
我们来看看软件开发和软件质量保证人员的角色。软件开发人员定义需求、设计和实现产品,并最低限度地验证产品是否满足需求。开发人员经常使用功能规格、设计文档和原型来帮助定义需求。当开发人员设计和实现代码时,他们编写详细的设计文档、编写代码,编译并进行单元测试。开发人员也会通过集成测试来验证产品。
软件质量保证人员,产品的验证者,定义产品的测试需求、设计、实现和验证测试,验证产品符合需求。SQA工程师使用测试规格和测试场景设计来帮助定义测试和产品需求。当SQA工程师设计、实现和验证测试时,他们会编写详细的测试场景、编写测试脚本代码或测试用例、编译并验证测试代码。他们通过系统测试来验证产品满足需求-系统地测试产品的所有功能。
在这两个过程中有明显的相似之处:都定义需求,设计和实现产品或测试代码并验证他们的开发活动。产品开发人员的输出专注于可交付的产品-发布的代码。产品验证者的输出专注于不交付的产品-保留的(测试)代码。
但是也有很多不同之处:开发人员倾向于专门的领域-他们理解和开发产品的一个相对窄的领域。SQA工程师倾向于拥有更全面的视角-他们理解产品的整体并收集数据以理解产品的状态。因此,即使过程很类似,工作的专注点有较大的区别。
专注点的不同往往导致技术技能的不同,特别是在测试区域。单元测试开发需要产品代码的知识,对代码覆盖的理解并指导怎样衡量。集成测试需要明白配置管理系统并知道如何正确地集成产品。另外,集成测试需要有系统的架构知识,从而恰当地整合这些基本的测试。系统测试除了需要不同的技术外,系统测试开发还需要产品和代码的知识,用于发现和测试错误集中的区域。
既然软件产品开发的目的不仅仅是制造一个产品,而是重复成功地制造更多的产品。我们能否利用这些开发和验证之间的相似过程来组织软件产品开发呢?
功能型产品开发组织
如果产品开发是以功能型来组织的,开发人员、SQA、文档人员、工具、发布工程师都是独立的小组。一般会有比较多的开发人员或开发小组,所以开发组就默认地拥有了产品开发方法论。开发人员定义他们做什么,其他小组的职责是什么,开发人员是产品开发的驱动力量。一般SQA组拥有的是验证和发布过程。SQA定义测试什么和什么时候测试,发布的标准是什么。
这种功能型的组织的好处是:
1、产品的创作者和测试者至少在技术贡献方面是独立的。
2、经理知道如何培养这个组织
问题是:
1、SQA很迟才参与到项目周期中
2、即使选中的是一个全面的项目领导,也很难有动力去改进产品开发过程
3、缺乏跨组织功能的指导和增长
功能型经理,授权的团队
在这个模型下,还是会划分功能区域:开发经理、SQA经理和他们的职员。管理层拥有方法论、工具、过程问题。团队拥有产品开发、文档和验证过程。目的是在一个大的项目组中创建一个小的项目组,然后允许技术贡献者选择最合适自己的角色。
这跟传统的矩阵型管理类似,但是传统的矩阵型管理由经理为项目组指定角色。授权型的项目组为每一个项目组成员选择合适的角色。
项目组成员定义他们自己的角色,怎样工作。经理在有问题时进行指导。也会有集中的组,如果他们为不同的组工作的话,例如工具开发组。
这种组织的好处是:
1、项目组把问题系统地考虑、系统地解决。
2、经理能更容易保持项目历史记录
3、这使得人们更容易进行职业培训。能者多劳,不能者少做点。
4、项目组成员可以在整体的产品开发流程中正确地定义工作-他们能用适合他们自己的要求的方式定义如何使用流程
问题是:
1、不够稳定,因为不能满足很多经理的控制要求
2、经理可能会偷懒不去记录全体的历史
3、如果管理层对角色定义有太多的输入,技术贡献者可能会被归类成一种角色
4、这对于小团队不实用(30人以下)
自我组织的产品组
自我组织的产品组由经理作为项目领导。管理层的作用是职业培训、为项目组争取好的项目。
关键点是项目领导不掌握所有信息-项目知识被项目组成员共享。
项目组成员之间必须互相信任,共享知识并拥有足够的能力来完成工作。项目组成员之间可以交换角色,或使用结对制。
交换角色的例子如下:
Module
Product Code
Documentation
Test Code
Tool Code
A
Jo
Jim
Jack
Jill
B
Jill
Jo
Jim
Jack
C
Jack
Jill
Jo
Jim
D
Jill
Jo
Jim
Jack
在这个例子里,所有人都会在所有角色之间交换。这不常见,不同的人有不同的才能和角色,他们会希望做相对固定的工作。那么结对制(buddy system)就比较高效率了。例如:
Module
Product Code
Documentation
Test Code
Tool Code
A
Sally
Sue
Sam
Stone
B
Sue
Sally
Stone
Sam
C
Sally
Sam
Sue
Stone
D
Sam
Sally
Stone
Sue
在这里,两个人工作在一起,为某个任务集合服务,例如产品代码或文档、测试代码或工具代码。取决于模块,有些人也会转换角色,但是仍然与同伴一起在同一个模块工作。
这种组织的好处是:
1、除了用系统的方法解决问题外,项目组还能学习流程和产品。个人还可以选择学习哪个区域。
2、项目组有能力进入一个高效的产品开发状态
3、项目组能快速地开发它的工具和方法论
4、项目组能以适合自己的方式定义怎样使用流程
5、项目组完全是自我授权的。
问题是:
1、组织是不稳定的,因为不能满足很多经理的控制需求
2、即使经理保持了项目组的整体历史记录,项目组还使必须找到方法传递它的知识。对于如何把成功的项目组经验传递给其他组没有清晰的答案。如果这个项目组分解了,项目组成员的知识如何传递?
3、如果项目组缺乏能力,或者知识有限,项目组会失败
4、如果管理层对角色定义有太多的输入,技术贡献者可能会被归类成一种角色
5、这种方式可能不适用于大的组织(70人以上)
结论
产品开发组织专注在开发高质量的产品,以便满足用户购买的需要。需要考虑最佳的组织结构。不是为了组织需要而把任务和人分割到功能型的小组。产品可能需要一个专注于项目的小组,专注于产品,而不是组织结构。
当产品开发组考虑他们的组织需要时,他们需要考虑员工、质量需求、过程需求和项目的类型。在很多情况下,把产品开发人员和产品验证人员整合到项目组会有很多积极的作用,例如对于项目进度、产品质量、项目团队知识的增长都有积极的作用。随着团队的知识的增长,管理层可以信任团队是可以满足进度和产品发布要求的。
尤其是作为从开始阶段转入成熟阶段的公司产品,管理层必须有灵活的方法管理团队组织。即使管理达到某种程度的成功,但是能否保持每次都成功才是管理的关键所在。
分享到:
评论

相关推荐

    企业质量管理和质量保证标准——选择和使用指南.doc

    注2在表11.3.1中ISO9000一行使用“分供方”这一术语,是相对“供方”使用自定义术语来强调三个组织单位的供应链关系。适当时,特别在讨论质量管理环境时,使用术语“组织”比用“供方”更好。 注3在表11.3.1中ISO...

    论文研究 - 批量质量保证调查(LQAS)作为实现高质量LLIN运动的策略:尼日利亚的经验

    方法:在五个州进行了横断面调查,使用世界卫生组织开发的批量质量保证调查(LQAS)工具进行了LLIN更换活动。 整个州的调查时间为2017年8月至12月。LQAS问卷由经过培训的世界卫生组织外勤人员向家庭(HHs)进行了...

    XX住宅小区工程施工组织设计.doc

    (2)执行技术方案,组织样板施工,实施质量预控和过程监控管理,严格按照项目质量计划和工程质量评定标准、国家规范进行监督、检查; (3)负责编制项目月、周计划及统计工作,控制分包单位的施工进度安排; (4)...

    ISO 9001 质量管理体系要求

    国际标准ISO9001由ISO/TC176/SC2质量管理和质量保证技术委员会质量体系分委员会制定。 ISO9001 第四版取代第三版 ISO9001:2000,包括对这些文件的技术性修订。原已使用 ISO9001:2000 的组织只需按本标准的规定调整...

    毕业设计:题库与试卷生成系统(源代码)

    每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。 (2)将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,...

    XX学院10号学生公寓工程施工组织设计.doc

    (1)本施工组织设计编制参照我公司以往类似工程的施工经验, 针对工程特点, 重点从科学的施工管理、最佳的施工程序、严格的质量控制、先进的施工方法、有效的技术组织、合理的总平面布置等方面作出规划, 在确保工程...

    程序文件及管理规定.docx

    1.1.3 质保工程师 1.1.3.1 协助总经理制定质量方针和质量目标,在总经理的领导下,负责压力容器制造质量保证体系的建立、实施、保持和改进并确保其有效运行; 1.1.3.2 按照质保手册的规定对各质控系统的工作进行...

    ISO9000 质量手册.doc

    全公司所有与质量有关部门和人员都应该严格遵守执行,以保证我公司产品质量稳步提高,提高市场占有率,使公司取得最佳的经济效益和社会效益。 同时授权 高振军同志为管理者代表,作为质量管理体系实施、保持持续改进...

    TS16949培训教程.doc

    1955年,北大西洋公约 组织采取美军供应军品采购的需求下,所订立的质量保证标准MIL—Q—9858及MIL—I—4520 8之精华,而发展出一套质量保证的标准—AQAP( Allied Quality Assurance Publications )。 AQAP将"质量...

    论文研究 - 确定过滤器基板上重量法颗粒质量沉积的另一种技术:颗粒提取法

    尽管过滤器称重设施应实施可靠的质量保证和控制检查,以确保数据收集准确且过滤器存储安全,但仍可能发生会破坏有价值数据的错误和事故。 本文介绍了一种用于PM过滤器样品处理的新颖方法,该方法可以在确保数据完整...

    嵌入式系统软件的全过程质量保证

    而在这些领域,对产品质量从来就保持着高度的重视,有将“质量视为产品的生命”的传统。这样,相关行业的高层管理人员和开发人员对于软件的质量也逐渐提高了重视程度。近年来,在组织上,建立了完善的软件测试体系;...

    后端开发开发技巧总结与入门常用的技巧总结.docx

    服务化架构:采用微服务架构,将复杂系统拆分为多个独立可部署的服务。 日志记录:详尽且有组织地记录日志,方便问题定位和追踪。 测试驱动开发:坚持单元测试、集成测试,保证代码质量。 持续集成/持续部署(CI/...

    敏捷测试的团队构成

    ”希望保持质量保证团队与开发团队分离的原因有:团队经常混淆“独立的”和“分离的”。如果汇报结构、经费和过程保持在离散的功能区域,程序员和测试人员间的分离是必然的。这可能导致摩擦、竞争和“我们VS他们”的...

    实验室质量体系程序文件之QSP03文件控制和维护程序.doc

    4.4.3 技术主管根据检测工作的需要,组织编写检验实施细则、仪器设备操作规程、质量保证 工作计划等技术性文件,并负责对文件进行审核,报副主任批准后实施。 4.4.4 综合业务室根据实验室领导的要求和日常管理工作...

    实验室质量体系程序文件之QSP03文件控制及维护程序文件.doc

    4.4.3 技术主管根据检测工作的需要,组织编写检验实施细则、仪器设备操作规程、质量保证 工作计划等技术性文件,并负责对文件进行审核,报副主任批准后实施。 4.4.4 综合业务室根据实验室领导的要求和日常管理工作...

    实验室质量体系程序文件之QSP03文件控制和维护程序(1).doc

    4.3 技术主管根据检测工作的需要,组织编写检验实施细则、仪器设备操作规程、质量保证 工作计划等技术性文件,并负责对文件进行审核,报副主任批准后实施。 4。4。4 综合业务室根据实验室领导的要求和日常管理工作的...

    手册程序文件学习材料.doc

    如工商局,看到我们手册中健全的 质量保证体系会放心与我们合作。 c为省质量技术监督部门对本所实施资质认定、中国合格评定国家认可委员会的实验室 认可提供参考资料。 3. 适用范围:本质量手册适用于资质认定范围内...

    ISO9000标准培训教程.pptx

    (二) 2008版ISO9000族标准制定原则 适用于各种类型、不同规模和提供不同产品的组织(通用性和灵活性) 使用简便、表达清晰、易于理解 为组织的改进实施提供一个坚实的基础 更大程度着地眼于持续改进和顾客满意 ISO...

Global site tag (gtag.js) - Google Analytics