软件工文化培养_第1页
软件工文化培养_第2页
软件工文化培养_第3页
软件工文化培养_第4页
软件工文化培养_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 软件工程文化培养软件工程文化培养 软件工程文化及其创建软件工程文化及其创建1 1、问题的提出、问题的提出 tom demarco,timothy listertom demarco,timothy lister 在在peoplewarepeopleware一书中提到:一书中提到: 程序员之间的能力比为程序员之间的能力比为1010:1 1 甚至有的研究得出的结果为甚至有的研究得出的结果为2020:1 1 demarco,lister demarco,lister还研究了还研究了9292个软件开发组织:个软件开发组织: 个人产出比为个人产出比为1111:1 1 结论:软件开发组织必须采取有效的方

2、法解结论:软件开发组织必须采取有效的方法解 决这一问题。决这一问题。2、软件文化的概念、软件文化的概念the american heritage dictionary: “culture” as “the totality of socially transmitted behaviorpatterns,arts,beliefs,institutions,and all other products of human work and thought characteristic of a community or population.” 可见,文化包括:一组共享的价值(观)、目的和原则,可

3、见,文化包括:一组共享的价值(观)、目的和原则,它们指导人们朝着一个共同目标工作的行为、活动、优先的它们指导人们朝着一个共同目标工作的行为、活动、优先的思索(思索(priorities)和决策。)和决策。 -有的文化是由不同的观点和行为表征的,而不是由有的文化是由不同的观点和行为表征的,而不是由“价价值值”表征的。表征的。 -共享一种文化是相当困难的。共享一种文化是相当困难的。 -每一组织均有自己的文化,但有的文化与其它文化相比每一组织均有自己的文化,但有的文化与其它文化相比则是具有生命力的。则是具有生命力的。2 2)面向质量的文化)面向质量的文化 关注质量的文化,是关注质量的文化,是“健康健

4、康”的软件文化。这一文的软件文化。这一文化有三个基本成分:化有三个基本成分: 个人承诺(个人承诺(commitmentcommitment):每一个开发人员承诺):每一个开发人员承诺,通过系统化地应用有效的软件工程实践,创建有质量通过系统化地应用有效的软件工程实践,创建有质量的产品;的产品; 组织承诺:所有层次上的管理者承诺,组织承诺:所有层次上的管理者承诺,提供一个环提供一个环境,在这一环境中,软件质量是一个基本的成功驱动,境,在这一环境中,软件质量是一个基本的成功驱动,并且,该环境能够使每一个开发者达到这一目标。并且,该环境能够使每一个开发者达到这一目标。 所有人员承诺:所有人员承诺:不断

