UCD思想在软件开发中的应用

2012-04-29 00:23
软件工程 2012年6期
关键词:子项目可行性阶段

在设计领域,尤其是软件的交互设计领域,近年来UCD一直被人们所推崇,很多优秀的产品都有UCD的烙印。但是UCD是什么,它是如何影响设计师的思维和工作方式,从而影响产品的呢?

UCD说起来好像是一个很神奇的字眼,在设计领域,她像灯塔一样受到很多人的信任,甚至信仰。但是对于初识者来说,她就像一位窈窕的蒙着面纱带着魔力的姑娘,纤手一抬,指到哪里,哪里就有鲜花盛开。你不知道她的真实样貌,也不知道如何才能接近她,更不知道如何才能获得她的青睐,只能任凭自己的想象力飞驰,朦胧中,她的形象因为不可触摸而越发显得神秘。

现在,让我们像她所有信徒一样,从慢慢接近她,认识她开始,在实践中渐渐熟悉她,信仰她吧。

一、UCD介绍

在传统的软件开发中,我们更注重的是功能特性或是特性,而相对较少关注用户在使用这个产品过程中的体验。

UCD(User Centered Design)是指以用户为中心的设计,其目的是让用户在使用产品的过程中感受到愉悦性,即不但让用户感觉产品“能用”,还要让用户认为“好用、爱用”。

这里需要明确的是:UCD不是一套全新的流程,只是一种“思想”。应用UCD思想进行设计,改善用户体验,不需要也不允许对原有流程进行“革命性的变化”。我们只需在原有流程的基础上进行一些必要的“改良”而已。

更好的用户体验总是首先由用户使用,通过与产品交互,然后才能谈体验。我们以用户参与度比较高,或者说用户和产品的交互比较多的软件开发过程为例,了解UCD思想在软件开发项目中是如何被应用,从而改善用户体验的。

二、软件开发标准阶段

一个标准的软件开发项目阶段如图1所示:

图1所示内容是一个标准的软件开发项目可能经历的所有阶段,所以我们称之为“标准的……阶段”。但是在实际工作中,大多数的软件项目都没有那么复杂,可能不必经历所有阶段就能最终完成项目的工作。即使一个项目确实需要经历所有阶段,如果结合项目实际,则会发现不同规模、目的、背景的项目在相同的阶段内,要完成的任务也不完全是一样的。所以,为了节省成本,通常在项目启动之始,我们会根据行业特点、规模大小、项目特点等情况综合考虑,对上述标准阶段进行变更或者删除,这个过程称为“裁剪”。

尽管标准软件开发项目阶段会在实际工作中被裁剪,但是大多数情况下,作为开发主体的几个重要阶段——可行性分析、系统规划、需求分析、系统设计、编码实现、测试,我们只是对其中的具体工作做必要的简化或者变更处理,通常不会把这个阶段完全裁剪掉。

软件项目一般由几个子项目组成。如果软件项目涉及的范围比较大或者比较复杂,通常会根据实际情况把相对独立的成果作为开发目标,建立一些子项目,分别成立团队,并行地进行工作。例如,目标软件既包含前台的HMI1,也包含后台的Application2,甚至包含数据库和底层的驱动程序等。通常,为了降低复杂度,还会建立HMI开发子项目、Application开发子项目;又如,软件开发面临某个关键性课题,而这个课题相对独立,和其他工作之间的联系也非常少,那么可以把这一课题作为一个子项目单独进行管理;再如,在研发性项目的可行性分析阶段,分析结果决定项目是否继续进行,那么,就可以把这个阶段作为一个子项目。当然,为了项目整体的一致性,在一些关节点上,不同子项目团队之间需要进行沟通协调,以确保各子项目之间、子项目和主项目之间理解一致、目标一致。

图2项目职能流程图用矩阵式结构说明了在项目的各个主要的开发阶段,担任不同职能的人(或者是团队)是如何协同工作的。

三、软件开发过程中应用UCD的核心步骤

在软件开发的过程中,应用UCD进行开发的项目成为UCD项目。UCD项目和传统的软件开发项目相比,主要增加了用户研究员、交互设计师和视觉设计师。

用户研究员:主要研究用户的使用习惯、喜好,对产品的需要和期待,以及对产品的真实感受和意见等;交互设计师,负责把用户需要的功能有效地转化成一系列的界面展现给用户,凡是涉及到表达、传达的问题,都由交互设计师来做;视觉设计师,主要负责创建可识别的图像,充分利用相关的显示媒体,用艺术的界面外观,形象地表达功能,保证产品在布局和视觉感觉上的一致性(在传统的软件项目中,有些项目也会有比较原始的“界面视觉设计”的工作。但是通常这样的工作都是在项目后期,以“把界面美化一下”的要求下发下去的。这项工作要求“设计”的成分很少,担当这项工作的角色通常被称为“美工”,在这里不做讨论)。

UCD项目可以区分为5个主要阶段,或者称为5个核心步骤:计划、研究、设计、实现和度量。

UCD项目不论是涉及的角色还是阶段,都必须在原有项目职能的基础上进行调整和增加,不能独立进行。否则,UCD就失去了物质基础,变成空中楼阁,失去了原本的意义了。

对传统的软件开发流程和组织结构进行必要地改进后,新流程和职能如图3所示:

UCD项目的5个核心步骤和项目阶段是能够一一对应的。

1.计划:

对应于两个阶段,分别是“可行性分析”阶段和“系统规划”阶段。

