软件工程文化培养.ppt
《软件工程文化培养.ppt》由会员分享,可在线阅读,更多相关《软件工程文化培养.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 软件工程文化培养软件工程文化培养 软件工程文化及其创建软件工程文化及其创建1 1、问题的提出、问题的提出 Tom Tom DeMarco,TimothyDeMarco,Timothy Lister Lister 在在PeoplewarePeopleware一书中提到:一书中提到:程序员之间的能力比为程序员之间的能力比为1010:1 1 甚至有的研究得出的结果为甚至有的研究得出的结果为2020:1 1 DeMarco,ListerDeMarco,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)增强(增强(reinfor
6、cereinforce)基础(基础(is foundation foris foundation for)其中:其中:开发组成员所具有的价值观和信仰,定义了质量和开发组成员所具有的价值观和信仰,定义了质量和生产率的目标;生产率的目标;这一目标隐含了实现这一目标所采取的实践;这一目标隐含了实现这一目标所采取的实践;这些实践活动的一致应用,以及表明实现所期望结这些实践活动的一致应用,以及表明实现所期望结果的能力,增强了所致力的软件工程的文化。果的能力,增强了所致力的软件工程的文化。文化提供了决策和活动(文化提供了决策和活动(actionaction)的基础;的基础;一致地应用这一文化,进一步增强了
7、该文化的价值;一致地应用这一文化,进一步增强了该文化的价值;并且,该文化可以帮助该组织的管理人员建立他们并且,该文化可以帮助该组织的管理人员建立他们优先思考的问题。优先思考的问题。在该组织的所有层次上,管理者通过发送消息所传在该组织的所有层次上,管理者通过发送消息所传达的一致的优先考虑的问题,共享了有关软件质量的承诺。达的一致的优先考虑的问题,共享了有关软件质量的承诺。这些增强的反馈环,支持该软件文化的演化,以改善其性能。这些增强的反馈环,支持该软件文化的演化,以改善其性能。由此可以看出:由此可以看出:在具有软件工程文化环境中工作的人们,进行的是应用在具有软件工程文化环境中工作的人们,进行的是
8、应用开发,而不是单编(开发,而不是单编(hacking outhacking out)一个程序。一个程序。即针对应用问题,通过使用的不同工具和技术,集中于即针对应用问题,通过使用的不同工具和技术,集中于开发有用的应用,而不是简单地编写程序。开发有用的应用,而不是简单地编写程序。应用开发包括应用开发包括项目计划和管理、问题域分析、需求规项目计划和管理、问题域分析、需求规约、体系结构和程序设计、验证以及建立文档约、体系结构和程序设计、验证以及建立文档等任务。等任务。-为可靠的编码奠定了基础。为可靠的编码奠定了基础。3 3、文化的培养、文化的培养1 1)文化不能)文化不能“购买购买”,而只能培育,而
9、只能培育 原因:原因:-每一个开发队伍工作在每一个开发队伍工作在不同技术背景不同技术背景,不同的应用领域不同的应用领域,面对面对不同的用户期望不同的用户期望并受约于并受约于不同的管理不同的管理。其中不变的事情是:关注质量的态度和健全的工程过程。-对于创建一个软件工程文化,不存在一个简单的对于创建一个软件工程文化,不存在一个简单的“处方处方”或或“核对表核对表”,仅存在:,仅存在:一组有助于建造质量软件产品的技术实践;一组有助于建造质量软件产品的技术实践;应用于这些实践的个体的原则;以及应用于这些实践的个体的原则;以及 培育关注质量文化的领导阶层的行为。培育关注质量文化的领导阶层的行为。2 2)
10、培养一种软件工程文化,需要一个过程)培养一种软件工程文化,需要一个过程 这一过程由很多步骤组成(但没有现成的步骤可循),这一过程由很多步骤组成(但没有现成的步骤可循),其中每一步骤将建设性地贡献于这一文化,贡献于改善该其中每一步骤将建设性地贡献于这一文化,贡献于改善该组织内人们所创建的产品。组织内人们所创建的产品。原因:原因:-在一个队伍中,如果没有共享软件优点的目标,那么就没有一个人将感在一个队伍中,如果没有共享软件优点的目标,那么就没有一个人将感到需要改变。到需要改变。-解除过程改善的努力,这是很容易发生的事情。解除过程改善的努力,这是很容易发生的事情。为什么?存在抵触的种子,如一些成员喜
11、欢以新的方式工作,而其他成员为什么?存在抵触的种子,如一些成员喜欢以新的方式工作,而其他成员抱怨他们是工作的阻力。抱怨他们是工作的阻力。当该组中大多数人朝着软件工程的未来社会稳步前进时,不具有新的文化当该组中大多数人朝着软件工程的未来社会稳步前进时,不具有新的文化的那些人可能会产生一些抱怨,其结果:离开这一文化和社会;或可能努力拖的那些人可能会产生一些抱怨,其结果:离开这一文化和社会;或可能努力拖带这一队伍返回到他们自己感到安逸的水平。带这一队伍返回到他们自己感到安逸的水平。途径:途径:(1 1)同一原则和价值同一原则和价值 -提供了改善工作环境和工作结果的机遇提供了改善工作环境和工作结果的机
12、遇例如:例如:通过小组的集体讨论训练,或正式的过程评定,通过小组的集体讨论训练,或正式的过程评定,可以最好地团结组内成员共同地行使改进活动。可以最好地团结组内成员共同地行使改进活动。由该组选出的代表一起工作,标识较好的方式,由该组选出的代表一起工作,标识较好的方式,来执行该组的软件任务。来执行该组的软件任务。软件管理者不可以简单地裁决需要做的改变,软件管理者不可以简单地裁决需要做的改变,并期望任意具有建设性的事情发生。他的任务是并期望任意具有建设性的事情发生。他的任务是 把握该队伍朝着关键改进域把握该队伍朝着关键改进域-建立软件工程文化的建立软件工程文化的 下一步骤下一步骤-方向工作。方向工作
13、。(2 2)训练可重复、可度量的开发过程)训练可重复、可度量的开发过程 -一个共享的文化一个共享的文化 训练可重复、可度量的开发过程是实现软件过程成熟的必要训练可重复、可度量的开发过程是实现软件过程成熟的必要基础。随着一个组织为了改善它的规程和过程,系统且仔细地基础。随着一个组织为了改善它的规程和过程,系统且仔细地工作,一种公共文化就自然形成。工作,一种公共文化就自然形成。在这一过程中,面向质量的文化可以使所有成员发挥他们在这一过程中,面向质量的文化可以使所有成员发挥他们全部能力,经过个体的努力和有效的合作来建造优秀的产品。全部能力,经过个体的努力和有效的合作来建造优秀的产品。工作在这一文化中
14、的人们,知道使用定义的过程开发软件工作在这一文化中的人们,知道使用定义的过程开发软件并没有抑制他们的创造,而将他们的创造力转换力到开发生存并没有抑制他们的创造,而将他们的创造力转换力到开发生存周期的其它方面,如需求工程和软件设计。周期的其它方面,如需求工程和软件设计。一旦改善过程受到控制并且已成为做事情的正常方式的一旦改善过程受到控制并且已成为做事情的正常方式的一部分,则可以更加关注产品本身。公司和组织不提出过程一部分,则可以更加关注产品本身。公司和组织不提出过程-他们创建产品的过程,就不要期望取悦于他们的客户。他们创建产品的过程,就不要期望取悦于他们的客户。当该文化支持过程改善当该文化支持过
15、程改善-作为正常的事,人们就不必消作为正常的事,人们就不必消耗精力抵制有益处的改变;反而,会使用改进了的技术,集耗精力抵制有益处的改变;反而,会使用改进了的技术,集中其创造力,建造新的、更好的软件产品。中其创造力,建造新的、更好的软件产品。尽管一个组织文化的多个方面可以以文档记录之,但真尽管一个组织文化的多个方面可以以文档记录之,但真实的文化是由该组中的每一个人的行为所揭示。实的文化是由该组中的每一个人的行为所揭示。其中,其中,写出任务陈述、想法、价值以及原则是最有激情的事情。写出任务陈述、想法、价值以及原则是最有激情的事情。任务陈述可以帮助该组中的每一个人理解他们在合作的方案中的任务,任务陈
16、述可以帮助该组中的每一个人理解他们在合作的方案中的任务,有助于统一于描述长远目标的想法,也提供了关注持续不变的功绩。有助于统一于描述长远目标的想法,也提供了关注持续不变的功绩。(3 3)文化的)文化的“定型定型”-规范企业的运行规范企业的运行 企业文化的确可以通过一类实用的、有意义的、共享企业文化的确可以通过一类实用的、有意义的、共享的文档予以的文档予以“定型定型”,它们为创建企业文化提供了有用的,它们为创建企业文化提供了有用的工具,而不是小组偶尔思考的结果。工具,而不是小组偶尔思考的结果。结论结论 (1 1)一个健康的文化是通过实践培育的。从一个角度)一个健康的文化是通过实践培育的。从一个角
17、度来讲,文化是来讲,文化是“到底是如何做事情到底是如何做事情”。其中,避免:。其中,避免:标榜标榜:使用一些陈词滥调。例如,:使用一些陈词滥调。例如,“我们重视对他人的忠我们重视对他人的忠诚、正直和尊重诚、正直和尊重”。“我们是世界级的软件供应商我们是世界级的软件供应商”。“我我们将生产零缺欠的产品们将生产零缺欠的产品”。实际上,没有几个是和这样崇高。实际上,没有几个是和这样崇高的目标不一致的。但它们是现实的吗?它们可以予以度量吗的目标不一致的。但它们是现实的吗?它们可以予以度量吗?它们对在组内工作的人们有任何影响吗?领导实行了?它们对在组内工作的人们有任何影响吗?领导实行了“墙墙壁上鼓吹的口
18、号壁上鼓吹的口号”吗?吗?期望与实践脱节期望与实践脱节:一个组织所期望的行为被记录在一个满:一个组织所期望的行为被记录在一个满架子上的软件开发标准中。但一是并没有遵循并努力实施;架子上的软件开发标准中。但一是并没有遵循并努力实施;二是这些标准对过程改善和产品质量的提高并没有什么价值,二是这些标准对过程改善和产品质量的提高并没有什么价值,而只是开发人员之间的一些玩料;三是这些标准与潜在的组而只是开发人员之间的一些玩料;三是这些标准与潜在的组织文化是不一致的,也就是说,这些标准没有考虑组织成员织文化是不一致的,也就是说,这些标准没有考虑组织成员之间的信任和尊重,没有体现管理者和团体成员言行一致的之
19、间的信任和尊重,没有体现管理者和团体成员言行一致的品质。品质。(2 2)走向一种软件工程文化的路径,涉及小组行为的)走向一种软件工程文化的路径,涉及小组行为的改变,他们遵循已证明了的、产生上好软件的实践。通过朝改变,他们遵循已证明了的、产生上好软件的实践。通过朝着每一个成员可以有效地应用最好的软件工程方法这一环境着每一个成员可以有效地应用最好的软件工程方法这一环境发展,则该小组就享受了改进质量和生产率的乐趣。当开发发展,则该小组就享受了改进质量和生产率的乐趣。当开发人员真正掌握了软件工程的概念,那么这些概念就定义了人员真正掌握了软件工程的概念,那么这些概念就定义了构造软件的方法(构造软件的方法
20、(a waya way),),而没有定义有的人可以有选择而没有定义有的人可以有选择地构造软件的方法。有趣于软件工程实践的开发者可以使地构造软件的方法。有趣于软件工程实践的开发者可以使用这些概念用这些概念-如果方便的话,但从业于软件工程的开发者,如果方便的话,但从业于软件工程的开发者,尽管这些概念在有些时候并不是方便的,也应遵循一种有尽管这些概念在有些时候并不是方便的,也应遵循一种有纪律的途径。纪律的途径。4、健康软件文化的体现、健康软件文化的体现 一个软件组织的文化是通过个体、小组、管理者的一个软件组织的文化是通过个体、小组、管理者的行为揭示的,并作为一个整体,存在于该组织的特征之行为揭示的,
21、并作为一个整体,存在于该组织的特征之中。一个真正作好软件工程为目标的团体和管理者,应中。一个真正作好软件工程为目标的团体和管理者,应该具有以下特征:该具有以下特征:个体行为个体行为 每一个个体在每一个项目的某些方面比以前更每一个个体在每一个项目的某些方面比以前更加明显地努力工作,在持续的发展中体现出个人的贡献。加明显地努力工作,在持续的发展中体现出个人的贡献。大方地鼓励组内成员向其他同事提交工作产品大方地鼓励组内成员向其他同事提交工作产品以便复审,接受工作中发现的错误并吸取教训。以便复审,接受工作中发现的错误并吸取教训。花费一定的个人时间阅读软件书籍,定期地掌握花费一定的个人时间阅读软件书籍,
22、定期地掌握最新的技术,并不断寻找应用上好技术解决问题的方法。最新的技术,并不断寻找应用上好技术解决问题的方法。团队行为团队行为 开发者之间相互尊重,允许开展有生气的讨论,而不开发者之间相互尊重,允许开展有生气的讨论,而不是压制之。是压制之。新来的成员从那些具有更多经验人们的指导中,有效新来的成员从那些具有更多经验人们的指导中,有效地得到益处。地得到益处。小组成员使用通用的工程规程和工具,以便更有效地小组成员使用通用的工程规程和工具,以便更有效地的合作。合作是规则,而不是反对。的合作。合作是规则,而不是反对。广阔地复用现存的工作产品,包括编码,因为最大的广阔地复用现存的工作产品,包括编码,因为最
23、大的生产率来自已经做的工作。生产率来自已经做的工作。该组共有一种态度该组共有一种态度-第一次就作好。在质量方面,强调第一次就作好。在质量方面,强调是预防缺欠,而不是当客户或测试人员抱怨时祢补它们。是预防缺欠,而不是当客户或测试人员抱怨时祢补它们。收集并分析小组的软件产品和过程的数据。以寻找在收集并分析小组的软件产品和过程的数据。以寻找在 以后的项目中做得更好的方法。以后的项目中做得更好的方法。在软件需求规约和设计中要以软件产品的用户为中心在软件需求规约和设计中要以软件产品的用户为中心管理行为管理行为 管理者和公司要为开发人员提供继续学习的条件,例如管理者和公司要为开发人员提供继续学习的条件,例
24、如举办讲座、付费送大学学习,和定期地购买一些技术书籍等。举办讲座、付费送大学学习,和定期地购买一些技术书籍等。管理者者应购买一些先进的工具,并在项目进度中安排管理者者应购买一些先进的工具,并在项目进度中安排适当的时间进行新技术、新方法的培训。培训是项目进度的适当的时间进行新技术、新方法的培训。培训是项目进度的要素。要素。高级的、非软件技术的管理人员认识到优秀的软件工程实高级的、非软件技术的管理人员认识到优秀的软件工程实践与公司所期望的业务结果是一致的。践与公司所期望的业务结果是一致的。管理者是言行一致的。他们了解软件工程前提(管理者是言行一致的。他们了解软件工程前提(premisespremi
25、ses)并且他们表彰那些一直实践好的人员。并且他们表彰那些一直实践好的人员。组织行为组织行为 不断致力于过程改善。所有小组成员参与改善活动,不断致力于过程改善。所有小组成员参与改善活动,作为正常任务的一部分。作为正常任务的一部分。“拱型拱型”事务(事务(overarching businessoverarching business)和信息技术和信息技术策策略,为组织、决策以及优先设置等的演化提供了一种框架。略,为组织、决策以及优先设置等的演化提供了一种框架。所编制的可控的软件开发规程,被组内成员所采纳并所编制的可控的软件开发规程,被组内成员所采纳并有规则的遵守。有规则的遵守。在这里描述的理想
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 文化 培养
限制150内