5、改善他们所使用的过程,由此不断改善他们所使用的过程,由此不断改善他们所创建的产品。不断改善他们所创建的产品。3 3)软件工程文化与组织)软件工程文化与组织“目标、活动、优先思考的问题目标、活动、优先思考的问题以及技术实践以及技术实践”之间的关系。之间的关系。 项目目标项目目标技术实践技术实践每个人的活动每个人的活动软件工程文化软件工程文化管理的优先考虑管理的优先考虑隐含(隐含(implyimply)定义(定义(definesdefines)增强(增强(reinforcereinforce)增强(增强(reinforcereinforce)系统帮助(系统帮助(helps sethelps set

6、)增强(增强(reinforcereinforce)基础(基础(is foundation foris foundation for)其中:其中: 开发组成员所具有的价值观和信仰,定义了质量和开发组成员所具有的价值观和信仰,定义了质量和生产率的目标;生产率的目标; 这一目标隐含了实现这一目标所采取的实践;这一目标隐含了实现这一目标所采取的实践; 这些实践活动的一致应用,以及表明实现所期望结这些实践活动的一致应用,以及表明实现所期望结果的能力,增强了所致力的软件工程的文化。果的能力,增强了所致力的软件工程的文化。 文化提供了决策和活动(文化提供了决策和活动(actionaction)的基础;)的

7、基础; 一致地应用这一文化,进一步增强了该文化的价值;一致地应用这一文化,进一步增强了该文化的价值; 并且,该文化可以帮助该组织的管理人员建立他们并且,该文化可以帮助该组织的管理人员建立他们优先思考的问题。优先思考的问题。 在该组织的所有层次上,管理者通过发送消息所传在该组织的所有层次上,管理者通过发送消息所传达的一致的优先考虑的问题,共享了有关软件质量的承诺。达的一致的优先考虑的问题,共享了有关软件质量的承诺。这些增强的反馈环,支持该软件文化的演化,以改善其性能。这些增强的反馈环,支持该软件文化的演化,以改善其性能。 由此可以看出:由此可以看出: 在具有软件工程文化环境中工作的人们,进行的是

8、应用在具有软件工程文化环境中工作的人们,进行的是应用开发,而不是单编(开发,而不是单编(hacking outhacking out)一个程序。)一个程序。 即针对应用问题,通过使用的不同工具和技术,集中于即针对应用问题,通过使用的不同工具和技术,集中于开发有用的应用,而不是简单地编写程序。开发有用的应用,而不是简单地编写程序。 应用开发包括应用开发包括项目计划和管理、问题域分析、需求规项目计划和管理、问题域分析、需求规约、体系结构和程序设计、验证以及建立文档约、体系结构和程序设计、验证以及建立文档等任务。等任务。 -为可靠的编码奠定了基础。为可靠的编码奠定了基础。 3 3、文化的培养、文化的

9、培养1 1)文化不能)文化不能“购买购买”,而只能培育,而只能培育 原因:原因: - -每一个开发队伍工作在每一个开发队伍工作在不同技术背景不同技术背景,不同的应用领域不同的应用领域,面对面对不同的用户期望不同的用户期望并受约于并受约于不同的管理不同的管理。 其中不变的事情是:关注质量的态度和健全的工程过程。 - -对于创建一个软件工程文化,不存在一个简单的对于创建一个软件工程文化,不存在一个简单的“处方处方”或或“核对表核对表”,仅存在:,仅存在: 一组有助于建造质量软件产品的技术实践;一组有助于建造质量软件产品的技术实践; 应用于这些实践的个体的原则;以及应用于这些实践的个体的原则;以及

10、培育关注质量文化的领导阶层的行为。培育关注质量文化的领导阶层的行为。2 2)培养一种软件工程文化,需要一个过程)培养一种软件工程文化,需要一个过程 这一过程由很多步骤组成(但没有现成的步骤可循),这一过程由很多步骤组成(但没有现成的步骤可循),其中每一步骤将建设性地贡献于这一文化,贡献于改善该其中每一步骤将建设性地贡献于这一文化,贡献于改善该组织内人们所创建的产品。组织内人们所创建的产品。 原因:原因: - -在一个队伍中,如果没有共享软件优点的目标,那么就没有一个人将感在一个队伍中,如果没有共享软件优点的目标,那么就没有一个人将感到需要改变。到需要改变。 - -解除过程改善的努力,这是很容易

11、发生的事情。解除过程改善的努力,这是很容易发生的事情。 为什么?存在抵触的种子,如一些成员喜欢以新的方式工作,而其他成员为什么?存在抵触的种子,如一些成员喜欢以新的方式工作,而其他成员抱怨他们是工作的阻力。抱怨他们是工作的阻力。 当该组中大多数人朝着软件工程的未来社会稳步前进时,不具有新的文化当该组中大多数人朝着软件工程的未来社会稳步前进时,不具有新的文化的那些人可能会产生一些抱怨,其结果:离开这一文化和社会;或可能努力拖的那些人可能会产生一些抱怨,其结果:离开这一文化和社会;或可能努力拖带这一队伍返回到他们自己感到安逸的水平。带这一队伍返回到他们自己感到安逸的水平。途径:途径: (1 1)

12、同一原则和价值同一原则和价值 -提供了改善工作环境和工作结果的机遇提供了改善工作环境和工作结果的机遇例如:例如:通过小组的集体讨论训练,或正式的过程评定,通过小组的集体讨论训练,或正式的过程评定, 可以最好地团结组内成员共同地行使改进活动。可以最好地团结组内成员共同地行使改进活动。 由该组选出的代表一起工作,标识较好的方式,由该组选出的代表一起工作,标识较好的方式, 来执行该组的软件任务。来执行该组的软件任务。 软件管理者不可以简单地裁决需要做的改变,软件管理者不可以简单地裁决需要做的改变, 并期望任意具有建设性的事情发生。他的任务是并期望任意具有建设性的事情发生。他的任务是 把握该队伍朝着关

13、键改进域把握该队伍朝着关键改进域- -建立软件工程文化的建立软件工程文化的 下一步骤下一步骤- -方向工作。方向工作。(2 2)训练可重复、可度量的开发过程)训练可重复、可度量的开发过程 - - 一个共享的文化一个共享的文化 训练可重复、可度量的开发过程是实现软件过程成熟的必要训练可重复、可度量的开发过程是实现软件过程成熟的必要基础。随着一个组织为了改善它的规程和过程,系统且仔细地基础。随着一个组织为了改善它的规程和过程,系统且仔细地工作,一种公共文化就自然形成。工作,一种公共文化就自然形成。 在这一过程中,面向质量的文化可以使所有成员发挥他们在这一过程中,面向质量的文化可以使所有成员发挥他们

14、全部能力,经过个体的努力和有效的合作来建造优秀的产品。全部能力,经过个体的努力和有效的合作来建造优秀的产品。 工作在这一文化中的人们,知道使用定义的过程开发软件工作在这一文化中的人们,知道使用定义的过程开发软件并没有抑制他们的创造,而将他们的创造力转换力到开发生存并没有抑制他们的创造,而将他们的创造力转换力到开发生存周期的其它方面,如需求工程和软件设计。周期的其它方面,如需求工程和软件设计。 一旦改善过程受到控制并且已成为做事情的正常方式的一旦改善过程受到控制并且已成为做事情的正常方式的一部分,则可以更加关注产品本身。公司和组织不提出过程一部分,则可以更加关注产品本身。公司和组织不提出过程-

15、-他们创建产品的过程,就不要期望取悦于他们的客户。他们创建产品的过程,就不要期望取悦于他们的客户。 当该文化支持过程改善当该文化支持过程改善- -作为正常的事,人们就不必消作为正常的事,人们就不必消耗精力抵制有益处的改变;反而,会使用改进了的技术,集耗精力抵制有益处的改变;反而,会使用改进了的技术,集中其创造力,建造新的、更好的软件产品。中其创造力,建造新的、更好的软件产品。 尽管一个组织文化的多个方面可以以文档记录之,但真尽管一个组织文化的多个方面可以以文档记录之,但真实的文化是由该组中的每一个人的行为所揭示。实的文化是由该组中的每一个人的行为所揭示。 其中,其中,写出任务陈述、想法、价值以

16、及原则是最有激情的事情。写出任务陈述、想法、价值以及原则是最有激情的事情。任务陈述可以帮助该组中的每一个人理解他们在合作的方案中的任务,任务陈述可以帮助该组中的每一个人理解他们在合作的方案中的任务,有助于统一于描述长远目标的想法,也提供了关注持续不变的功绩。有助于统一于描述长远目标的想法,也提供了关注持续不变的功绩。(3 3)文化的)文化的“定型定型” -规范企业的运行规范企业的运行 企业文化的确可以通过一类实用的、有意义的、共享企业文化的确可以通过一类实用的、有意义的、共享的文档予以的文档予以“定型定型”,它们为创建企业文化提供了有用的,它们为创建企业文化提供了有用的工具,而不是小组偶尔思考

17、的结果。工具,而不是小组偶尔思考的结果。 结论结论 (1 1)一个健康的文化是通过实践培育的。从一个角度)一个健康的文化是通过实践培育的。从一个角度来讲,文化是来讲,文化是“到底是如何做事情到底是如何做事情”。其中,避免:。其中,避免:标榜标榜:使用一些陈词滥调。例如,:使用一些陈词滥调。例如,“我们重视对他人的忠我们重视对他人的忠诚、正直和尊重诚、正直和尊重”。“我们是世界级的软件供应商我们是世界级的软件供应商”。“我我们将生产零缺欠的产品们将生产零缺欠的产品”。实际上,没有几个是和这样崇高。实际上,没有几个是和这样崇高的目标不一致的。但它们是现实的吗?它们可以予以度量吗的目标不一致的。但它

