概念:环境实践
本指南介绍了对实施软件项目的环境有用的基本实践。
关系
相关元素
主要描述

用于实施新开发环境的一些关键做法(包括 Rational Unified Process 和工具):

评估项目和组织

评估项目和组织的当前状态,以更好地了解应改进环境的哪些部分。还将更好地了解如何实施环境。 

以下页面说明了如何评估项目及其周围组织的状态:

逐步地实施流程和工具

逐步地实施环境、流程和工具,这样执行项目的人员就不会因突然面对许多新的因素而感到不知所措。逐步地实施环境,就有可能注重于一部分环境,这会提高成功的可能性。 

一次介绍环境的一部分。开发组织评估的结果可帮助决定应开始介绍流程的哪些部分以及哪些工具。通常,注重于开发组织问题最大的那些方面。 

逐步地实施环境可能意味着在第一次或先启迭代中注重于介绍需求规程和需求工具。在第二次迭代中,注重于介绍分析与设计规程及其建模工具。在后续迭代中,介绍的环境部分越来越多。

请参阅概念:在项目中实施流程以获取详细信息。 

管理和计划

管理和计划环境任务,就像管理和计划软件开发项目中的所有其他任务一样。 

在项目中实施新的流程和新的工具是一项复杂的任务。改变人员的工作方式可能会危及项目成功完成。经验表明,与开发任务比较,项目经理有时会忽略环境任务。 

必须像软件开发项目中的所有其他任务一样,管理和计划环境任务。因此,项目经理很好地了解新流程和工具是很重要的。有时,项目经理很难有所需的时间来了解新流程以及几种可能的新工具。在这种情况下,项目经理就需要某个了解如何实施环境且先前已参与过该操作的人的支持。即使项目经理正好有这方面的技能和经验,也建议您让“环境实施专家”参与进来,因为这会大大地提高项目成功的可能性。

关于如何管理和计划软件开发项目(包括环境任务)的详细信息,请参阅项目管理规程。另请参阅概念:在项目中实施流程。 

利用导师来进行指导

可让导师来介绍项目中的新流程。经验表明,如果您希望成功实施新流程,则让导师来指导工作是至关重要的。 如果没有导师,则执行该项目的人员将恢复旧的习惯,这个风险非常明显。 导师充当的是变更的推动因素。 

项目需要资源和预算,以便对项目进行指导。需要计划某些指导活动,例如召开研讨会。流程导师清楚其作为变更推动因素的重要性,并确保工作取得进展,这是非常重要的。让导师变得可有可无并且最终不再需要他,这一点也很重要,因此导师需要将知识和职责传授给项目的成员。关于什么是导师以及导师的工作内容的更多详细信息,请参阅概念:导师

分发流程所有权

之所以在项目的人员之间分发流程的所有权,是因为他们很有可能会更快地采用和了解新流程。如果产生的开发案例是“真正的专家”(这些项目人员)自己开发的,则该开发案例会更好一些。如果分发流程的所有权,则项目变得过度依赖于外部顾问的可能性会变小。 

尽快任命负责每个核心流程规程的项目人员。此人员主要负责配置该部分流程以及开发案例中相应的部分。例如,负责某个核心流程规程(如需求),表示您将负责开发案例中的该部分。每个人都需要负责一个或几个核心流程规程,这些人员要对该领域非常了解并且能够指导其他开发人员。 

流程工程师充当项目人员的导师,他负责流程的不同部分,并在项目人员配置流程时帮助他们。 

考虑“投资收益率”

在配置流程时考虑“投资收益率”:关注回报将高于投资的那些部分。 

经验表明,某些项目往往要花费过多时间和资源来制定大量的指南和开发案例以及其他与流程相关的材料。这主要有三个问题:

  • 人员没有广泛的阅读描述。 
  • 每件事情都从开始做起是很困难的。最好是从较小的范围内开始做某件事,尝试着去做并对其作出调整。 
  • 不注重于指导。有流程知识的人员需要将指导作为他们的主要任务,而不是去撰写大量的描述。 

制定指南时,您需要记住投资收益率。尝试复用现有指南。例如,制定完整的用例建模指南的一个极具成本效益的备选方案是:让现有用例描述的范例充当用例建模指南。  

在实践中,如果您无法评估投资和回报,则请比较这两者。作为流程工程师,最重要的是始终记住无论您做些什么都必须对开发人员有实质性的回报。

随时通知人员并让他们参与

由于对于组织中的任何变更,最大的威胁是人员对待变更的态度,因此需要随时通知人员有关新流程和工具方面的信息并让他们参与到工作中来。在任何组织中介绍新的流程和工具意味着人员必须改变他们的工作方式。人们对变更会有一种自然的抵触情绪。 并且始终存在着陷入否定漩涡的危险,在这种情况下,人们的否定态度会导致结果更差,而这反过来又会导致人们持更加否定的态度。

下面列出了可以采取的一些操作,这些操作可能有助于防止组织中的人员之间形成否定的态度:

  • 设置现实的期望。不要过度吹嘘新流程或新工具。 
  • 让关键人员参与到变更工作中来。让他们成为试点项目中的成员,并负责流程的某些部分。请参阅分发流程所有权
  • 请说明为什么需要进行变更。组织需要解决什么问题?技术上的什么变更需要新流程和新工具?使用这些新工具和流程对您有什么益处?
  • 通知组织中的所有人员发生了什么事情。例如,随时通知所有部门发生了什么情况。此信息不必非常详细;重要的是他们接收到了信息。   
  • 请记住项目干系人,例如客户或负责人。例如,如果某个开发方法更像瀑布式,但转变为了迭代式的开发方法,则项目干系人必须了解如何管理迭代式开发项目以及如何评估进度。例如,在迭代式开发项目中,期望在早期里程碑处就有一个完全不变的设计是不可能的。当项目改变获取需求的方式时,他们也会受到影响。 

培训人员

因为人员需要了解新流程以及如何使用新工具,所以要对他们进行新流程和新工具的培训。 

培训人员有几种方法,包括已使用的以下方法:

  • 标准培训课程
  • “集训”(1 到 5 周的集中实践培训)。能负担得起集训的组织并不多,但是如果项目中的人员要面对许多新的因素,那么这种集训已证实是一种有效的方法。 
  • 指导工作(如果有导师复审结果、召开研讨会并回答问题)。如果做的好,则指导可能是传授知识的一种十分有效的方法。
  • “启动”研讨会是在介绍环境中的新部分时使人员在一日之内赶上进度的有效方法。在这种类型的研讨会中,人们通过使用他们的真实项目材料,并使用新模板、指南和工具了解开发案例中的新部分,来进行工作。通常,流程工程师和工具专家将负责此研讨会。不要花费大量时间制定启动研讨会的培训材料。主要目的是通过使用开发案例中的新部分以及模板、指南和工具来提供实际经验。启动研讨会还是验证开发案例、模板、指南和工具的方法。