过程改进方法与实践案例.docx

上传人:b****5 文档编号:12567072 上传时间:2023-04-20 格式:DOCX 页数:19 大小:107.42KB
下载 相关 举报
过程改进方法与实践案例.docx_第1页
第1页 / 共19页
过程改进方法与实践案例.docx_第2页
第2页 / 共19页
过程改进方法与实践案例.docx_第3页
第3页 / 共19页
过程改进方法与实践案例.docx_第4页
第4页 / 共19页
过程改进方法与实践案例.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

过程改进方法与实践案例.docx

《过程改进方法与实践案例.docx》由会员分享,可在线阅读,更多相关《过程改进方法与实践案例.docx(19页珍藏版)》请在冰豆网上搜索。

过程改进方法与实践案例.docx

过程改进方法与实践案例

“二十多年来,并未实现用新的软件方法和技术解决软件产业化和软件质量方面问题的承诺,工业界和政府组织认识到根本的问题是软件开发过程管理上的不足。

——DoD,ReportoftheDefenseScienceBoardTaskForceonMilitarySoftware,September1987

第1章绪论

本章主要探讨了软件开发过程、软件质量问题、传统工业的质量控制和过程改进等。

1.1软件生产过程的变迁

1945年,第一台数字计算机ENIAC诞生。

那时,科学家们使用机器语言进行编程。

从指令规模上看,多则几千条的机器指令,就已经成为一个大的程序了。

从人力规模上看,两三个科学家能一起编写一个大的机器指令程序就很了不起了。

因此,那个时候的程序开发工作更像是一种“艺术”。

随着计算机技术的发展,产生了专业的分工。

需要专业的编程人员担任程序员的角色。

汇编(Assemble)语言的诞生,使得专业的程序员避免了使用二进制指令的编码。

汇编语言是最早将各个程序模块进行组装(Assembling)的语言。

采用汇编语言进行开发时,一个项目规模可以多达上万行指令,人力资源可以多达几十个人月,开发时间也可以大大缩短。

并且人们能够对汇编语言进行代码审查,以保证代码的质量。

上世纪50~60年代,高级语言开始出现。

使用高级语言进行程序开发时,参加项目的可以多达上百人,程序的规模可以达几万到几十万行,代码的审查和测试也变得相对简单。

随着半导体工业的发展,以及计算机体系结构和设计技术的发展,计算机的硬件经历了真空管、晶体管、小规模集成电路、中规模集成电路、大规模集成电路发展的时代。

其发展的速度基本上服从摩尔定律。

摩尔定律(Moore’sLaw):

GordonMoore是Intel公司的创始人之一,他曾对半导体技术的发展作出预言。

Moore预言,半导体芯片的集成度将每两年翻一番,此后芯片的集成度实际是每十八个月就翻一番,这种发展速率被公认为定律。

——

随着计算机的普及,越来越多的地方需要计算机硬件以及驱动计算机硬件的程序和应用程序。

软件(最初的定义是程序与相关文档的集合)成为计算机应用必不可少的产品。

市场对软件产品的要求是:

在程序规模不断增加、时间有限、人力资源有限、经费有限的前提下,如何获得高质量的软件产品。

这个问题不仅仅是计算机科学家们面临解决的问题,更是涉及管理等学科的问题。

例如,如果一个软件产品需要一万人年的工作量才能完成。

那么,用一个人做一万年就是没有意义的事情。

对投资者来讲,最理想的状态是用一万人做一年。

只有这样,软件才有产业化的意义。

上世纪60年代,人们认识到软件也应当成为一种工业,并提出了通过“工程化”的方法发展软件的产业,以便能够解决软件质量和生产效率低下的困境。

1968年的NATO会议正式将“软件工程”列为专门的议题。

“软件工程”的诞生,再次表明了软件的生产应当服从工业产品的生产方式,通过采用像其他工程(例如,桥梁、机械工程)一样的制造和生产方式来开发软件产品。

然而,软件与硬件(包括电子线路、机械装置等)在故障的表现形式和生产过程上有根本的不同。

虽然软件工程能从大的概念上学习硬件工程,但是,在具体的实现方式上却有很大的差异。

1.2硬件与软件的故障特性对比