18、们是现实的吗?它们可以予以度量吗?它们对在组内工作的人们有任何影响吗?领导实行了?它们对在组内工作的人们有任何影响吗?领导实行了“墙墙壁上鼓吹的口号壁上鼓吹的口号”吗?吗?期望与实践脱节期望与实践脱节:一个组织所期望的行为被记录在一个满:一个组织所期望的行为被记录在一个满架子上的软件开发标准中。但一是并没有遵循并努力实施;架子上的软件开发标准中。但一是并没有遵循并努力实施;二是这些标准对过程改善和产品质量的提高并没有什么价值二是这些标准对过程改善和产品质量的提高并没有什么价值,而只是开发人员之间的一些玩料;三是这些标准与潜在的,而只是开发人员之间的一些玩料;三是这些标准与潜在的组织文化是不一致

19、的,也就是说,这些标准没有考虑组织成组织文化是不一致的,也就是说,这些标准没有考虑组织成员之间的信任和尊重,没有体现管理者和团体成员言行一致员之间的信任和尊重,没有体现管理者和团体成员言行一致的品质。的品质。 (2 2)走向一种软件工程文化的路径,涉及小组行为的)走向一种软件工程文化的路径,涉及小组行为的改变,他们遵循已证明了的、产生上好软件的实践。通过朝改变,他们遵循已证明了的、产生上好软件的实践。通过朝着每一个成员可以有效地应用最好的软件工程方法这一环境着每一个成员可以有效地应用最好的软件工程方法这一环境发展,则该小组就享受了改进质量和生产率的乐趣。当开发发展,则该小组就享受了改进质量和生

