软件工程:原型设计,如何用最小的代价完成产品特性

什么是原型设计

原型设计,是产品经理确认需求,设计产品的最重要的沟通工具。

其实最早的原型设计,并不是作为一个需求沟通工具存在的

原型设计的发展历史

早在上世纪70年代,在瀑布模型提出后,很大程度改进了软件项目的开发,但是需求不明确、需求多变的问题从那时候开始就是一大难题。

快速原型模型

《人月神话》的作者弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)在《没有银弹 - 软件工程中的根本和次要问题》中第一次提出了:“在获取和制定软件需求时,将快速原型开发作为迭代计划的一部分”

后来快速原型就逐步发展成为一个开发模型,叫做快速原型模型,这种模型的特点就是快速开发、快速修改。目的是为了解决客户的需求不明确和需求多变的问题。

注意,这里的快速原型模型,是软件开发项目的一种模式,还不是工具

举个例子,如果用快速原型模型开发网站,大概分为三个阶段:
(1)第一个阶段就是纯静态HTML页面,能看到页面什么样子,没有后台,无法保存数据。这种静态页面开发成本不高,速度很快,改起来也方便,做好了就可以拿去跟客户确认需求。

客户看脸之后就能知道产品长什么样子,是不是满足需求,会提出明确的反馈意见。根据反馈,开发方会继续修改静态页面

(2)第二个阶段就是模拟一个后台服务,没有数据库,数据直接保存在内存中。但是可以让网站有真正的交互了:从网站添加内容就能显示出来,修改网站内容,网站显示的内容也会跟着修改。

这个阶段客户可以在网站上体验交互,也能完整的体验操作的流程,可以进一步针对交互再提出反馈,开发方根据反馈继续修改

(3)第三个阶段就是完成最终的后台服务,接入真正的数据库或者其他后台服务,完成整个网站的开发。由于前面两个阶段,产品经理已经把需求和交互确认清除,所以这个阶段的开发,就没有太多需求上的反复和修改,可以高效的完成设计和开发。

简单来说快速原型模式就是第一阶段确认界面布局和内容,第二阶段确认交互,第三阶段实现

通过快速原型模式来开发,可以低成本、快速的确认好需求。但是也有一个问题:整个过程单靠产品经理是无法完成的,必须要有开发人员配合才能完成。而对产品经理来说,要开发人员配合还是一件高成本的事情。

补充: 快速原型开发模型有两种模式,一种是抛弃型的,就是用工具开发的这种;一种是演化型原型,就是类似于MVP,先做简单核心功能,然后不断演化,变成最终产品。

低保真原型设计

于是又产品经理用线框图来代替第一阶段。线框图画起来简单,纸和笔就可以,展示效果不错,通过线程图可以直观的看到界面上有什么,布局是什么样的,一眼够可以用来和客户确认需求
在这里插入图片描述
线框图简单方便,可以起到沟通需求的效果。但是缺点也很明显,就是看起来不够真实,不方便反映界面之间的关系,另外也不能反映界面交互。所以线框图这种模型也叫做低保真模型

中等保真原型设计

再后来有像Axure这样专业的原型设计软件产生,不仅可以反映界面上的布局和内容,还可以展示网站的整体结构和交互。也就是说,借助原型设计工具,可以达到前面快速原型开发前两个阶段同等的效果。
在这里插入图片描述
这种原型设计,可以很好的用来确认需求和界面交互,虽然制作难度比线框图要复杂一点,但是不需要开发人员介入,产品经理完全可以自己搞定。

但这样制作出来的原型,也不能做到100%真实,因为它在界面上的真实度、色彩上要比最终产品差一点,所以也叫做中等保真原型。

高保真原型设计

近些年来移动端快速发展,对于移动端来说,因为界面比较小,布局和内容上已经没法玩出什么花样。可以客户更追求界面的美观和交互的炫酷,对原型的保真度要求也就越来越高。

所以很多原型工具就在高保真方面狠下功夫,让你简单操作就可以做出漂亮的界面和炫酷的交互,基本完成后都不需要再做UI设计了。

当然,高保真原型的学习成本和制作成本都要高于低保真原型,所以变更成本更高,而且也很容易导致产品经理花大量时间在细节的调整上,影响整体的进度。所以通常高保真都会和低保真原型设计配合使用,先用低保真原型快速确认清楚需求,再用1高保真原型确认最终的交互和UI设计

