研发管理和过程改进的概念(终审稿)
研发管理的质量管理与持续改进

研发管理的质量管理与持续改进引言质量管理是每个组织在研发过程中必不可少的一环。
在研发管理中,质量管理的目标是确保产品或服务符合客户的期望并满足相关的质量标准。
持续改进是质量管理的重要组成部分,它可以帮助组织不断优化研发过程,提高产品质量和团队表现。
本文将介绍研发管理中的质量管理方法,并探讨如何进行持续改进。
质量管理方法1. 确定质量目标在研发项目开始之前,需要明确质量目标,即确定产品或服务应满足的质量标准和指标。
这有助于团队了解客户的期望,并为后续的质量管理工作奠定基础。
2. 设计质量管理计划质量管理计划是一个详细的计划,描述了如何进行质量管理活动。
它包括质量标准、质量控制方法和质量保证措施等内容。
质量管理计划应该根据研发项目的特点进行个性化设计,并明确责任和时间表。
3. 进行质量控制质量控制是评估和监控产品或服务是否符合质量标准的过程。
它包括对关键过程进行监测和检查,以及对产品或服务进行测试和验证。
通过质量控制,可以及时发现问题并采取纠正措施,以确保产品或服务的质量。
4. 实施质量保证措施质量保证措施旨在确保研发过程符合质量要求,以达到产品或服务质量的稳定和一致性。
这包括培训和指导团队成员,建立质量文化,提供必要的资源和支持等。
通过质量保证措施,可以最大程度地降低质量风险,并保证项目的成功。
持续改进质量管理的目标不仅仅是满足质量标准,还包括不断提高产品质量和团队绩效。
持续改进是质量管理中的关键环节,可以通过以下方法实现:1. 设立改进目标明确改进的目标和方向是持续改进的第一步。
团队需要分析当前的研发过程和产品质量,并确定改进的重点领域。
改进目标应该具体、可衡量,并与组织的整体战略目标相一致。
2. 应用质量工具和方法质量工具和方法是帮助团队进行问题分析和改进的利器。
例如,流程图、鱼骨图、统计分析等工具可以帮助团队了解问题的根本原因,并找到改进的方向。
团队应该根据具体情况选择适当的工具和方法,并通过培训和学习不断提升自己的改进能力。
研发项目的质量管理与持续改进措施

设定明确的衡量指标
为改进措施设定明确的衡量指标,以便评估 其效果和影响。
调整和优化
根据评估结果,及时调整和优化改进措施, 确保其持续有效性和可行性。
01
研发项目质量管理 与持续改进案例研
究
案例一:某科技公司的需求管理改进
总结词
明确需求、减少变更
详细描述
某科技公司在进行研发项目时,面临需求频繁变更的问题。通过明确需求、加 强与客户的沟通,以及采用需求管理工具,该公司有效减少了需求变更,提高 了项目质量和客户满意度。
量要求。
感谢观看
THANKS
THE FIRST LESSON OF THE SCHOOL YEAR
针对识别出的改进机会,制定具体的改进计划,包括目标、实施步 骤、时间表等。
跨部门协作
鼓励跨部门协作,共同实施改进措施,确保措施的有效性和可行性 。
提供培训和支持
为员工提供必要的培训和支持,确保他们具备实施改进措施的能力 和资源。
监控改进效果
定期评估和报告
定期评估改进措施的效果,并向相关人员报 告进展情况。
研发项目的质量管理 与持续改进措施
THE FIRST LESSON OF THE SCHOOL YEAR
目录CONTENTS
• 研发项目质量管理概述 • 研发项目质量管理关键要素 • 研发项目持续改进措施 • 研发项目质量管理与持续改进案例
研究
01
研发项目质量管理 概述
定义与重要性
定义
研发项目质量管理是指对研发项目的 质量进行策划、控制、保证和改进的 一系列活动,以确保研发成果符合客 户需求,并提升企业的竞争力。
重要性
随着市场竞争的加剧,产品质量已成 为企业生存和发展的关键因素。研发 项目的质量管理不仅关系到企业的声 誉和市场份额,还直接影响到企业的 经济效益和长期发展。
软件开发过程改进与管理研究