20、产率的乐趣。当开发人员真正掌握了软件工程的概念,那么这些概念就定义了人员真正掌握了软件工程的概念,那么这些概念就定义了构造软件的方法(构造软件的方法(a waya way),而没有定义有的人可以有选择),而没有定义有的人可以有选择地构造软件的方法。有趣于软件工程实践的开发者可以使地构造软件的方法。有趣于软件工程实践的开发者可以使用这些概念用这些概念- -如果方便的话,但从业于软件工程的开发者,如果方便的话,但从业于软件工程的开发者,尽管这些概念在有些时候并不是方便的,也应遵循一种有尽管这些概念在有些时候并不是方便的,也应遵循一种有纪律的途径。纪律的途径。4、健康软件文化的体现、健康软件文化的体

21、现 一个软件组织的文化是通过个体、小组、管理者的一个软件组织的文化是通过个体、小组、管理者的行为揭示的,并作为一个整体,存在于该组织的特征之行为揭示的,并作为一个整体,存在于该组织的特征之中。一个真正作好软件工程为目标的团体和管理者,应中。一个真正作好软件工程为目标的团体和管理者,应该具有以下特征:该具有以下特征: 个体行为个体行为 每一个个体在每一个项目的某些方面比以前更每一个个体在每一个项目的某些方面比以前更加明显地努力工作,在持续的发展中体现出个人的贡献。加明显地努力工作,在持续的发展中体现出个人的贡献。 大方地鼓励组内成员向其他同事提交工作产品大方地鼓励组内成员向其他同事提交工作产品以

22、便复审,接受工作中发现的错误并吸取教训。以便复审,接受工作中发现的错误并吸取教训。 花费一定的个人时间阅读软件书籍,定期地掌握花费一定的个人时间阅读软件书籍,定期地掌握最新的技术,并不断寻找应用上好技术解决问题的方法。最新的技术,并不断寻找应用上好技术解决问题的方法。团队行为团队行为 开发者之间相互尊重,允许开展有生气的讨论,而不开发者之间相互尊重,允许开展有生气的讨论,而不是压制之。是压制之。 新来的成员从那些具有更多经验人们的指导中,有效新来的成员从那些具有更多经验人们的指导中,有效地得到益处。地得到益处。 小组成员使用通用的工程规程和工具,以便更有效地小组成员使用通用的工程规程和工具,以

23、便更有效地的合作。合作是规则,而不是反对。的合作。合作是规则,而不是反对。 广阔地复用现存的工作产品,包括编码,因为最大的广阔地复用现存的工作产品,包括编码,因为最大的生产率来自已经做的工作。生产率来自已经做的工作。 该组共有一种态度该组共有一种态度- -第一次就作好。在质量方面,强调第一次就作好。在质量方面,强调是预防缺欠,而不是当客户或测试人员抱怨时祢补它们。是预防缺欠,而不是当客户或测试人员抱怨时祢补它们。 收集并分析小组的软件产品和过程的数据。以寻找在收集并分析小组的软件产品和过程的数据。以寻找在 以后的项目中做得更好的方法。以后的项目中做得更好的方法。 在软件需求规约和设计中要以软件

24、产品的用户为中心在软件需求规约和设计中要以软件产品的用户为中心管理行为管理行为 管理者和公司要为开发人员提供继续学习的条件,例如管理者和公司要为开发人员提供继续学习的条件,例如举办讲座、付费送大学学习,和定期地购买一些技术书籍等。举办讲座、付费送大学学习,和定期地购买一些技术书籍等。 管理者者应购买一些先进的工具,并在项目进度中安排管理者者应购买一些先进的工具,并在项目进度中安排适当的时间进行新技术、新方法的培训。培训是项目进度的适当的时间进行新技术、新方法的培训。培训是项目进度的要素。要素。 高级的、非软件技术的管理人员认识到优秀的软件工程实高级的、非软件技术的管理人员认识到优秀的软件工程实