硬件是现实中存在的物理体。

硬件的工作状态受环境(例如温度、湿度、压力等)的影响。

硬件的故障服从于磨合期、工作期和老化期三个阶段,如图1-1a所示。

而软件是一个逻辑体。

软件是开发出来的(编码阶段是程序开发的重要阶段之一),而不是传统意义上的工业制造。

作为一个逻辑体,软件的测试总是不充分的。

在软件的使用过程中,会不断地发现软件本身的故障,并经过不断修改后,形成稳定运行的软件。

也就是说,理论上,软件没有“老化(wearout)”的概念。

软件被用得越多,并不断地发现和排除故障,软件的质量就越可靠。

实际上,软件也会“老化”。

软件的“老化”往往是指软件不能满足或适应人们的需求。

或者说,人们对需求的增加和更改是软件“老化”的根本原因。

对软件的需求每进行一次扩充和修改,相应的就会引入新的故障。

而新的故障会成为影响软件质量的重要因素。

因此,软件的故障曲线服从图1-1b所示的规律。

从系统的连续性和离散性来看,硬件系统是一个连续的系统,或者是时间离散的,时间离散可以归结为连续系统的一种特例。

对于一个连续系统来讲,系统的输出与输入之间所形成的函数是一个连续函数,其一阶导数是存在的,或在特定的范围内是存在的。

因此,其行为符合小线性的规律,其故障的发生也会有连贯性。

所以,硬件的故障预测相对是有规律的。

而软件是一个不连续(离散)的系统。

软件作为一个逻辑体系,是由各种状态组成的。

从时间的观点看,软件并不具备连续性(注意:

时间离散系统是连续系统的特殊形式)。

下一个状态取决于当前的状态和各种输入的事件,而输入何种事件和当前的状态不具备可预测性,除非软件被充分地测试。

“测试只能证明程序有错,而不能证明程序正确。

——Dijistra

a硬件故障发生曲线b软件故障发生曲线

图1-1硬件/软件故障特性对比

1.3软硬件的开发过程比较

作为全球最大的计算机硬件和软件系统用户,美国国防部非常重视国防系统的硬件和软件的开发及生产过程。

1985年颁布了DoD-STD-2167“国防系统软件开发”,1988年颁布了DoD-STD-2167的修订版DoD-STD-2167A[1]。

DoD-STD-2167A不仅奠定了美国国防系统,特别是软件开发的过程标准,同时也成了各个国家大型计算机软硬件生产过程的参考。

图1-2是DoD-STD-2167A所给出的国防系统的软(硬)件开发过程的例子。

GJB-2786-1996[2]的基本上沿用了DoD-STD-2167A的体系。

图1-2DoD-STD-2167A的软硬件开发过程的例子

图1-2中,赋予计算机软件配置项(CSCI,ComputerSoftwareConfigurationItem)和硬件配置项(HWCI,HardwareConfigurationItem)同等的地位。

也就是说,一个系统由多个HWCI和CSCI,以及其他配置项(例如人工操作等)组成。

尽管软件配置项的开发过程与硬件配置项的开发过程似乎能对应起来,但是,具体的开发过程仍然存在很大的差异,如表1-1所示。

表1-1软硬件开发过程在开发阶段上所表现出来的差异

开发阶段

硬件开发

软件开发

硬件需求分析

软件需求分析

硬件的需求较容易明确。

一般来讲,系统设计者会将需求比较明确的部分分配给硬件完成,以提高系统的计算速度等

用户的需求或系统分配给软件的需求一般不够充分明确。

由于软件非常灵活,因此往往将硬件无法完成或无法表述的功能分配给软件来完成

概要设计

外部接口是可见的。

与外部的通信协议等容易进行模块化、标准化设计

接口是不可见的。

即使通过明确的API、参数传递等不同的方式,也仍将引起系统接口和结构的广泛性和多样性。

模块化和标准化设计会受到限制

详细设计

研发和采购标准的零部件

缺乏软件标准件。

COTS(货架上的软件)的标准化程度差。

即使像Java这样的语言也无法完全解决可移植性问题

硬件制造/软件编码

研制过程不仅仅是脑力劳动过程,更是体力劳动过程。

其过程有形,易于测试和质量控制