软件开发过程改进与管理研究随着科技的发展和互联网的普及,软件已经成为了人们生活和工作中必不可少的一部分。
在软件开发过程中,软件工程师需要面对各种需要解决的问题,如繁重的代码编写,与团队成员的合作和沟通,以及软件测试和维护等方面。
在这个情况下,软件开发过程的改进和管理变得非常重要。
一、软件开发过程的改进1. 敏捷开发流程传统的软件开发流程往往需要花费大量的时间和精力,而且不太能够适应快速发展的市场需求。
因此,敏捷开发流程被提出,并且逐渐被许多企业所采用。
敏捷开发强调快速交付、充分沟通和合作等,利用迭代和增量的方式去实现软件开发流程的改进。
通过使用敏捷开发流程,软件工程师可以更快地将软件发布到市场上,并且能够更好地满足客户的需求。
2. 持续集成持续集成是一种软件开发流程,它可以将代码提交到版本库之后,自动地实现代码打包、测试和部署等功能。
通过这种方式,团队可以更加快速地对软件进行不断的改进和测试,从而得到更好的软件质量。
3. DevOpsDevOps是一种软件开发流程,它综合了开发和运维的工作。
通过使用DevOps,团队可以更加快速地进行部署和维护,从而更好地服务于业务和客户需求。
二、软件开发过程的管理1. 代码评审代码评审是指通过与其他软件工程师一起审查和重构代码的方式,对代码进行质量评估。
通过使用这种方式,团队可以更好地发现和修复代码的问题,从而提升软件的质量。
2. 制定和执行标准化的软件过程为了使软件开发过程更加规范化和标准化,团队需要制定一系列标准化的软件过程。
这些过程包括代码管理、版本控制、测试和部署等各个方面,以及不同职责的人员在软件开发过程中的具体角色和职责。
3. 项目管理在软件开发过程中,团队需要对项目进行全面的管理和跟踪。
这包括计划、预算、风险等方面。
通过使用项目管理工具,团队可以更好地跟踪项目进度和成果,从而更好地控制项目质量和进度。
总结软件开发是一个复杂的过程,需要在团队协作、流程优化和质量管理等方面得到持续的改进和管理。
研发管理中的质量控制与改进

研发管理中的质量控制与改进引言在竞争激烈的市场环境中,质量控制和改进在研发管理中扮演着至关重要的角色。
企业必须通过良好的质量控制措施来确保产品符合高质量标准,以满足客户的需求和期望。
同时,持续改进也是不可或缺的,以提高产品质量和研发效率,为企业获取竞争优势。
本文将探讨研发管理中的质量控制与改进的关键要素和最佳实践。
质量控制的关键要素1. 规范和流程规范和流程是质量控制的基石。
研发团队应建立明确的规范和流程,以确保工作按照统一的标准进行。
规范可以包括代码编写规范、文档编写规范等,流程可以包括需求分析、设计、开发、测试等环节。
通过规范和流程的设定,可以降低错误和缺陷的出现,并提高产品的质量。
2. 测试和验证测试和验证是质量控制的重要环节。
研发团队应该建立全面的测试计划,并通过各种测试手段对产品进行验证。
测试可以包括单元测试、集成测试、系统测试等,验证可以包括用户验收测试、性能测试等。
通过充分的测试和验证,可以及早发现和修复潜在问题,确保产品达到高质量的要求。
3. 审查和评估审查和评估是质量控制的重要手段。
研发团队应建立审查制度,包括代码审查、文档审查等。
审查可以帮助发现问题和改进点,并增进开发团队的沟通和合作。
同时,研发团队还应该进行定期的质量评估,通过数据分析和关键绩效指标监控,评估和改进质量控制措施的有效性。
质量改进的最佳实践1. 持续改进文化建立持续改进的文化对于研发管理中的质量改进至关重要。
研发团队的每个成员都应该积极参与到改进过程中,提供改进建议和反馈意见。
同时,企业应该鼓励团队成员学习和创新,并提供相关的培训和资源支持。
通过建立持续改进的文化,可以不断提高团队的质量意识和改进能力。
2. 数据驱动的改进数据驱动的改进是质量改进的重要方法。
研发管理团队应该收集和分析质量相关的数据,包括缺陷率、客户反馈等。
通过数据分析,可以发现质量问题的根本原因,并制定针对性的改进措施。
同时,数据还可以用于监控和评估质量改进的效果。
研发项目的质量管理与持续改进措施 (2)

