UML软件工程组织 |
应用Rational 工具简化基于J2EE的项目 (二)启动项目 | |||||||||||||||||||||||||||||||||||||
第二部分:启动项目 Steven Franklin 这个有多篇文章组成的系列讲述了如何逐渐的应用 Rational 统一过程(RUP)和其他的 Rational 工具,本文中样例项目的详细计划被围绕着管理需求和风险而讨论。
从开始进行计划或者计划失败
Rational 统一过程(RUP)通过改进团队的效率和指导提升团队的成熟性可以尽量的减少导致项目失败的因素。良好的数据可以影响项目的管理者对项目的管理,更好的工具可以支持工程团队,更好的过程能够帮助软件产品以一种可预见的方式发展。本系列的第2部分将把重点放在我们能应用的一些早期策略上以获得一些在我们的样例项目中摇摆不定的事情。 Note that project management involves some activities that aren't currently addressed in the RUP. I highly recommend the book 请注意项目管理包括一些目前在 RUP 中没有包含的活动。我强烈推荐这本书 快速开发: 驯服疯狂的软件进度 它可以作为在开发项目中减少风险因素的进一步的参考资料。 细化第1阶段时间进度
这就是我们看到的客户的主要的关心点,并且我们对每一项作出了回答:
综上所述,我们并不觉得我们时间进度计划是过分自信的,并且我们有信心在客户的成本期望之内完成任务。关于我们能够满足时间进度的能力来自于我们的团队结构,在项目团队中我们与 ASDI 一起对项目进行审查。如表1所示,我们计划了包括一些兼职角色的人员。例如,我们有单独的一个 QA 人员在我们的项目中,这个人同时也在其她项目中扮演角色;在我们的项目中显示她作为一个20%的角色,这就以为着在我们的项目中她一周工作一天:
总的来看,我们计划需要450个人天的工作量来创建这四个月之久的系统演示。在项目的进展过程中,我们将知道是否我们需要增加时间或者提前完成,我们也将通知 ASDI 项目的情况。在展示系统演示的时候,我们也要对深入的设计审查做好充分的准备,并且能过向客户展示对项目第2阶段的估计。如果 ASDI 对我们在第1阶段的概念检验(POC)的工作表示满意,他们将与我们启动项目的第2阶段的工作来开发产品化的系统。 虽然我们还在创建了ASDI 的第1阶段的演示,但 ASDI 非常高兴的看到了我们所作的工作将是进一步开发产品化系统的良好输入。至少他们已经接近可需求的审查、屏幕的模式、OTS 评估、架构审查、两个实际的版本和一个系统演示。 管理风险 使用 ClearQuest Designer 可以非常方便的设计新的数据结构和表单。比如,创建一个风险录入表单就类似与已经在 ClearQuest Designer 中显示的缺陷表单,我们可以根据缺陷跟踪计划(DefectTracking schema)来新的计划(schema),也可以删除一些不必要的条目和重命名其他的条目,类似的更新相应的表单,删除或者重命名必要的提示和域。 这里是你如何能够自己进行试验:假设你已经安装了 ClearQuest 并具有管理员的权限,你应该可以很容易的找到 ClearQuest Designer 应用程序。从文件菜单中,选择 创建计划(New Schema ),并且选择一个已存在的你想修改的计划(Schema)。我们选择修改缺陷跟踪计划(DefectTracking schema)。一旦你给你的新计划(schema)一个名字,你将被提示创建一个与这个计划(schema)相关联的数据库。除非你制定一个特殊的方法,否则你将以 Microsoft Access 数据库的形式创建这个数据库。当被要求将这个新建的数据库与一个计划(Schema)关联时,选择你刚刚创建并命名的计划(Schema)。然后你可以检查编辑和修改的表单和数据类型以符合你的要求。比如,你可以展开记录类型和目录树的表单节点来查看存在的 Defect_Base_Submit 表单。这些表单可以被重命名,一些域可以被删除、添加等等。更多创建和修改 ClearQuest 表单的信息,请参考 ClearQuest 文档。 我可以很快的在我们的桌面将我们项目的风险输入到 ClearQuest 中。整个团队的所有成员都可以访问风险数据库,并且可以输入他们观察到的风险。虽然只有项目经理(PM)和项目工程师(PE)应该具有权限关闭风险,但是给团队的每一个成员提出风险的权限是没什么不对的。项目经理首先会希望查看对于客户可见的风险,因为其中的某些风险也许不是相关联的或者是可以很快被解决的。例如,图1显示了一个被用来输入我们讨论过的项目早期遇到的风险的表单。 对于项目的开始我发现并输入和一共17个风险。这并不是一个非常大的数字,其中的一些风险(比如有挑战的时间进度计划)直到项目的最后时期都会存在。 图2显示了我们所查询的项目风险的一个部分的列表的 ClearQuest 界面。风险被列在最上方,并且严格的按照顺序排列。通过点击列表中的风险项可以得到更加详细的单个风险的信息。 跟踪进展 好的工作分解结构(WBS) 对于跟踪项目进展是十分重要的。第1部分中的干特图 描述了我们第1阶段的工作任务包 。为了使我们可以精练出有用的矩阵,这些工作任务包必须被清晰的定义并也适当的规划每个工作任务包的大小。我们典型的为这些工作任务包分配10到40天的工作工作量。 此外,ClearQuest 也可以帮助我们跟踪那些系统中可变的部分—在这些可变的部分中,变更请求却是极其的偏高。在一些之前的项目中,我们发现在细化阶段出现的过多的变更请求通常是下列方面中的一项或者多项的征兆:不够充分的分析、难相处的客户、脆弱的工程团队、不良的过程执行或者复杂的再工程。如果在系统的某些方面出现了一点这些症状,就需要管理人员和组长对这些部分有额外的注意。 管理客户期望 我们怀疑真正的项目优先级和动机并没有反映客户的工作现状,我们还需要理解客户关心的主要优先级和期望。为了实现之一点,我们起草了一份概要的远景文档来帮助谅解更多的客户期望。(由于时间的限制,我们将业务远景和项目远景合并成了一个文档。)不论是工作现状(SOW)还是远景文档都要与客户一起进行多次的修订。 远景文档是基于在几个由 RUP 安装包提供的 Microsoft Word 模板其中的一个创建的。我们将这些模板安装在 Word 指定的地方(通过 工具 > 选项 > 文件位置)。如图3所示,我们为每个模板生成了预览(通过打开每个 管理需求 客户已经开始的工作现状(SOW)可以作为我们的系统需求基线。在许多的情况下,我们按照 RUP 中描述的从业务建模和需求分析开始。这应该包括业务用例的集合、补充的系统规范和业务对象模型。但是对于我们来说从客户的工作现状开始来满足他们的期望并建立在他们的工作之上是十分重要的。我们将按照的工作现状生成了一个叫作软件需求说明书 (SRS) 的 RUP 产物,并且把它作为需求的基础集合,根据它我们可以跟踪我们后来的分析和建模产物。 RequisitePro 的能力可以非常容易的帮助我们从客户的工作状态(SOW)插入需求。我们创建需求的规则要与我们“子弹”的样式相配,或者与任何或所有的关键字 "must"、 "will" 和 "should" 相配。其他可以帮助我们建立需求层次的诀窍包括在相同的级别上获取需求块,在需求块创建标签下对适当的父需求设置缺省值,然后让创建工具完成接下来的工作。(起先我们使用需求块创建时没有设置父需求,所以我们必须返回到每一个需求并对每一个需求设置父需求 — 对于成百上千的需求来说这是单调乏味的工作。) 图4显示了来自于客户服务子系统需求的一页(一共大约40页)。就象你看到的一样,RequisitePro 的界面被紧密的集成到了 Word 应用程序中,因此你可以同时使用 Microsoft Word 和 RequisitePro 的特性。 我们与客户紧密的沟通什么样的信息是被需要的,但是我们让他们在需求文档上作了大量的工作。这被证明是一个非常有效的方式;我们能够向他们的团队传授过程的技能,而他们能够给我们的团队他们学科的专家意见。我们趋向于非常细节的投入到一些领域中,而在其他的一些领域只是在非常高的层面上。在一些情况下这是非常合理的,但是在另一些情况下他们却对系统的一个特定的领域过分的狂热。通过对文档的审查,我们可以指导 ASDI 写出适当并足够详细的需求集合。因为我们正在处理的是 Word 文档,因此规格上的互操作是容易的,当我们对这个文档感到满意时,我们就可以在文档上运行 RequisitePro 。 同样在这个时候我们关注系统的 非功能 需求,这就意味着这些需求不会被系统的功能规格说明描述。这些非功能需求包括关注人的因素的可用性需求(比如学习和使用的舒适性)和可靠性需求等等。 总结 计划未来 同样,我们需要一种正式的方式来管理客户的变更请求、客户所关心的地方和客户的反馈。虽然之前我们没有使用 ClearQuest 的 Web 界面,但是它看起来像是一个完美的工具使开发团队和客户保持同步。建立 ClearQuest Web 对我们来说是下一周或第二周最高优先级的事情。 主要风险 客户很高兴我们的进展如期完成,一部分是因为我们的工作产物对他们来说不是感觉不相关的。当我们继续的移到 RUP 的产物时我们必须通过大量的指导来维护客户的舒适感觉并温和的进入新的概念:用例、业务对象等等。 我们觉得我们的时间进度是切合实际的并且设计是良好的除了有非常小的意外。这就意味着资源必须尽快的到位,并且审查返回必须是及时的。我们也必须从一开始就关注高级别的风险,因为我们不能让他们在晚些时候遛进项目的第1阶段。
|
版权所有:UML软件工程组织 |