25、践与公司所期望的业务结果是一致的。践与公司所期望的业务结果是一致的。 管理者是言行一致的。他们了解软件工程前提(管理者是言行一致的。他们了解软件工程前提(premisespremises)并且他们表彰那些一直实践好的人员。并且他们表彰那些一直实践好的人员。组织行为组织行为 不断致力于过程改善。所有小组成员参与改善活动,不断致力于过程改善。所有小组成员参与改善活动,作为正常任务的一部分。作为正常任务的一部分。 “ “拱型拱型”事务(事务(overarching businessoverarching business)和信息技术)和信息技术策策略,为组织、决策以及优先设置等的演化提供了一种框架略

26、,为组织、决策以及优先设置等的演化提供了一种框架。 所编制的可控的软件开发规程,被组内成员所采纳并所编制的可控的软件开发规程,被组内成员所采纳并有规则的遵守。有规则的遵守。 在这里描述的理想完美的境界可能真正并不存在。实在这里描述的理想完美的境界可能真正并不存在。实现这一境界是一项艰巨的工作,需要有创意的领导,并需现这一境界是一项艰巨的工作,需要有创意的领导,并需要小组持续不变的工作一个很长的时间。在你的环境中可要小组持续不变的工作一个很长的时间。在你的环境中可以发现其中的一些特征,对未来的雇员将更有魅力,他们以发现其中的一些特征,对未来的雇员将更有魅力,他们希望工作在一个质量驱动的文化中。希

27、望工作在一个质量驱动的文化中。5、不健康的软件文化、不健康的软件文化个体行为个体行为 团体成员之间的个人保守意识很强;团体成员之间的个人保守意识很强; 编程员只按自己的方式工作,丝毫不考虑团体的目标和编程员只按自己的方式工作,丝毫不考虑团体的目标和利益;当项目出现麻烦时,不靠集体解决,而只靠利益;当项目出现麻烦时,不靠集体解决,而只靠“聪明聪明才子才子”的英雄来解决;的英雄来解决; 没有时间实施简单的质量控制措施,例如相互审查、系没有时间实施简单的质量控制措施,例如相互审查、系统测试、文档编制等;统测试、文档编制等; 项目经理为了赢得主管和客户的满意,将项目管理当作项目经理为了赢得主管和客户的

28、满意,将项目管理当作一种游戏,如随意同意不可能的交付日期等。一种游戏,如随意同意不可能的交付日期等。管理行为管理行为 没有系统的、以管理驱动的努力,来提高软件质量;一没有系统的、以管理驱动的努力,来提高软件质量;一直迫于项目进度的压力;直迫于项目进度的压力; 进度永远比质量重要;进度永远比质量重要; 总是证明总是证明brooksbrooks的名言:将个人力量加到一个已经推迟的名言:将个人力量加到一个已经推迟的项目上会更迟;的项目上会更迟; 管理者对雇员不诚实,为了团体利益总是不顾雇员的个管理者对雇员不诚实,为了团体利益总是不顾雇员的个人目标;人目标; 贫乏的领导能力、繁重的工作量以及不现实的进

29、度安排贫乏的领导能力、繁重的工作量以及不现实的进度安排导致了很低的周转率。导致了很低的周转率。企业行为企业行为 不断地尝试新的技术、工具,企图寻找一种不断地尝试新的技术、工具,企图寻找一种“神奇神奇”的解的解决方案,使项目得到突破性进展;决方案,使项目得到突破性进展; 开发人员陷入永无止境的辣手问题之中,没有机会得到开发人员陷入永无止境的辣手问题之中,没有机会得到发展成长;发展成长; 高强度的工作和不良的经济环境,导致开发人员和管理高强度的工作和不良的经济环境,导致开发人员和管理人员总是承受很大的心理压力;人员总是承受很大的心理压力; 企业没有任何关于如何开展工作的规定,导致每个人按企业没有任

30、何关于如何开展工作的规定,导致每个人按自己的方式进行工作;对完成的项目不进行分析,致使增自己的方式进行工作;对完成的项目不进行分析,致使增大了失败的可能性。大了失败的可能性。6、表怔不同文化的组织范型(按改变工作方式所产生的、表怔不同文化的组织范型(按改变工作方式所产生的结果)结果)(larry constantine 1993) 封闭型(封闭型(closed) 按传统的责任层次体系,在这样按传统的责任层次体系,在这样的体系中,决策总是由上级作出的体系中,决策总是由上级作出追求稳定和持续发展;追求稳定和持续发展; 开发型(开发型(open) 其主要特征为:具有创新的稳定发展其主要特征为:具有创

31、新的稳定发展,个人服从集体的利益,有合作、有弹性;,个人服从集体的利益,有合作、有弹性; 随意型(随意型(random) 其创新有团体成员表现之;企业其创新有团体成员表现之;企业在个人的创意中自发的改变;成员可能是有创造性的、有在个人的创意中自发的改变;成员可能是有创造性的、有活力的,但决策是个人自发的行为;活力的,但决策是个人自发的行为; 同步型(同步型(synchronous) 个人目标和企业目标是一个人目标和企业目标是一直的,不欢迎不一致的行为发生;组织成员在角色、责任直的,不欢迎不一致的行为发生;组织成员在角色、责任分工上是很默契的。分工上是很默契的。注:这仅仅是一种分类,说明不同的改

32、进技术可能在不同注:这仅仅是一种分类,说明不同的改进技术可能在不同的环境中会得到成功,而不是说明一种文化比其它的文化的环境中会得到成功,而不是说明一种文化比其它的文化好。好。封闭型(封闭型(closed) 开发型(开发型(open) hierarchical innovativetop-down decision collaborativetraditional authority sharingstable secure negotiatingless innovative flexible consensus decisions同步型(同步型(synchronous) 随意型(随意型(ra

33、ndom) harmonious independent initiativequietly efficient creatively inventivesmooth operation less stableslow to change informalvisionary leadership autonomous 对以上对以上4类企业选出好的特征,可以形成一个结构良好的类企业选出好的特征,可以形成一个结构良好的团体,如下所示:团体,如下所示: 结构良好的、开放的团体所具有的特征结构良好的、开放的团体所具有的特征1成员角色明确(通过角色分配表)2各种角色的责任和义务清晰3每个角色的任务,特别

34、是必须完成的关键任务明了4角色的变更要有利于掌握不同的技能,要有利于提高企业的灵活性5具有结构化的、具体的知识管理体系6外界边界和责任清晰、简单7决策中要重视技术,并非是简单的多数表决8保护产品的私人拥有权7、对管理的挑战、对管理的挑战 一个高效的领导应更加关注工作环境、开发人员的工作态一个高效的领导应更加关注工作环境、开发人员的工作态度和行为,并非过分追求自己的管理期望;度和行为,并非过分追求自己的管理期望;管理者是在为他的职员工作,而不是职员在为管理者工作管理者是在为他的职员工作,而不是职员在为管理者工作管理者的责任是使职员发挥作为软件工程师的最大潜力,管理者的责任是使职员发挥作为软件工程

35、师的最大潜力,同时达到顾客、项目和企业的目标;管理者不应花费很多时同时达到顾客、项目和企业的目标;管理者不应花费很多时间去处理委员会的事务,完成上级的吩咐,以导致项目过程间去处理委员会的事务,完成上级的吩咐,以导致项目过程的停滞,职员士气的不足;的停滞,职员士气的不足; 一个高效的领导对如何在项目中实施软件工程有着自己的一个高效的领导对如何在项目中实施软件工程有着自己的设想,并列出计划以实现之;其中,必须针对工作环境,采设想,并列出计划以实现之;其中,必须针对工作环境,采用特定的方法,实现过程改善计划,并让所有成员参与过程用特定的方法,实现过程改善计划,并让所有成员参与过程改善,使他们有着适当

36、的压力;必须使每一活动都找到工作改善,使他们有着适当的压力;必须使每一活动都找到工作和提高的平衡点。和提高的平衡点。8、为形成软件工程文化奠定基础的原则、为形成软件工程文化奠定基础的原则(1 1)不要屈服于老板和客户的压力去做不好的工作)不要屈服于老板和客户的压力去做不好的工作; (2)每个人的工作都需要被别人承认;)每个人的工作都需要被别人承认; (3)继续接受教育是每个成员的责任;)继续接受教育是每个成员的责任; (4)客户需求是软件质量的关键因素;)客户需求是软件质量的关键因素; (5)最大的挑战是最终产品与客户的设想是相同的;)最大的挑战是最终产品与客户的设想是相同的; (6)不断地改

37、善软件开发过程是重要的,也是必要的;)不断地改善软件开发过程是重要的,也是必要的; (7)记录软件开发过程是形成文化的最好方式;)记录软件开发过程是形成文化的最好方式; (8)软件质量是优先考虑的问题,从长远看,高质量的)软件质量是优先考虑的问题,从长远看,高质量的必然结果是生产率的提高;必然结果是生产率的提高;(9)让同事发现错误,而不是让用户发现错误;)让同事发现错误,而不是让用户发现错误;(10)软件质量的关键是多次反复地实践除编码之外的)软件质量的关键是多次反复地实践除编码之外的其他过程;其他过程; (11)很好地管理)很好地管理“发现错误发现错误”和和“需求改变需求改变”是质是质量控