PART 02
研发项目质量管理方法
REPORTING
质量策划
制定明确的质量目标和要 求
在项目开始阶段,明确项目的质量目标和要 求,确保所有相关人员对质量标准达成共识 。
进行需求分析和风险评估
对项目需求进行全面分析,识别潜在的质量风险, 为后续的质量控制和质量保证提供依据。
制定质量计划和流程
根据项目的特点和要求,制定详细的质量计 划和流程,明确各阶段的质量控制要点和标 准。
制定改进计划
根据识别出的改进机 会,制定具体的改进 计划,包括改进目标 、方法、资源和时间 安排等。
实施改进措施
按照改进计划,组织 团队成员实施改进措 施,确保计划的顺利 执行。
监控与评估
对改进过程进行监控 和评估,确保改进措 施的有效性和目标的 达成。
总结与反馈
对改进结果进行总结 和反馈,总结经验教 训,为后续的改进提 供参考和借鉴。
识别改进机会
通过质量策划、质量控制和质量保证过程中发现 的问题和不足,识别改进机会和方向。
制定改进计划
针对识别出的改进机会,制定具体的改进计划和 措施,明确改进目标、责任人和时间安排。
3
实施改进并验证效果
按照改进计划实施改进措施,并对改进效果进行 跟踪和验证,确保改进成果得到有效应用和持续 优化。
PART 03
案例三:某软件公司的持续改进过程
总结词
数据驱动,持续改进
详细描述
该软件公司注重收集用户反馈和数据分析, 针对产品问题进行持续改进。通过迭代开发 和版本控制,不断优化软件性能和功能,提 升用户体验和满意度。
THANKS
感谢观看
REPORTING
技术选型
针对项目需求和市场状况,选择合适的技术方案 和框架,确保项目的技术可行性和先进性。
研发过程中的质量控制与改进

