NO PAINS,NO GAINS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
此外,测试人员必须向团队的其他能够适当的改经需求、设计、代码和其他支持性的产物的成员提供测试的反馈。测试人员可以通过这些任务来帮助其他项目成员的工作:通常他们可以帮助产生更好的需求,因为他们在计划方法来测量一个需求是否被满足的方面是经过训练的。同时,现代的集成测试和开发环境允许他们通过使用基线的代码配置进行连续的测试工作。

  就像分析人员和开发人员承担了更多的任务一样,测试人员也承担起了更多的任务。 在项目周期的后期,测试人员作为质量专家,对整个开发
团队提供专家意见。例如,除了执行大量了集成和验收测试之外,他们可以在质量的相关决定上对项目经理进行指导。

  因为贯穿整个项目中需求是被迭代的识别、细化、开发和测试的,因此项目
团队并不应该过早的生成所有被执行的测试的详细说明。相反,早期的焦点应该是理解对于一定的阶段或者迭代的测试的目标 -- 他们应该完成什么。这将焦点移到了识别每个迭代的潜在的问题领域上,并且开发测试以暴露那些问题领域。

  迭代开发意味着在项目的早期你就要开发测试系统的关键能力。同时也意味着你需要在后续的迭代中测试和重新测试这些能力以确保你认为应该被解决的问题不会再一次出现。不通过有效的自动化测试进行完全的回归测试是不切合实际的 — 而且通常是不可能的, 因此你必须要在整个项目中不断的开发出可自动化的测试。有效的实现这一点的诀窍是理解在迭代不断持续时什么元素是可以保持稳定的;通过这种方法,你可以避免为每一个迭代重写自动化测试。这就要求你对系统的体系架构有一定的了解;在比较靠后的迭代中,测试应该更注重系统详细的功能性。

 
 项目经理的新思想

  迭代开发方法的一个最重要的区别是他被设计成为在项目的早期将主要的风险去除掉。利用这个差别需要对项目所面临的风险公开而且诚实。同时你逃避风险的自然倾向会使人们推迟处理这些风险风险不知何故的被忽略 — 就像他们从未发生过。风险就像是传染病:你忽略它越久,它的危害就越大。 风险必须在整个项目中被持续的识别并划分优先级;每一个迭代都必须被降低风险的原则性的目标所驱动。

  使用这种方法会需要一些文化上的变化。典型的管理形式规定你应该对广大听众避免承认
风险,因为人们可能会断定你们在运作一个有问题的项目。这是一个危险的方法:假装风险不存在不会使风险离去。

  传统的情况下,
项目经理通过询问团队成员什么活动已经被完成来确定项目的状态。他们假设但所有活动都被完成时,项目也就被完成了。但是这种方法经常会导致项目的失败。检查被完成的活动是不好的测量项目进度的方法,因为它并没有对活动的结果的质量进行量化。如果项目经理能够精确的计划项目团队需要做的每一项工作,并且没有会背离项目计划的事情发生,这种方法 可能会满足项目的需要。然而,就像很多项目经理知道的那样,事情很少是按照计划进行的。甚至是如果你创建了更为详细的计划,结果也是令人惊讶的。 无论我们如何努力的预期未来,我们也不能预期每一件事情。

  
基于结果的管理

  
因为我们不能预测未来,软件项目的经理需要对他们的一些关键的策略进行
风险的管理。这需要改变你的测量方法:代替基于完成活动的测量方法,你应该使用基于可演示的结果的方法进行测量。这是 基于结果管理的基础。应用基于结果的管理策略意味着将重点放在风险上并正面的处理它。通过特意的结构化项目的活动以处理风险,你可以揭示隐藏的问题,解决问题并稳定的减少项目进程中的不确定因素。

  此外,因为一个软件开发项目的主要结果是软件本身, 所以你所交付的产物应该是成功的主要量度。你可以使用象一系列被通过的
软件测试、代码中的缺陷的数量和他们的精确度等等的矩阵来评估你的软件。换句话说,移到迭代开发就意味着要通过根据指定目标和需求产生的的测量可演示的结果, 而不是通过计算有多少活动、产物或者工作产品被完成来评估项目的状态。为了评估项目的稳定性(有效管理的另一个量度),你也应该跟踪需求、设计和代码中的冗余。

  更少的也许是更多的

  
早期,我们注意到添加详细的信息到需求也许不总是对项目有益的。对其他类型的文档也是同样的。你的质量保证计划、软件开发计划或者需求管理计划都不是项目健康的良好量度。太详细不总是更好的:你应该调整你特定项目需要的文档详细级别。决定合适详细级别的方法是关注
风险和结果:如果你添加详细信息到某一产物可以减少风险或者改进特定结果的质量,那么这个投入是值得的;否则,在更有生产力的活动上花费时间是更好的。

  使用瀑布型的方法
项目经理需要付出很多的注意以详细的计划和指定需求。而使用迭代开发的方法项目经理可以根据工作中的风险来权衡的将时间花费在细化需求、架构、设计和实现上。他们会问:“什么样类型的活动可以最有效的立即降低风险呢?” 也许原型化一个方案可以处理与项目客户买进相关的风险,或者也许他们需要实际的设计、实现和测试架构以完全的处理架构方面的风险
a
posted on 2007-02-27 10:25  JazzieZhang  阅读(154)  评论(0编辑  收藏  举报