研制过程主要是脑力劳动过程,代码的开发,本质上是无形的、不可见的、难以控制的。

代码的质量取决于程序员的个人能力

测试

硬件失效或故障通常是由其零部件或结合的故障引起的。

测试的重点是零部件的接口关系

程序是指令序列,即使每条指令都正确,但由于在执行时其逻辑组合状态千变万化,因此也不一定完全正确。

充分的测试是不现实的

集成

硬件的组装和集成非常直观。

功能兼容性比电气的兼容性更容易

没有电气兼容问题。

功能参数和时序的匹配是集成的最大难题

生产

其不可靠问题不仅仅是设计问题,在生产和使用过程中也会产生新的故障。

降低生产成本也是硬件开发的最主要工作之一。

生产量越大,平均成本越低

无生产问题。

生产就是简单的复制和包装

安装部署

容易安装调试

尽管傻瓜方式的安装能满足一般情况下的需要。

但是客户要求的变化,会导致系统配置的不同。

安装可能是很麻烦的事情

(续表)

开发阶段

硬件开发

软件开发

维(修)护

硬件的维护较简单,多数情况下直接更换电路板即可

软件的故障定位很难。

软件部件的耦合关系和版本的差异,使得很难做到对软件部件的简单更换。

有时,修复系统故障所需的代价比系统重新安装还要大

升级换代

服从摩尔定律,更新速度很快

升级换代时,要考虑程序、数据、商业运营规则等一系列的要求。

遗留(Legacy)系统的变更成为专门的学科

1.4软件质量观点

软件作为一种工业产品,其质量也是使用者所关注的关键问题之一。

软件质量决定着软件产品的市场和生命力。

那么如何定义软件产品的质量呢?

不同的观点会给出不同的解释。

CapersJohns认为,“不存在那些使得软件无法执行或产生错误结果的缺陷。

这些缺陷可能在需求阶段、设计阶段、编码阶段、文档阶段甚至在修正前一个缺陷时产生。

缺陷的严重程度从小到大”。

DARPA的BarryBoehm博士认为,“充分地满足用户的要求,并在可移植性、可维护性、健壮性和可适应性上达到较高水准”。

ITT主管质量的副总裁PhilCrosby认为,软件质量是其“与用户需求的一致程度”。

SEI的WattsHumphrey认为,软件应当“具有很高的适用性,能够同需求很好地吻合,并具有高的可靠性和可维护性”。

GB/T11457[3]将软件质量定义为,“

(1)软件产品中能满足给定需要的性质和特性的总体。

例如,符合规格说明;

(2)软件具有所期望的各种属性的组合程度;(3)顾客或用户认为软件满足其综合期望的程度;(4)确定软件在使用中将满足顾客预期要求的程度”。

可以将上面所反映的不同的质量观点总结为下面几种不同的质量观[10]:

1)先验论的质量观

2)用户的质量观

3)基于产品的质量观

4)基于价值的质量观

5)基于过程的质量观

1.4.1先验论的质量观

先验论将软件的质量视为可以认识但不可定义的东西。

软件质量的先验论观点同柏拉图对“理想”的描述或者亚里士多德的描述十分类似,尽管每一张桌子都各不相同,但是,每一张桌子都逼近于一张理想的桌子。

该质量观认为软件质量是我们作为一个理想所追求的,但却永远无法完全实现的目标。

例如,当要求我们生产“用户满意”的软件产品时,用户的满意代表了我们力求达到的、对质量的先验论定义的一种“认识”。

很多情况下,开发者总也无法让“用户满意”。

因为用户所表达出的理想是先验的。

例如,在信息系统的开发中,开发者第一次完成的系统与用户的要求相差甚远。

因此,双方如何面对力求达到的理想状态,将成为考核软件产品质量的依据。

由于软件开发之外的许多事情,例如,客户关系等,成为达到双方理想状态的重要因素,因此,将不可避免地出现采用许多非技术手段解决软件产品质量的方法。

1.4.2用户的质量观

用户的质量观将软件的质量视为对用户要求的满足性。

国际质量管理权威朱兰(Juran)指出:

对用户来说,质量就是对应用的适用性而不是对规格说明(specification)的符合性,最终用户一般很少知道规格说明到底是什么。