研发过程中的质量控制与改进在现代科技发展日新月异的时代,研发工作对于企业的竞争力显得尤为重要。
然而,研发工作的质量控制和改进是一个不可忽视的环节。
本文将探讨研发过程中的质量控制与改进的重要性,并介绍一些质量控制和改进的实践方法。
在研发过程中,质量控制和改进是确保产品和服务质量的关键步骤。
质量控制的目的是确保研发过程中产品或服务的一致性和符合要求的性能。
而质量改进则是为了不断提高产品或服务的质量水平和满足客户需求,从而提升市场竞争力。
只有不断进行质量控制和改进,企业才能在激烈的市场竞争中保持竞争力。
定期的质量评估是研发过程中质量控制与改进的一个重要环节。
通过定期评估研发过程中的问题和挑战,可以及时发现和解决质量问题,提高研发过程的整体质量。
评估的内容包括但不限于研发流程、人员技能和方法论等。
定期的评估有助于发现问题的根源,为改进提供指导。
研发过程中的数据分析是质量控制与改进的重要手段。
通过对研发过程中的数据进行统计和分析,可以深入了解研发工作的状况,并找出潜在的问题和改进的机会。
数据分析可以帮助研发团队更好地理解研发过程中的变量和关系,从而采取相应的措施来改进质量。
研发过程中的协同合作也是质量控制与改进的关键因素。
在研发团队中,各个成员之间的合作和沟通对于提高研发过程的质量至关重要。
团队成员之间的相互配合和沟通交流可以帮助减少误解和冲突,提高工作效率和质量。
而且,团队成员之间的互相学习和知识分享也可以促进质量的改进和提升。
研发过程中的持续改进和创新是质量控制与改进的核心。
持续改进的理念是指不断寻求和实施改进措施,从而提高研发过程中的效率和质量。
创新则是指引领企业在行业中取得竞争优势的关键因素。
只有不断改进和创新,企业才能适应市场变化、迎接挑战,并在同行业中脱颖而出。
研发过程中的质量控制与改进需要制定明确的目标和指标。
通过制定可度量和可跟踪的目标和指标,可以帮助研发团队更好地了解质量状况,并在此基础上采取相应的措施来改进质量。
研发管理制度理念-概述说明以及解释
研发管理制度理念-范文模板及概述示例1:研发管理是指企业在进行研发活动时所采取的管理措施和方法。
它的目标是为企业创新提供支持,促进研发项目的顺利进行并提高研发效率和研发成果质量。
在这篇文章中,我将讨论研发管理制度的理念。
研发管理制度的理念是一套指导企业研发管理行为的准则和原则。
它是建立在对研发管理实践和经验的总结基础上,旨在提供一种科学、规范和有效的管理方式。
研发管理制度的理念可以包括以下几个方面:1. 创新导向:研发管理制度应该以创新为核心,鼓励员工提出新的想法和解决方案,并为他们提供创新的环境和资源。
2. 目标导向:研发管理制度应该设定明确的研发目标,并建立相应的绩效评估机制,以确保项目按计划完成,并达到预期的成果。
3. 项目管理:研发管理制度应该建立科学的项目管理制度,包括项目招标、计划安排、资源分配、风险评估等环节,以确保项目的顺利进行和高效管理。
4. 资源支持:研发管理制度应该提供必要的资源支持,包括资金、设备、人员和信息等,以确保研发项目能够得到充分的支持。
5. 团队合作:研发管理制度应该鼓励团队合作和知识共享,打破部门之间的壁垒,促进不同专业和领域的交流与合作。
6. 管理创新:研发管理制度应该不断创新和改进,吸收国内外先进的管理理念和方法,并根据企业的具体情况进行适当调整和优化。
这些是研发管理制度理念的一些基本要素。
当然,不同的企业可能有不同的管理理念和偏重点,但总体而言,研发管理制度的目标都是为了提高企业的创新能力和竞争力,更好地适应市场变化和客户需求。
在撰写这篇文章时,我们可以结合具体的案例来阐述研发管理制度理念的实际应用和效果。
同时,我们也可以提出一些建议,如何建立一个科学、规范和有效的研发管理制度,以推动企业的创新和发展。
总之,研发管理制度的理念是企业研发管理的核心和基础,它为企业提供了一种指导和支撑,以推动研发活动的顺利进行和高效管理。
示例2:研发管理制度理念是指在研发活动中,组织和管理研发团队所采用的一系列制度、规范和方法。
研发过程的质量管理与持续改进
测试阶段的质量控制
功能测试
对产品的各项功能进行测试,确保功能符合需求 。
性能测试
对产品的性能进行测试,确保产品在各种负载下 的稳定性和可靠性。
安全测试
对产品的安全性进行测试,确保产品在面临威胁 时的防护能力。
03
研发过程中的质量保 证
质量改进
发现并解决质量问题,持续优化研发过程,提高 产品质量和效率。
02
研发过程中的质量控 制
需求分析阶段的质量控制
需求调研
通过深入了解用户需求,确保产品或服务的功能和性 能符合用户期望。
需求评审
对收集到的需求进行评估,确保需求的准确性和完整 性。
需求变更管理
对需求变更进行跟踪和控制,确保变更对项目的影响 最小化。
发过程,提高产品质量。
质量保证与质量控制的关系
总结词
质量保证与质量控制相互关联,共同构成全面质量管理的基础。
详细描述
质量保证更侧重于预防和监督,强调制定明确的标准和流程,并通过审计等方式确保研发过程符合这些标准。而 质量控制则更侧重于实时监控和问题解决,通过测试、检查等方式确保产品或服务的质量。两者相辅相成,共同 推动研发过程的持续改进和产品质量的提升。
设计阶段的质量控制
架构设计
根据需求分析结果,制定系统或产品的整体架 构。
详细设计
对系统或产品的各个模块进行详细设计,确保 模块间的协调性和可扩展性。
设计评审
对设计成果进行评估,确保设计的合理性和可行性。
开发阶段的质量控制
代码审查
对代码进行审查,确保代码质量、可读性和 可维护性。
单元测试
对每个模块进行测试,确保模块功能的正确 性和稳定性。
研发管理的项目管理和流程改进
研发管理的项目管理和流程改进引言研发管理是指企业在开展研发活动时,通过科学的管理手段,合理地组织和调度资源,以达到高效率、高质量的研发工作。
项目管理和流程改进是研发管理中的重要组成部分,能够帮助企业实现项目目标、提高研发效率以及优化产品质量。
本文将重点介绍研发管理中的项目管理和流程改进,并探讨其在提升企业竞争力方面的重要性。
项目管理项目管理是指通过科学的方法来规划、组织、引导和控制项目的各项活动,以达到项目的目标。
在研发管理中,项目管理起到了极为重要的作用。
以下是一些常见的项目管理工具和方法:1.项目计划:项目计划是项目管理的基础,它包括项目的目标、范围、时间和资源等方面的规划。
通过项目计划,可以明确项目的执行路径,确保项目按时交付。
2.项目进度管理:项目进度管理可以帮助团队掌握项目的实际进度情况,并进行及时调整。
常用的项目进度管理工具包括甘特图和里程碑等。
3.风险管理:风险管理是指通过风险识别、评估和应对措施的制定,降低项目风险的发生概率和影响程度。
风险管理可以帮助研发团队及时应对潜在的问题,保证项目的顺利进行。
4.问题管理:问题管理用于跟踪项目中出现的问题,并提供解决方案。
通过问题管理,可以及时发现和解决问题,避免问题对项目进展造成不良影响。
5.项目评估:项目评估用于评估项目的结果和效果,以及对研发团队的绩效进行评估。
通过项目评估,可以不断改进和提升项目管理的水平,提高项目的成功率。
,项目管理在研发管理中的作用不可忽视。
通过科学的项目管理方法,可以更好地组织和调度研发资源,提高项目的效率和质量,从而实现企业的发展目标。
流程改进流程改进是指通过改进研发过程中的各类业务流程,以达到提高效率和质量的目的。
在研发管理中,流程改进可以帮助企业在开展研发活动时更加高效和灵活。
以下是一些常见的流程改进方法:1.流程分析:流程分析是指对研发过程中的各个环节进行分析,找出存在的问题和瓶颈,并提出改进方案。
通过流程分析,可以优化研发流程,提高研发效率。
软件开发过程中的质量管理与改进研究
软件开发过程中的质量管理与改进研究在软件开发过程中,质量管理与改进是至关重要的方面。
而随着技术的不断进步,软件开发过程变得更加复杂,质量管理与改进也变得愈发关键。
本文将探讨软件开发过程中的质量管理与改进,并提出一些相关研究。
质量管理是指在软件开发过程中,通过一系列措施和方法来确保软件产品满足用户需求和质量标准的过程。
在质量管理中,需求管理是一个重要的环节。
在软件开发过程中,需求管理要求清晰明确地理解用户需求,并将其转化为软件功能规范。
只有确保需求的准确性和一致性,才能避免后续开发过程中产生的问题。
在软件开发过程中,测试也是质量管理的一部分。
测试活动旨在发现并修复软件中的错误和缺陷。
测试分为功能测试、性能测试、安全测试等不同类型,以确保软件产品的功能完整性、性能效果和安全性。
此外,质量管理还需要使用配置管理工具来跟踪和管理软件的各个版本,以便于开发团队进行代码版本控制和回滚。
除了质量管理,改进也是软件开发过程中不可或缺的一部分。
软件开发过程是一个不断迭代和改进的过程,有效地进行改进可帮助开发团队提高过程效率和产品质量。
一个常见的改进方法是引入敏捷开发原则和实践,如Scrum和Kanban等。
这些方法强调团队合作、灵活性和迭代开发,可以帮助团队更快地响应变化和提供更高质量的软件产品。
在软件开发过程中,还可以借鉴六西格玛(Six Sigma)方法和业务流程重工程(Business Process Reengineering,BPR)等质量管理工具和方法。
六西格玛方法通过数据分析和过程改进,以减少产品和过程的变异性,提高质量和效率。
业务流程重工程则通过重新设计和优化业务过程,实现流程的高效性和质量的持续改进。
为了进一步提高软件开发过程的质量管理与改进,有必要进行相关研究。
一项研究可以是分析和比较不同质量管理方法的优缺点,以确定最适合特定组织环境的方法。
另外,可以研究如何将质量管理与软件工程过程模型(如Waterfall、V字模型、敏捷开发等)相结合,以提高质量管理的效果和适应性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研发管理和过程改进的概念TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】Integrated Development Processes 第1章研发管理和过程改进的概念上海漫索计算机科技有限公司1.1 研发管理的概念企业的根本目标是“合法地赚取尽可能多的利润,使企业整体利益最大化”。
企业所有的特定目标和行动(例如研发、营销等)都是围绕根本目标开展的,不能和根本目标抵触。
企业研发管理的指导思想是:关注结果,重视过程。
“关注结果”是指:以最终产品获得的经济效益来衡量研发业绩,追求利益最大化。
“重视过程”是指:将期望的成果分解到每个过程域(即工作环节)去实现,努力把每项工作做好,从而得到好的成果。
衡量研发工作优劣的三个关键指标是:质量、生产率和成本。
人们在工作的时候总是希望:做得好(即质量高)、做得快(即生产率高)而且少花钱(即成本低)。
如果出现三者难以同时兼得的情况,那么决策者一定要搞清楚质量、生产率、成本之间的复杂关系,判断孰重孰轻,给出优化和折中的措施。
企业研发管理的目标:基本目标:让所有人员有条不紊地开展工作,在预定的时间和成本之内,开发完成质量合格的产品,从而使企业和个人获得预定的利益。
奋斗目标:调动一切积极因素,努力提高产品质量、提高工作效率并且降低成本,使企业和个人获得比预定目标更多的利益。
在IT企业中,软件研发管理所涉及的主要过程域有:商务过程域:合同项目和自主产品的立项管理,合同项目客户跟踪,产品优化和市场推广。
项目管理过程域:项目规划与监控,风险跟踪和变更控制,结项管理。
项目开发过程域:需求开发,设计,实现,测试,试用与验收等。
机构支持过程域:质量管理,软件配置管理和文档管理,客户服务和维护,跨部门协作等。
上述过程域中的任何活动都会影响研发项目的质量、时间和成本。
人们显然难以一股脑地把所有的事情做好,需要合适的管理方法。
企业里大部分工作是成熟的,有现成的模式可以套用,这类工作应当靠流程制度来管理,可比喻为“法治”。
企业中还有一部分工作可能是独特的,并不适宜套用流程制度(也可能没有流程制度可以套用),相关人员要当机立断、高效地处理问题,可比喻为“人治”。
一般地,企业既需要大量的“法治”管理方式,又需要小量的“人治”管理方式。
通常前者约占60-80%,而后者约占20-40%。
“法治”和“人治”结合使用是企业管理的重要手段。
企业领导要关注两点:一是建立合适的流程制度(实现良好的法治);二是使用合适的人(实现良好的人治)。
国内大部分IT企业的研发管理现状是:“法治”太少,混乱的“人治”太多。
阻碍国内IT企业发展的瓶颈问题通常不是技术问题,而是杂乱无章的管理。
1.2 过程改进的概念1.2.1 什么是过程为什么要重视过程一、什么是过程人们使用合适的方法、技术、工具才能开发出用户需要的产品。
过程是指“人,方法,技术和工具”的集合,如图1-1所示。
过程被写成文档后,变成了公司的“流程制度”,公司成员们依据“流程制度”开展工作,这叫“法治管理”。
图1-1 过程示意图二、过程与产品有什么关系为什么要重视过程软件产品不能靠人们的意念瞬间完成,它需要一个研发过程。
一般情况下,好的过程才可能得到好的产品,而差的过程会得到差的产品。
当然也有相反的情况,有些人在混乱的过程中创造了很好的产品,也有些人在严谨的过程中生产出商业上失败的产品。
但这类现象不具有指导意义,本书不作讨论。
为什么要重视过程?由于公司销售的是产品而非过程,人们常常只把眼光盯在产品上,而忘了过程的重要性。
例如,领导对员工们下达命令时经常强调:“我不管你们怎么做,只要时间一到你们交付产品就行。
”其实这是一句因果关系颠倒了的话,却在业界普遍存在。
下面的故事给出了警示:如果领导不关心员工怎么做(即做事的过程),往往会得到失望的结果。
公司领导对项目经理小王说:这个软件项目对公司和客户都很重要,你们要好好干,在6个月之内完成,要让客户满意。
6个月后我来看你们的成果,为你们庆功。
每个月末,领导照例打电话问小王:“项目进展怎么样了?”小王每次答曰:“挺好。
”6个月后,领导兴冲冲地问小王:“项目完成了吧,可以交付给客户了吧?”小王说:“还有一点东西没有完成,再给我们一个月时间,肯定能够完成。
”7个月后,小王说:“出了一些小意外,我们正在解决之中,我保证下个月完成。
”8个月后,小王说:“我们正在修改某些功能,还需要一个月。
”9个月后,小王说:“我们正在完善某些功能,还需要一个月。
”领导和小王日益焦虑,……12个月后,项目终于完成了。
领导喜气洋洋地请客户来验收软件,大家都做好了庆功地准备。
客户看了软件后,大吃一惊:“这不是我们想要的软件!”在12月里,公司和客户都不关心该项目的过程,都不知道软件是怎样开发的、不知道软件做成什么模样了,都等着看最后的结果。
结果是,进度延误了6个月,终于开发完成了不符合客户需求的软件。
项目团队疲惫不堪,公司和客户损失惨重。
所以,人们既要关注结果,又要重视过程。
1.2.2 什么是过程改进企业为什么需要过程改进过程改进(Process Improvement)是指:根据企业的现实情况和发展需求,优化流程制度,努力提升人们在过程中的工作能力,从而“提升产品质量、提升生产率并降低成本”。
(注:这是本书作者对过程改进的定义)“过程改进”本身就是一件消耗时间、精力和成本的事情,那么企业为什么要做“过程改进”答案是:过程改进是企业谋求进步的需要。
企业谋求进步离不开以下两点:(1)企业人士要不断学习新技术,开发新产品,开拓新业务领域。
(2)企业人士要不断反省自己,总结经验教训,改正缺点、发挥优点。
后者就是“过程改进”。
过程改进体现了“自我反省、自我改进”的精神,不论对人生还是对企业而言,都是极为重要的。
1.2.3 软件过程改进和CMMI之间的关系在二十世纪七、八十年代,软件工程的研究重点是需求分析、软件设计、编程、测试、维护等领域的方法、技术和工具,我们称之为经典软件工程。
应该说现代的软件技术、软件工具要比几十年前好不知道多少倍,可是如今绝大多数软件项目依然面临着质量低下、进度延误、费用超支这些老问题。
人们逐渐意识到,由于机构管理软件过程的能力比较弱,常常导致项目处于混乱状态,过程混乱使得新技术、新工具的优势难以体现。
经典的软件工程不是不好,而是不够用。
提高软件过程能力的实践通称为软件过程改进(Software Process Improvement)。
软件过程改进的目的是:提高软件质量、提高生产率并且降低开发成本。
从二十世纪九十年代至今,软件过程改进成为软件工程学科的一个主流研究方向,其中CMM/CMMI是该领域举世瞩目的重大成果。
CMM/CMMI是世界范围内用于衡量软件过程能力的标准。
人们往往搞不清楚“软件过程改进”和“CMMI等级评估”之间的关系,经常混为一谈。
本节作个比喻来解释:把“软件过程改进”比喻为“学英语,提高英语能力”,那么“CMMI等级评估”就好比是“英语等级考试”。
一般情况下,英语等级考试的成绩反映了英语能力。
但是,在特别擅长应试的中国,英语考试成绩很好并不见得英语能力很好,甚至差到“哑巴英语”的程度。
这种“特性”传染到软件领域,不少企业虽然通过了高级别的CMMI等级评估,但是其实际的软件过程能力却非常底下。
软件过程改进的真正目的是提高机构的软件过程能力,而不是为了达到CMMI高等级。
“汝果欲写诗,功夫在诗外”,这是很好的启示。
1.2.4 有了CMMI为什么还要研制企业的过程规范?卡内基梅隆大学软件工程研究所发布的CMMI for Development 1.2版本,厚达560页。
既然有了全世界认同的“CMMI宝典”,企业为什么还要研制自己的软件过程规范呢?解答这个疑问,我们首先要搞清楚“CMMI是什么”以及“CMMI不是什么”。
CMMI是世界范围内用于衡量软件过程能力的标准,但是CMMI不是软件过程改进的执行标准,不可能存在适合所有企业的执行标准。
就如“英语四六级考试”是中国所有大学都认同的评估大学生英语能力的标准,但是“英语四六级考试大纲”绝对不是“学好英语的标准”。
不能把“CMMI宝典”直接作为企业的软件过程规范,主要原因如下:CMMI的560页文本论述了二十多个过程域和数百条实践,但是这些“过程域和实践”没有与“企业的具体业务和组织结构”衔接起来。
有些企业死搬硬套CMMI,竟然按照CMMI文本的逐个遍历CMMI的过程域和实践,这种方式非常迂腐可笑:如同给一个病人治病,不考虑病人需要吃什么药,却把药店里面的药逐个儿吃一遍,以为就能治好病。
1.2.5 如何应用CMMI?既然不能全盘套用CMMI文本,那么究竟该如何应用CMMI应当根据企业的实际情况,既要裁剪CMMI过程域和实践,又要补充CMMI没有涉及的过程域和实践。
企业领导和软件过程改进工作者必须明白:企业需要吻合商业目标、容易执行的软件过程规范。
什么是裁剪?裁剪不是指用剪刀把CMMI厚厚的书剪成薄薄的书,裁剪是要动脑筋的:要分析企业的业务特征,根据自身的人力和财力,选取CMMI文本中一些重要的东西,舍弃其它不重要的东西。
至于什么是“重要的东西”,则要根据它对企业的贡献多少来衡量。
CMMI都560页厚了,为什么还要补充过程域和实践?CMMI对于软件开发和管理过程的论述非常深入,但是却没有涉及“商务过程”,例如没有谈立项管理、售前服务、售后服务等。
这是CMMI很大的缺陷。
企业开发产品的最终目的是卖出产品,赚取利润。
如果软件过程规范中不考虑商务过程的话,会导致开发团队“闭门造车”,很可能开发出“技术上很好的产品,但却是商业上失败的产品”。
1.3 过程改进的实施建议1.3.1 各级领导“亲身参与”而非“口头支持”过程改进不是闹着玩的,是需要投入人力去做的。
软件研发管理过程中所涉及的人员都应该熟悉过程规范,并掌握技能。
作者曾看到很多这样的现象:咨询师给企业员工培训过程规范的时候,各级经理总有各种理由不参加培训,当真正在项目中推行新的过程规范时候,各级经理自己却不懂,仍然按照他原先不合理的方式管理,让下属不知所措。
各级领导的主要职责是“带领团队完成目标”,他们要“亲自参与”过程改进,才能深刻体会过程的要点,掌握研发管理的方法技能。
“亲自参与”体现在:参与分析问题,商议改进对策;参与制定和自己工作相关的过程规范;参与评审;参加培训学习等等。
1.3.2 制定“合适”而非“大而全”的过程规范大凡第一次从事过程改进的人员,他们总是希望制定“大而全”的过程规范,能够覆盖企业中的所有事务。
6年前,作者带领6名研究人员在上海贝尔公司一个软件事业部(约150人)从事过程改进工作,一年时间不知不觉写了长达500页的软件过程规范以及数百页的相关指南。