38、制和维护的重要因素;量控制和维护的重要因素; (12)经常评估自己的工作,会使以后的工作做得更)经常评估自己的工作,会使以后的工作做得更好好 ;(13)做有意义的工作,而不是求助于条条框框;)做有意义的工作,而不是求助于条条框框; (14)在所有需要改变的事情中,确定能够产生最大效)在所有需要改变的事情中,确定能够产生最大效益的改变,并立刻实践之。益的改变,并立刻实践之。总结总结(1)尽管事实已经证明,先进的软件工程方法可以提高)尽管事实已经证明,先进的软件工程方法可以提高软件质量和生产率,但还是有许多开发者使用过时的技术软件质量和生产率,但还是有许多开发者使用过时的技术,导致了低质量的产品和

39、不可预测的结果。,导致了低质量的产品和不可预测的结果。(2)管理者和项目经理面临的最大挑战,是让开发人员)管理者和项目经理面临的最大挑战,是让开发人员在健康的、有支持和回报的环境中坚持实施软件工程的实在健康的、有支持和回报的环境中坚持实施软件工程的实践活动。践活动。 (3)不同类型企业文化的改变需要采取不同的方法。)不同类型企业文化的改变需要采取不同的方法。(4)一个高效的领导,将团队目标和上级对产品过程的)一个高效的领导,将团队目标和上级对产品过程的统一,可以驱动企业各方面的进步。统一,可以驱动企业各方面的进步。文化的建造者和杀手文化的建造者和杀手文化的建造者文化的建造者 项目组成员之间关于