a) 在“可行性分析”阶段,主要是对可行性分析工作进行支持,支持工作本身需要制定目标、有行动计划(在“图3UCD项目职能流程图”中,这个计划本身并未作为独立活动进行呈现)。

b) 在“系统规划”阶段,在进行“项目规划”“项目计划”活动的时候,需要把UCD活动考虑进去,并且在项目实施过程中进行跟踪。UCD活动主要指“图3UCD项目职能流程图”中绿色和黄色背景的部分。

2.研究:

主要对应于“可行性分析”阶段,为项目前期的策划和构思提供支持。具体工作包括:

a) 竞品分析:分析竞争对手的产品,从中找到可借鉴和可改进的部分,并且出具书面的《竞品分析报告》,报告中应该包含具体的解决方案。

b) 可用性分析:分析自己的产品,从中找出可改进的部分,并且出具书面的《可用性分析报告》,报告中包含具体的解决方案。

c) 用户研究:通过用户访谈,实地考察等方法,了解用户,以获取用户特征和角色关系、用户期望、任务目标和使用场景等一系列信息,并且出具书面的《用户研究报告》,报告中应该包含用户特征库、场景库。

d) 设计草图:根据初步需求、用户研究结果、竞品分析报告、可用性分析报告等输入资料的要求,设计概念化的产品原型草图,称为“概念原型”。概念原型要求只包含最重要的信息,不应涉及任何细节。因为过早的呈现细节容易分散人们的注意力,所以原型必须以迭代的方式逐步细化。

3.设计:

主要对应“需求分析”阶段。在这个阶段,主要进行迭代式的“交互设计”和“视觉设计”两项工作。原本的“确认需求”活动作为下一个迭代的输入。

a) 交互设计:根据需求,合理设计产品的用户界面框架、交互方式;开发原型,由HMI开发团队、Application开发团队、视觉设计师共同对交互方式、交互原型进行可行性评估。

b) 视觉设计:软件的用户界面视觉效果设计。

c) 迭代式设计:交互设计完成之后,在“确认需求”工作中,对交互原型进行评估,评估结果作为交互原型设计的下一个迭代的输入;在视觉设计完成之后,对视觉设计的成果物进行评估,评估结果作为视觉设计的下一个迭代的输入。

4.实现:

主要对应“需求分析”阶段。在这个阶段,主要进行“功能检查、设计评估工作”。“功能检查、设计评估工作”和“系统测试”看起来是类似的,都是以项目的最终成果为检查对象,但是它们的检查目的是不同的,所以观察角度也不同。前者主要目的是判断系统是否按照最初的设计实现,交互方式是否合理、视觉效果是否和设计初衷一致;后者关注的是系统功能是否完成、性能如何、还有多少bug、是否健壮等技术层面的问题。

5.度量:

主要对应的是“测试”和“可行性分析”阶段。在测试阶段进行的“用户测试”活动和在可行性分析阶段进行的“可用性分析”活动,两者的本质是一样的,工作内容都是对产品的可用性进行评估,成果都是《可行性分析报告》。

四、UCD在项目中的应用

在采用迭代式开发的UCD项目中,上一迭代结束的时候进行的“用户测试”的输出成果(可行性分析报告),可以直接作为下一个迭代的“可行性分析”阶段的输入资料。UCD的度量步骤和项目的测试活动把UCD项目的首尾连接起来,形成一个能够不断自我完善的、闭合的良性循环,如图4所示:

如上所述,在实际的项目中,应用UCD的活动归纳起来有如下几种:

●竞品分析

●可用性分析(包括项目前期的可用性测试和项目测试阶段的用户测试)

●用户研究

●交互设计(包含草图设计、交互原型设计和视觉设计)

但是,并非每个项目都必须完成上述所有活动。在实际工作中,可根据项目的实际情况,综合分析哪些活动是合适的、必要的,这很重要。不要盲目追求应用UCD来作项目。我们回到应用UCD作项目的初衷:让用户在使用产品的时候有更好的感受,让用户“爱上”一款产品。但是,在具体项目实施过程中,我们很难面面俱到,比较好的做法是主攻其中的某几方面。而在我们主攻的方向上,有些UCD活动是有效的,有些则不是。因此,不要根据市场最流行什么,我们就一定要做什么。应记住,“只选对的”就可以了。

此外,要清楚“小进步也是进步”的道理。在给老产品做更新的时候,用户相对稳定而且用户已经具有使用经验。这种现实情况下,做用户测试,进行可行性分析,寻找“痛点”(痛点指用户用起来不舒服的地方),然后改善它。这个工作路径不论从时间上,还是从成本上来说,显然都比从“用户研究”开始入手更合适一些。

“他山之石可以攻玉”,当我们要做一款产品的时候,如果市场上已经有类似的产品出现,我们不妨先分析一下,这些竞争对手的产品有何特性,优缺点何在?卖的最好的产品是哪一款,为什么?用户最推崇的是哪一款,为什么?知己知彼的情况下,如果能够做到“扬长避短”,则一样可以取胜。因此,从“竞品分析”入手也是一个不错的选择。

总之,在实际项目工作中,如果能活用UCD方法,则能以更小的代价取得更大的利益。

猜你喜欢
子项目可行性阶段
PET/CT配置的可行性分析
服务进程中消费者对子项目顺序的遵从性研究
关于基础教育阶段实验教学的几点看法
活性炭为中心综合项目总体布局
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
基于案例的电子技术实践教学内容与教学设备的设计
大热的O2O三个阶段,你在哪?
两岸婚恋迈入全新阶段
PPP物有所值论证(VFM)的可行性思考
中国经济改革促进与能力加强项目管理暂行办法