用户对质量的评价总是以产品是否适用且其适用性是否持久为基础,这是一种“用户评价第一”的质量观。

在软件领域,用户对软件质量的需求在于软件产品是否满足规定的或是隐含的需求。

其主要的兴趣在于软件的使用、软件的性能以及由使用软件所产生的效果。

例如,软件是否具有所需要的功能?

软件的可靠性如何?

软件的效率如何?

软件是否易于使用?

软件从一个环境移植到另一个环境的难易程度如何?

因此,用户对软件质量的评价并不需要了解软件的内部结构,也不需要关心软件是如何开发出来的。

“用户评价第一”很容易导致需求的不断变更。

如果盲目地遵循这种观点,可能会导致软件项目永远无法结束。

因为用户的需求总是没有办法得到全部满足。

1.4.3基于产品的质量观

基于产品的质量观将质量视为软件产品固有的有关特性。

软件产品固有的特性包括:

适用性、准确性、互操作性、一致性、安全保密性、成熟性、容错性、可恢复性、易理解性、易学性等等。

基于产品的质量观是以软件产品的质量特性是否符合规定的标准作为质量评价依据的质量观,它从内部考虑软件产品固有的特性。

持这种观点的人认为:

测量并控制软件产品的内部属性(内部的质量指示器)将会改善软件产品的外部行为(使用中的质量)。

通过测量软件产品的内部属性来评估软件产品的质量是很吸引人的,因为它提供了一个客观的和独立于具体背景的质量观点。

然而,这需要进行大量的研究,以确定内部质量的哪些方面影响着软件产品的使用。

最具有代表性的是ISO9126[4]。

1993版的ISO9126主要考虑了软件产品固有的特性。

1996版的ISO9126考虑了软件产品的内在特性、外在特性以及使用特性。

本书的第8章会有更多的论述。

对于那些能够清晰地定义出benchmark(测试基准)的软件来讲(例如,一个SQL解析器是否符合ISO的SQL-92标准,一个DBMS(数据库管理系统)的性能是否符合要求,C语言的编译器是否能够满足ANSI对C的要求等),这种观点是非常好的。

1.4.4基于价值的质量观

将软件的质量视为客户愿意为之付出的资金量。

这种质量观把“价廉物美”作为人们努力追求的质量目标,其中“价廉”代表了人们对质量的“经济性”要求,而“物美”则反映了人们对质量的“适用性”要求。

“适用性”和“经济性”构成了质量观最主要的内容。

软件产品购买者考虑软件质量的重点是了解一个软件产品是否物有所值。

在这种情况下,购买者并不关心软件的内部质量测量,而只关注软件产品的费用和潜在利益。

软件产品开发者则重点考虑,在软件产品交付之后,软件质量对软件产品在使用过程中的影响方式,以及为保证软件产品的高质量,在时间和资源方面的投资是否能够获得更高的收益和更大的市场份额。

由于激烈的商业竞争,大多面向市场的软件企业认同这样的观点。

1.4.5基于过程的质量观

基于过程的质量观是以软件开发过程是否符合规定标准作为质量评价依据的一种观点。

该观点检查软件产品是否在一开始就得到了适当的构造,以免在开发后期和软件交付之后造成返工。

不断地返工是造成软件质量低下的最大根源。

也就是说,基于过程的质量观主张生产过程符合过程要求。

ISO9000系列标准是这种观点的代表。

但是,没有任何证据表明符合过程标准就能确保生产出好的产品。

实际上,这种观点的批评者们指出:

过程标准仅能保证输出的一致性,因而可以使生产普通软件产品或劣质软件产品成为制度。

在传统工业化生产中,市场和管理人员都期望一个批次所生产出的质量是一致的。

如果这个批次的质量差,那就都差,如果好,一定要都好。

销售人员可以针对不同的产品质量,定义出不同的价格策略。

在工业化生产和经营中,令管理者和销售人员最头痛的事莫过于,一个批次的产品质量相差很大。

这种情况下,销售人员如果把价位定的高,那些所销售的次品会被客户起诉,从而影响公司的信誉;如果价位定的低,则意味着公司没有利润。

正像集成电路芯片的生产一样,次品率成为影响产业的重大因素。