就这样,原型设计从最开始的一种快速开发模式,逐步演进成了今天的原型设计工具。让产品经理不需要会编程知识,也可以做出很酷的软件原型,从而可以低成本、高效率的确认清除产品需求

怎样做好原型设计

要做好原型设计,可以结合工程方法,分成四个阶段:分析、设计、实施和验证。

  • 分析阶段,搞清楚用户的需求,原型设计的目标;
  • 设计阶段,划分好产品的信息架构,设计好产品操作的流程;
  • 实施阶段,按照设计的结果,对每个界面制作原型,并做好界面之间的链接;
  • 验证阶段,和项目成员、客户进行确认,收集意见反馈,根据反馈进行修改

如何选择合适的原型设计工具?

原型设计工具,选择非常多。选择的时候,可以从几个维度考虑:

  • 面向的平台:Web、桌面、手机;
  • 保真度:中等保真度还是高保真度;
  • 功能:是否满足你的要求;
  • 成本:价钱是否可以接受。

常用的有:

  • Axure RP:Axure RP 曾一度是原型设计工具的代名词,历史悠久功能强大,可以制作网站、桌面软件、移动 App 的原型。 缺点是专业度较高,价格高。
  • 墨刀:墨刀 是一款优秀的国产原型设计工具,可以制作网站、桌面软件、移动 App 的原型。上手相对容易,价钱也较 Axure 便宜很多。
  • Adobe XD:Adobe XD 是 Adebe 出的一款设计兼原型设计工具,可以制作出高保真原型,对于设计师尤其容易上手。
  • ProtoPie:ProtoPie 是一款高保真原型设计工具,不需要编程基础,可以做出逼真强大的交互效果。
  • Framer X:Framer X是一款高保真的原型设计工具,功能很强大,但是需要一定的编程基础

问题

原型设计对于开发人员是不是必要的?

  • 对于开发人员来说,设计原型是帮助理解需求的手段,并不是必要手段。只要能理解清楚需求,通过和产品经理多沟通,达到理解需求的目的即可。
  • 但对于产品经理来说,产品原型是很有必要的,因为这是最简单有效的确认需求的方式,最简单有效的让其他人理解产品设计的方式。

怎样参与产品设计?

  • 首先从技术角度,好的产品设计要让产品设计在技术上实现不要成本太高,所以在一些技术难度高的设计上两边要多沟通确认,共同制定出技术难度适中,又满足好产品需求的设计。
  • 然后从产品角度,开发必须充分理解产品设计才能设计出符合产品需求的架构,才能开发出满足需求和好的用户体验的产品。所以开发需要多和产品设计反复沟通需求,然后将确认后结果体现在文档上。

至于参与方式,主要还是看什么形式比较好。

  • 比如可以安排需求评审,关键节点让主要开发人员参与确认技术可行性和成本以及建议
  • 比如有分批次的需求讲解会议想开发讲解产品设计,回答理解不清楚的问题

每个Sprint产品经理都要参与其中,及时和开发沟通确认需求不明确的问题!

什么是模块

  • 在技术里面,模块其实是对某一种类型需求的抽象。举个例子,一个博客系统,博客的帖子是一个模块,评论是一个模块,用户是一个模块,帖子和评论又可以进一步抽象成内容模块。
  • 模块的分类主要看是从架构层面还是业务层面:
    • 从架构层面看,一个普通的博客网站可以看出三层:IU层、业务逻辑层、数据访问层。其中UI层包含帖子列表模块和博客文章阅读模块;业务逻辑层则是帖子业务模块、用户业务模块。
    • 如果从业务层面看,包含博客阅读模块和后台模块,更偏向功能的分类。

什么是高内聚低耦合

高内聚低耦合是架构里面的概念,因为架构设计,需要把大的系统拆分成小的模块,拆分后,还要通过约定的协议通信。典型的有前后端分离然后通过REST API通信,还有像类库之间直接通过公开的方法调用

  • 低耦合是指项目没有什么依赖,改动互相不受影响。比如说前端和后端之间通过API通信,只要API不变,无论你后端用什么语言,跟前端都没有关系
  • 高内聚指的是一个模块都是关系很紧密的代码,比如用户模块,所有用户操作的功能都在用户模块里面,关系紧密,也不需要依赖于其他模块

Guess you like

Origin blog.csdn.net/zhizhengguan/article/details/121844271