`
vanadiumlin
  • 浏览: 505718 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

1 引子

太多了!终于签下合同-->得到了“正式”的客户提供的“需求书”的几片纸-->凭借自己的理解立即投入开发-->“木已成舟”,生米终于熬成粥-->用户拒绝接受?-->艰难地修改,反复修改,开发人员厌倦了,而用户对系统用之无味,弃之可惜,遂成鸡肋。-->由此后期收款遥遥无期,软件公司不再和用户保持沟通-->互相埋怨,扯皮由此而生。或者,一个项目拆成为多期,从而收取一部分款项,而很多的开发都作废。这样的案例真是何其多也!
究其主要原因,与其说是没有搞定关键客户,或者项目管理不当,不如说是没有帮助客户解决其问题,对客户真正的需求研究不够。实际上,原型方法是解决此类问题、确保项目成功的最佳途径。

我在写此文的同时,也试图寻找资料,不知道是本就没有,还是自己所不幸而未找到。看来原型并没有明确的标准,而目前不同软件公司的理解和做法各不相同也就不奇怪了。但从软件过程的角度来考察,原型法仍有着通用的优化的做法。本文试图从作者的实践经验出发,对原型方法进行思考与探讨。
另外,本文是发散型的,在研究原型的同时,也讨论了原型相关的内容。原型本质上有些象是抛砖引玉,而本文也旨在抛砖引玉,但无意于一概地论定什么。

2 什么是原型

2.1 原型的定义

原型(prototype)即把系统主要功能和接口通过快速开发制作为“软件样机”,以可视化的形式展现给用户,及时征求用户意见,从而明确无误地确定用户需求。同时,原型也可用于征求内部意见,作为分析和设计的接口之一,可方便于沟通。

2.2 原型的主要价值

原型法主要价值是可视化,强化沟通,降低风险,节省后期变更成本,提高项目成功率。一般来说,采用原型法后可以改进需求质量;虽然投入了较多先期的时间,但可以显著减少后期变更的时间;原型投入的人力成本代价并不大,但可以节省后期成本;对于较大型的软件来说,原型系统可以成为开发团队的蓝图;另外,原型通过充分和客户交流,还可以提高客户满意度。

2.3 基本要求

对原型的基本要求包括:

* 体现主要的功能;
* 提供基本的界面风格;
* 展示比较模糊的部分,以便于确认或进一步明确,防患于未然。
* 原型最好是可运行的,至少在各主要功能模块之间能够建立相互连接。

2.4 处理方法

原型的处理方法基本上有2种不同类型,即抛弃型和演化型(不同的软件工程书籍称发不同,实质意义则类似)。可以抛弃原型,在取得的明确需求基础上重新开始设计与开发;也可在原型的基础上继续开发。一般小项目不采用抛弃型原型,否则成本和代价似乎会偏高。

2.5 表达工具

原型的表达工具可以有很多,如果是演化型的原型,当然优先选用软件本身的开发工具。否则还可以应用各种快速显示的工具,例如,HTML,Powerpoint等等,只要能够充分而形象地表达就可以了。
根据笔者的经验,在原型系统中,可以采用一些与常规不同的做法,例如,可以在界面上比较显著的地方写明当前模块或界面的主要目的,由哪些角色操作,能解决其什么问题。这么做可以使得用户或开发团队成员一开始就有非常清楚的概念;又如,对于决策分析,你可以直接把一些分析结果画成图,并且配上一些文字说明,这样可以避免输入大量初始数据,等等。

3 原型在软件过程的地位

软件的根本目的是实现用户的需求,提供用户日常使用,解决用户工作中有所不便的问题,提高其工作效率,改进质量,加强管理控制,最终直接或间接地提高其效益。因此软件开发本质上就是需求的处理和实现,而软件原型对需求确定来说具有非常重要的意义。原型方法包括2个基本过程,即原型制作和原型评价。

如果从需求角度看软件过程,我们不妨可以把软件过程这样划分:

3.1 需求收集和分析

搜集需求得到需求说明书,了解软件要做什么,做成什么样,解决用户什么问题。
这时候软件公司以书面文档方式提出,例如需求问询表等。

3.2 提供原型并进行评价

制定原型开发计划,根据用户需求及不确定的高风险部分进行原型开发,在内部进行原型评价,请客户进行原型评价,以保证确实反映了用户的真正想法。

3.3 实现需求

当前的软件开发过程常常采用迭代方式进行开发,逐步求精,以降低风险和成本。对迭代的次数,每次迭代的里程碑,要实现的目标,及可提交的成果必须有可验证的清晰的计划。项目管理是一种艺术,迭代规划及里程碑定义都是一种挑战、一种艺术,但项目管理不在本文讨论范围。

3.4 需求变更

需求变更是正常的,也是难免的,应允许用户和开发团队自身对需求进行变更。变更处理的关键在于跟踪和控制,如何使产生的影响应得到控制,这属于配置管理的内容,也不在本文讨论范围。

实际上我们可以把原型看得更为广义一些。任何用户或者内部演示的材料,都可以看作为原型。例如,如果你的产品是某种通用的或者行业解决方案,虽然你其实还没有产品,但先做出一个原型,再加一个漂亮的白皮书,就可以在市场上进行预销售了。

对于抛弃型和演化型原型来说,也不是绝对的。演化型原型中必然会不断抛弃一些内容,而抛弃型原型,尽管在完成历史使命后不再使用,但很多思想以及部分设计还是可以继承的。

分享到:
评论

相关推荐

    原型方法论---关于软件原型方法若干问题的讨论

    ### 原型方法论——关于软件原型方法若干问题的讨论 #### 一、引言 随着信息技术的快速发展,软件开发方法也在不断演进。在众多的开发方法中,原型方法因其灵活性和有效性受到了广泛关注。本文旨在从作者的实践...

    《俞军产品方法论》概念地图.pdf

    《俞军产品方法论》概念地图 《俞军产品方法论》概念地图是产品经理的必备知识宝典,涵盖了产品经理的四大职责、用户模型、交易模型、价值 判断、决策理论、市场机会和组织效率等领域。以下是对该概念地图的详细...

    autosar方法论

    如Safety Extensions(安全扩展)、Diagnostic Extract(诊断提取)、Rapid Prototyping(快速原型)、Sender Receiver Serialization(发送者接收者序列化)等,这显示了AUTOSAR方法论在安全性、诊断、原型设计、...

    普华永道SAP实施方法论

    【普华永道SAP实施方法论】是全球知名咨询公司普华永道(PwC)为SAP系统实施提供的一套系统化、结构化的项目管理框架。这套方法论旨在帮助企业在实施SAP系统时,确保项目的高效进行,降低风险,并最大化投资回报。...

    需求管理方法论

    需求管理方法论是软件开发和项目管理中的核心环节,它涉及到对项目需求的识别、记录、分析、排序、变更控制以及沟通协调等多个方面。在信息化时代,高效的需求管理能够确保项目顺利进行,满足用户期望,降低开发风险...

    数据仓库-方法论

    ### 数据仓库方法论详解 #### 一、数据仓库建设的目标与意义 数据仓库的主要目标是从海量数据中提取有价值的信息,并将其转化为知识,为企业决策提供强有力的支持。数据仓库不仅仅是存储数据的地方,更是处理、...

    原型交互设计讲解

    在设计实践中,原型设计有助于团队理解产品目标和用户需求,同时提供一种低成本的测试和改进产品的方法。另外,原型设计能够提升用户体验,并帮助发现和解决设计问题,避免在开发过程中出现过多的返工和资源浪费。 ...

    数学方法论邬玫数学模型方法PPT学习教案.pptx

    《数学方法论与数学模型方法》 数学方法论是一门探讨如何运用数学工具解决实际问题的学科,其中数学模型方法是其核心组成部分。数学模型是将复杂现实问题简化并抽象成数学形式的过程,目的是为了更好地理解和解决...

    高效绘制游戏交互原型的方法

    在高效绘制游戏交互原型的过程中,涉及到的关键知识点和步骤可以分为以下几个方面...游戏交互设计师需要在理论学习和实践经验之间找到平衡,不断优化和完善原型设计的方法论,以期达到更高的设计水平和更佳的游戏体验。

    FPGA-Based Prototyping Methodology Manual 基于 FPGA 的原型方法手册

    ### 基于FPGA的原型设计方法论 #### 一、引言 《基于FPGA的原型设计方法论》(FPMM)是一本全面且实用的手册,它旨在指导如何利用现场可编程门阵列(FPGA)作为片上系统(SoC)开发与验证的平台。该手册不仅覆盖了...

    科学思维方法论.pdf

    科学思维方法论 科学思维方法论是对科学认识领域中的一般科学思维方法的理论学说。在马克思主义哲学指导下,对科学认识领域中的一般科学思维方法的概括和总结。其研究对象是科学思维方法,其内容是关于科学思维方法...

    电子商务网站原型设计毕业设计论文.doc

    * 原型设计的步骤:电子商务网站原型设计的步骤,电子商务网站原型设计的方法。 * 原型设计的工具:电子商务网站原型设计的工具,电子商务网站原型设计的软件。 五、结论 * 电子商务网站原型设计的重要性:电子...

    原型图文档资料

    - **精益产品探索**:这是一种以最小化成本获得最大化学习成果的产品开发方法论,对于提高原型图的设计效率和质量有着重要作用。 - **极客班与网易云课堂合作**:这两个平台提供了丰富的在线课程资源,涵盖了从基础...

    Oracle方法论.docx

    Oracle方法论是Oracle公司在实施其应用产品和技术产品时所遵循的一系列系统化、结构化的实践指导,旨在确保项目高效、高质量地完成。Oracle方法论主要包括以下几个核心组成部分: 1. AIM (Application ...

    产品经理终极方法论.docx

    产品经理终极方法论是产品经理在实践中形成的系统化思考框架,它以目标为导向,通过科学的方法来达成预期的结果。这一方法论由三个核心要素组成:目标、方法和结果。 首先,目标是任何产品工作的起点。产品经理需要...

Global site tag (gtag.js) - Google Analytics