40、使用新方法、新技术经验的讨论项目组成员之间关于使用新方法、新技术经验的讨论 -为开发人员提供了学习新技术解决问题的机会,或吸取为开发人员提供了学习新技术解决问题的机会,或吸取别人教训的机会。别人教训的机会。 为新来的开发人员提供以前产品的相关资料,包括需求规为新来的开发人员提供以前产品的相关资料,包括需求规约文档、测试计划、系统说明书等约文档、测试计划、系统说明书等 -可以帮助开发人员尽快熟悉软件工程文化,以找到更好可以帮助开发人员尽快熟悉软件工程文化,以找到更好的开发方法和合作方式。的开发方法和合作方式。 当项目陷入困境,也要做好其中一部分工作当项目陷入困境,也要做好其中一部分工作 -可以调

41、动开发人员的士气,并有助于了解问题所在。可以调动开发人员的士气,并有助于了解问题所在。文化的杀手文化的杀手 作为管理者,即使收发电子邮件,在办公桌上也使用最作为管理者,即使收发电子邮件,在办公桌上也使用最好的设备,以显示在集体中的地位。好的设备,以显示在集体中的地位。对不懂得软件和软件工程的上级,不花费时间说服他们对不懂得软件和软件工程的上级,不花费时间说服他们对软件过程改善增加投资。对软件过程改善增加投资。上级认为员工不需要接受继续教育掌握更新、更好的技上级认为员工不需要接受继续教育掌握更新、更好的技术,员工也不提出这方面的要求。术,员工也不提出这方面的要求。软件项目的软件项目的“五维五维”

42、 在一个软件项目中,必须管理以下在一个软件项目中,必须管理以下“五维五维”:特性:特性(featurefeature),质量(),质量(qualityquality),成本(),成本(costcost),进度),进度(scheduleschedule),人员(),人员(staffstaff)。)。featurefeaturequalityqualitycostcostscheduleschedule)staffstaff五维之间并不是没有关系的。例如,如果增加了人员,则五维之间并不是没有关系的。例如,如果增加了人员,则进度就可以缩短,而且成本可能就要增加。一个更通常的进度就可以缩短,而且成本可

43、能就要增加。一个更通常的交换是,缩短进度或增加特性,并牺牲了质量。这五维之交换是,缩短进度或增加特性,并牺牲了质量。这五维之间的交换,不是简单的、线形的。对于每一个项目来说,间的交换,不是简单的、线形的。对于每一个项目来说,我们必须决策哪些维是关键的,以及如何与其它维平衡,如我们必须决策哪些维是关键的,以及如何与其它维平衡,如此才能达到项目的关键目标。此才能达到项目的关键目标。每一为又可以具有三种角色之一,这三种角色为:驱动角色,每一为又可以具有三种角色之一,这三种角色为:驱动角色,约束和自由程度。驱动角色是项目的一个关键目标。对于一约束和自由程度。驱动角色是项目的一个关键目标。对于一个必须按

44、时交付以满足市场机遇的产品,进度是一个驱动角个必须按时交付以满足市场机遇的产品,进度是一个驱动角色。商业桌面软件,例如字处理系统和电子表格,他们常常色。商业桌面软件,例如字处理系统和电子表格,他们常常以特性作为驱动角色予以开发。以特性作为驱动角色予以开发。 约束是一个限制要素。它不在项目领导者的控制之内。约束是一个限制要素。它不在项目领导者的控制之内。如果一个固定人员的小组分配给一个项目,那么人员则成如果一个固定人员的小组分配给一个项目,那么人员则成为一个约束。在一个固定价格的项目中,成本是一个约束,为一个约束。在一个固定价格的项目中,成本是一个约束,而对一个管理医疗设备软件或飞机飞行控制系统

