软件项目视图和范围
编者说明:
项目所涉及的内容与所解决的问题都是有限的,而且项目应该是十分有目的性的,是为了实现某个可度量的目标而做的。因此,在需求分析的前期应该将“项目的目标与范围”这一项目的本质文档化,让每一个项目成员对其达成共识。该文档是十分重要,但却又是十分容易被忽视的。该文档模板比较适用于定制开发项目。
1.业务需求
[业务需求说明了提供给客户和产品开发商的新系统的最初利益。不同产品可能会有不同的侧重点。本部分描述了你为什么要从事此项项目的开发,以及它将给开发者和购卖者带来的利益。]
1.1 背景
[在这一部分,总结新产品的理论基础,并提供关于产品开发的历史背景或形势的一般性描述。]
1.2 业务机遇
[描述现存的市场机遇或正在解决的业务问题。描述商品竞争的市场和信息系统将运用的环境。包括对现存产品的一个简要的相对评价和解决方案,并指出所建议的产品为什么具有吸引力和它们所能带来的竞争优势。认识到目前只能使用该产品才能解决的一些问题,并描述产品是怎样顺应市场趋势和战略目标的。]
1.3 业务目标
[用一个定量和可测量的合理方法总结产品总结产品所带来的重要商业利润。关于给客户带来的价值在后面阐述,这里仅把重点放在给业务的价值上。这些目标与收入预算或节省开支有关,并影响到投资分析和最终产品的交付日期。]
1.4 客户或市场需求
[描述一些典型客户的需求,包括不满足现在市场上的产品或信息系统的需求。提出客户目前所遇到的问题在新产品中将可能(或不可能)出现的阐述,提供客户怎样使用产品的例子。确定了产品所能运行的软、硬件平台。定义了较高层次的关键接口或性能要求,但避免设计或实现细节。把这些要求写到列表中,可以反过来跟踪调查特殊用户和功能需求。]
1.5 提供给客户的价值
[确定产品给客户带来的价值,并指明产品怎样满足客户的需要。可以用下列言辞表达产品带给客户的价值:
Ø 提高生产效率,减少返工;
Ø 节省开支;
Ø 业务过程的流水线化;
Ø 先前人工劳动的自动化;
Ø 符合相关标准和规则;
Ø 与目前的应用产品相比较,提高了可用性或减少了失效程度。]
1.6 业务风险
[总结开发(或不开发)该产品有关的主要业务风险,例如市场竞争、时间问题、用户的接受能力、实现的问题或对业务可能带来的消极影响。预测风险的严重性,指明你所能采取的减轻风险的措施。]
2.项目视图的解决方案
[文档中的这一部分为系统建立了一个长远的项目视图,它将指明业务目标。这一项目视图为在软件开发生存期中作出决策提供了相关环境背景。这部分不包括详细的功能需求和项目计划信息。]
2.1 项目视图陈述
[编写一个总结长远目标和有关开发新产品目的的简要项目视图陈述。项目视图陈述将考虑权衡有不同需求客户的看法。它可能有点理想化,但必须以现有的或所期待的客户市场企业框架。组织的战略方向和资源局限性为基础。]
[如:"化学制品跟踪系统"可使科学家查询到化学制品仓库或供应商将提供的化学制品容器。系统可随时了解公司每一个化学制品容器所处的位置,容器中所剩余的药品剂量,任何时候每个容器所处的位置和用法的历史记录。通过充分利用公司内部的可用化学制品,废弃极少量已使用或过期失效的化学制品,使用标准的化学制品的购买过程等将在化学制品上节省25%开支。"化学制品跟踪系统"还能产生符合政府部门规定所要求的全部报表,包括化学制品的使用、存储和废弃等报表。]
2.2 主要特征
[包括新产品将提供的主要特性和用户性能的列表。强调的是区别于以往产品和竞争产品的特性。可以从用户需求和功能需求中得到这些特性。]
2.3 假设和依赖环境
[在构思项目和编写项目视图和范围文档时,要记录所作出的任何假设。通常一方所持的假设应与另一方不同。如果你把它们都记录下来,并加以评论,就能对项目内部隐含的基本假设达成共识。比如,"化学制品跟踪系统"的开发者假设:该系统可以替代现有的仓库存货系统,并能与有关采购部门的应用相连接。把这些都记录下来以防止将来可能的混淆和冲突。还有,记录项目所依赖的主要环境,比如:所使用的特殊的技术、第三方供应商、开发伙伴及其它业务关系。]
3.范围和局限性
[项目范围定义了所提出的解决方案和概念和适用领域,而局限性则指出产品所不包括的某些性能。如果一般客户所提出的需求超出项目的范围时就应当拒绝它,除非这些需求是很有益的。记录这些需求以及拒绝它们的原因,以待查。]
3.1 首次发行的范围
[总结首次发行的产品所具有的性能。描述了产品的质量特性,这些特性使产品可以为不同的客户群提供预期的成果。应当避免将想到的每一个特性都包括到1.0版本产品中去。开发者应把重点放在能提供最大价值、花花费最合理的开发费用及普及率最高的产品上。]
3.2 随后发行的范围
[如果你想象一个周期性的产品演变过程,就要指明哪一个主要特性的开发将被延期,并期待随后版本发行的日期。]
3.3 局限性和专用性
[明确定义包括和不包括的特性和功能的界线是处理范围设定和客户期望的一个途径。列出风险承担者们期望的而你却不打算把它包括到产品中的特性和功能。]
4.业务环境
[这一部分总结了一些项目的业务问题。]
4.1 客户概貌
[客户概述明确了这一产品的不同类型客户的一些本质特点,以及目标市场部门和在这些部门中的不同客户的特征。对于每一种客户类型,概述要包括:
Ø 各种客户类型将从产品中获得的主要益处;
Ø 它们对产品所持的态度;
Ø 感兴趣的关键产品的特性;
Ø 哪一类型客户能成功使用;
Ø 必须适应任何客户的限制。]
4.2 项目的优先级
[一旦明确建立项目的优先级,风险承担者和项目的参与者就能把精力集中在一系列共同的目标上。达到这一目的的一个途径是考虑软件项目的五个方面:性能、质量、计划、成本和人员。在所给的项目中,其每一方面应与下面三个因素之一相适应。
Ø 一个驱动----一个最高级别的目标;
Ø 一个约束----项目管理者必须操纵一个对象的限制因素;
Ø 一个自由度----项目管理能权衡其它方面,进而在约束限制的范围内完成 目标的一个因素。
未必所有的因素都能成为驱动,或所有的因素都能成为约束因素。在项目开始时记录和分析哪一个因素适用于哪一类型,将有助于使每一个人的努力和期望与普遍认可的优先级相一致。]
5.产品成功的因素
[明确产品的成功是如何定义和测量的,并指明对产品的成功有巨大影响的几个因素。不仅要包括组织直接控制的范围内的事务,还要包括我部素。如果可能,可建立测量的标准,用于评价是否达到业务目标,如:市场股票、销售量及收入、客户满意度、交易处理量和准确度。]