软件的生产过程也具有同样的特性,即如何保持一个组织所开发的软件产品质量的稳定性。

另一方面,从统计学的规律上看,符合规程的、稳定的生产过程,就能够保证产品质量的稳定性。

这正是ISO9000系列标准、CMM模型等所坚持的生产过程决定产品质量的观点。

当然,这种观点一定要建立在统计的基础上。

1.5传统工业化生产中的产品质量控制

工业化的大规模生产方式,改变了传统的手工生产方式。

最大的变化是自动化生产线的建立。

在自动化的生产线上,生产工人和机器一样成为生产线上的一环。

人和机器都是会出错的,特别是生产线上的工人会因技术、体力、时间段等方面的差异,而表现出不同的能力行为。

因此,所生产出的产品质量会有差异。

上世纪30年代,贝尔电话公司的WalterShewhart博士就注意到了产品质量与生产过程的密切关系。

他提出了基于统计的过程控制方法,并建议在对生产过程建立统计的基础上,分四步(计划-做-研究-实施,Plan-Do-Study-Act)来改进生产过程,从而在总体上提高产品的质量。

这就是最原始的全面质量管理(TQM,TotalQualityManagement)。

二战以后,全球大规模化的工业生产再次将生产过程管理与质量控制推向了新的高潮。

下面将分析相关的一些背景状况。

1.5.1Juran的质量三部曲

1928年,JosephM.Juran出版了题为“统计方法应用于制造问题”的小册子。

1937年,Juran是WesternElectric总部的工业工程的领导人。

他访问了多家公司,讨论了质量管理的工作。

长期在工业界的工作经历,使得他在二战后成为一位备受尊敬的统计和工业工程的理论家。

他在纽约大学的管理工程系任系主任多年,并致力于给美国管理联合会(AmericanManagementAssociation)做咨询和授课。

对于质量工程师来说,1951年首次出版的JosephM.Juran的《质量控制手册》(QualityControlHandbook[5])是一本经典的教材。

其主要的理论观点如下:

1)质量策划

●标识出谁是客户

●确定这些客户的需求

●将这些需求翻译成自己的语言

●开发能反映这些需求的产品

●优化产品的特性,满足自己和客户的需求

2)质量改进

●开发一个能够生产产品的过程

●对过程进行优化

3)质量控制

●证明该过程可以在运转的条件下生产出产品,并使用最小范围的审查

●将此过程投入商业运营

图1-3表示了这样的质量改进过程。

它强调对质量的成本进行统计,并在生产过程中对质量进行控制。

在此基础上,设定新的质量目标,进行改进,降低质量低下所增加的成本,并将改进过程中所学到的经验和教训用于新产品的策划中。

图1-3Juran的质量控制三部曲

1.5.2Deming的十四点

在电子工业的生产中,W.EdwardsDeming(戴明)博士是生产过程管理与质量控制方法的创立者。

作为一个统计学家,Deming博士在二战期间帮助美军改进了战争中所使用材料的质量。

二战后,他应邀到日本咨询如何提高产品的生产质量。

在日本工作的5年里,他极大地提升了日本的工业生产产品,特别是电子产品的质量。

为此,他获得了日本天皇奖章。

后来,日本的科学家和工程师设立了Deming奖,如图1-4所示。

图1-4Deming博士和日本设立的Deming奖章(参见http:

//deming.org/)

Deming博士提出了著名的质量“14点”[6]:

1)目的永恒性

要为连续的产品改进创立永恒的目的,从长远的观点,而不是从短期的利润进行资源分配。

2)新的思想体系

采用新的思想体系。

例如,在当时日本所处的创新的经济时代,就不能再接受通常的拖拉、误解、有缺陷的材料和有缺陷的工艺。

3)不依赖大规模的产品检查

消除通过大规模的检查来提高质量的方法,取而代之的是将质量贯穿于产品中。

在生产和采购两个层面上,将统计作为质量的证据。

4)拒绝最低价的标书

不能将竞标价格作为唯一的依据。

要将价格和质量一起考虑。

通过统计和质量的其他数据,来削减相同项目的供应商。

其目的是通过降低偏差,将总费用降低到最小,而不单单是最初的费用。