45、而言,质而对一个管理医疗设备软件或飞机飞行控制系统而言,质量将是一个约束。有时,可以把成本或作为一个约束,或量将是一个约束。有时,可以把成本或作为一个约束,或作为一个驱动角色,因为它既可以是一个基本的目标,又作为一个驱动角色,因为它既可以是一个基本的目标,又可以是一个限制要素。类似地,一个特定的特征集合,可可以是一个限制要素。类似地,一个特定的特征集合,可以是该项目的基本驱动角色,但如果这一特征集合不是可以是该项目的基本驱动角色,但如果这一特征集合不是可以通过谈判解决的,则不能把它看作是一个约束。以通过谈判解决的,则不能把它看作是一个约束。 既不是驱动角色又不是约束的项目维,则成为一个自既不是

46、驱动角色又不是约束的项目维,则成为一个自由程度。这些要素可以被项目领导予以调整,并达到某种由程度。这些要素可以被项目领导予以调整,并达到某种程度的平衡,以实现整个项目的目标。例如,在一些内部程度的平衡,以实现整个项目的目标。例如,在一些内部的信息系统项目中,驱动角色是特征和质量,人员是一个的信息系统项目中,驱动角色是特征和质量,人员是一个约束,如此自由程度则成为进度和成本。这一轮廓意味着约束,如此自由程度则成为进度和成本。这一轮廓意味着由用户所要求的特征将全部被包含,但该产品的交付时间由用户所要求的特征将全部被包含,但该产品的交付时间可以比预期的晚一些。可以比预期的晚一些。 这一模型的一个重要

47、方面并不是说明在一个项目中哪这一模型的一个重要方面并不是说明在一个项目中哪一维是驱动角色,哪一维是约束,重要的是该项目组、客一维是驱动角色,哪一维是约束,重要的是该项目组、客户以及管理,预先商榷相关的优先考虑的维。这一商榷过户以及管理,预先商榷相关的优先考虑的维。这一商榷过程有助于定义规则和项目的边界。正如在大多数游戏中,程有助于定义规则和项目的边界。正如在大多数游戏中,我们可以根据任意一组规则来玩,但所有人必须了解并同我们可以根据任意一组规则来玩,但所有人必须了解并同意这些规则在任何特定的时间内是有效的。意这些规则在任何特定的时间内是有效的。 如何把每一维划为哪一种角色的方法,是去思考项目领

48、如何把每一维划为哪一种角色的方法,是去思考项目领导关于那一维所具有的导关于那一维所具有的“弹性弹性”。一个约束实质上没有给项。一个约束实质上没有给项目领导任何弹性,一个驱动角色有较低的弹性,一个自由程目领导任何弹性,一个驱动角色有较低的弹性,一个自由程度提供了一个较开阔的范围,以便将这一维与其它四维进行度提供了一个较开阔的范围,以便将这一维与其它四维进行平衡。描述这一问题的图形方法是使用平衡。描述这一问题的图形方法是使用kiviatkiviat图,该图允许图,该图允许我们划分一些不同的值(五个,参见下图),在一组规则的我们划分一些不同的值(五个,参见下图),在一组规则的轴上,像一个不规则的多边

49、形。对于一个特定的项目,在轴轴上,像一个不规则的多边形。对于一个特定的项目,在轴上每一点的位置指出那个维的相关的弹性度:数值范围从上每一点的位置指出那个维的相关的弹性度:数值范围从0 0(完全是强制的)到完全是强制的)到1010(完全是灵活的)。(完全是灵活的)。上图是一个弹性上图是一个弹性kiviatkiviat图。该项目强制配置固定的人员,图。该项目强制配置固定的人员,因此在人员轴上有值为因此在人员轴上有值为0 0。该项目被驱动以满足一个期望。该项目被驱动以满足一个期望的进度,因此在进度轴上的点有较小的值。该项目围绕的进度,因此在进度轴上的点有较小的值。该项目围绕组成初始版本的特征改变弹性

50、,改变产品质量和成本超限组成初始版本的特征改变弹性,改变产品质量和成本超限的范围。因此,这些自由程度的值在它们的轴上是较大的。的范围。因此,这些自由程度的值在它们的轴上是较大的。 featurefeaturequalityqualitycostcostscheduleschedule)staffstaff024810内部信息系统的弹性图内部信息系统的弹性图 该图是针对一个假定的项目,其中,质量是一个驱动该图是针对一个假定的项目,其中,质量是一个驱动角色,而进度显示了最大的自由。对于一个竞争激烈的商角色,而进度显示了最大的自由。对于一个竞争激烈的商业软件产品,可能如同下图:业软件产品,可能如同下图:featurefeaturequalityqualitycostcostscheduleschedule)staffstaff024810 质量驱动的应用之弹性图质量驱动的应用之弹性图featurefeaturequalityqualitycostcostscheduleschedule)staffstaff024810质量驱动的应用之弹性图质量驱动的应用之弹性图 在这一图中,必须包含一个特定的特征集合(一个在这一图中,必须包含一个特定的特征集合(一个约束),进度被强制为一个特定的交付期,质量恰是不管约束),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论