从而与供应商建立长期的信任关系。

5)改进每个过程

从计划、生产到服务,持久地改进每个过程。

不断地寻找问题,改进质量和生产效率,不断地降低费用。

管理者的主要任务是不断地对系统(设计、进货材料、维护、机器的改进、监督、培训、再培训)做工作。

6)有组织的岗位培训

有组织地进行在岗培训,包括对管理层的培训,使其能很好地管理每个员工。

随着材料、产品与服务设计、机械设备、技术,以及服务的变更,要对员工进行新的技能培训。

7)领导岗位的制度化

领导岗位制度化的目的是帮助人们更好地做工作。

经理和监督人员的责任要从追求数量转变为追求质量。

质量的改进将自动地改进生产效率。

管理者要确保遗留的缺陷、维护的需求、糟糕的工具、模糊不清的定义以及其他对质量起左右作用的条件在工作过程中得到报告。

8)驱走恐惧心理

鼓励利用双向的交流和其他方法来驱走组织内部的恐惧心理,使得每个员工能够为公司高效地工作。

9)打破围墙

打破部门间和员工间的围墙。

不同的领域,例如维护、管理、采购等部门的员工必须用团队精神解决在生产和服务中遇到的问题。

10)消除劝告

消除对标语的使用,消除海报和劝告等方式给工作添加的压力,消除在没有提供新的方法的前提下,要求“零缺陷”和新的生产能力的要求。

这种劝告只能创立敌对关系,因此会成为低质量和低生产率的主要原因。

11)消除随意的定量目标

消除预定的工作量和对人的数字目标管理。

建立辅助和有帮助的领导关系,以便获得持续的质量和生产效率的改进。

12)提倡工艺改进

消除强盗式的计时工作工人和管理层,让他们以提高工艺为自豪。

在此强调:

经理、监督人员、领班必须从单纯地追求数量改为重视质量。

13)鼓励教育

将模糊不清的教育程序制度化,鼓励每个人改进自身能力。

组织所需要的不仅仅是优秀的人员,更是那些通过教育而不断改进的人员。

14)高层管理的承诺和行动

清晰地定义管理者为改进质量和生产能力所作的长久承诺,以及他们为实现这些目标所担负的责任。

他们必须在高层管理层建立一种能每天推动上述13点的结构,并询问完成这些工作所采取的行动。

1.5.3六西格玛方法

六西格玛设计(DFSS,DesignForSixSigma)是一套系统的、集成的业务改进方法体系,是一种旨在持续改进企业业务流程、实现客户满意的管理方法。

它通过系统、集成地采用业务改进流程,实现了无缺陷的过程设计,并对现有过程进行界定(Define)、测量(Measure)、分析(Analyze)、改进(Improve)和控制(Control)——简称DMAIC流程,消除过程缺陷和无价值作业,从而提高质量和服务、降低成本、缩短运转周期,达到令客户完全满意和增强企业竞争力的目的。

六西格玛过程改进的模式(DMAIC)自上世纪80年代诞生于摩托罗拉以来,经过20多年的发展,现在已经演变成为一套行之有效的、系统的方法论,该方法论能够解决问题和提高企业绩效。

DMAIC强调以顾客(外部和内部)为关注焦点,并将持续改进与顾客满意及企业经营目标紧密地联系起来;它强调以数据的语言来描述产品和过程绩效,依据数据进行管理,并充分运用定量分析和统计方法[7]。

DMAIC过程活动的5个阶段:

●界定(Define)阶段:

确认顾客的关键需求并识别需要改进的产品或流程,组成项目团队,制定项目计划,决定要进行测量、分析、改进和控制的关键质量特性,将改进项目界定在合理的范围内。

●测量(Measure)阶段:

通过对现有过程的测量和评估,制定期望达到的目标及绩效衡量标准,识别影响过程输出Y的输入X,并验证测量系统的有效性,确定过程基线。

●分析(Analyze)阶段:

通过数据分析,确定影响输出Y的关键输入X,即确定过程的关键影响因素。

●改进(Improve)阶段:

寻找最优改进方案,优化过程输出Y并消除或减小关键输入X的影响,使过程的缺陷或变异降至最低。

●控制(Control)阶

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1