以用户为中心的设计 |
这是UCDChina提前预览网页留下的存档,不包括作者可能更新过的内容。 推荐您进入文章源地址阅读和发布评论:http://hi.baidu.com/xxucd......a5c272c7.html |
||
作者: Jakob Nielsen 译者:萧小小 UCD翻译小组 审校:Jarod 原文地址: http://www.useit.com/alertbox/agile-methods.html
摘要: 敏捷开发意在解决传统开发方式中存在的可用性问题,但是却对用户体验带来了新麻烦。然而,不少公司通过改造敏捷开发方法,在实现目的的同时避免了这些麻烦。 快速应用开发流程如敏捷开发和Scrum(译注:scrum是敏捷开发的另一种方式)是提高还是威胁用户体验质量,这取决于是如何运用这些方法。
敏捷开发的优势 敏捷开发解决了长期困扰可用性专家们的三大问题: · 以过去50年的经验看,传统瀑布式开发导致了差的用户体验。原因很简单:需求说明书从来没对过。 o 理想情况下 ,如果严格执行,需求是可能反映用户想要的东西的。但是更通常地反映的是离操作层太远以至于不知道操作细节的“典型”用户们的要求。一般而言,用户想要的和用户需要的是完全不同的,这就是“观其行而非听其言”一直成为首要可用性指南的原因。
o 如果从撰写需求到交付产品需要很长的时间,用户的需求将非常可能发生变化,致使撰写的需求和用户实际的需求之间距离越来越大。 o 在过去的25年中,可用性工作中提高设计质量的最好方法之一是观察用户和该设计进行交互(through either a functional or mocked-up screen )。假如开发者们在时间溜走之前没有这样做,那他们的大部分的开发工作可能是围绕错误的设计在进行。 ·同样,在瀑布开发后继阶段,按照文档苟且行事会带来诸多问题,更糟糕的是让开发者对照文档逐条逐字实现。很多问题出现在实施交互设计细节之中,在陈旧的设计和用户体验专家也已经早已离开的情况下,让开发者解决可用性问题,有点不现实。
· 自1989年以来,因为其易操作性,在开发过程中可以被开发者经常使用的“简化的可用性工程”(discount usability engineering)被认为是提高用户体验的最佳方法。然而,在严格的瀑布开发流程中,这个方法根本不可能操作,原因在于无法在流程中获得用户反馈。
敏捷开发有望解决传统开发方法对良好易用性造成的系统障碍。
敏捷开发带来的问题 敏捷开发对系统质量最大威胁在于它是由开发者提出,主要针对系统实现的方法 。结果,交互设计和可用性问题经常被低估,而被认为是开发过程的附属结果。这显然和过去30年的经验相矛盾,用户体验在系统开发中的重要性随着我们从大型机发展到个人电脑再到网络的过程中稳步增强。随着用户增多和使用范围的扩大,现实世界对搞可用性的需求日益增大。
为了建立好质量的用户体验,开发团队需要交互设计和可用性方法。对于小一点的团队,并不一定需要专门的设计师和可用性专家。让开发人员自己做交互设计和可用性考虑最为合适。但是,不管设计或可用性人员是专职还是兼职,重点在于在开发中要将交互设计和可用性设计作为单独明确的开发活动来实施。
对于一个认真做交互设计和可用性的项目,必须和编码一样平等分配“story points”(译注: Story point是用于评估完成每个Story所要付出劳动,使用相对尺寸来估计)。
另一个问题是,在开发中把一个产品分解成了更小的模块,让每人一次完成一个模块。此方法就冒了这样的风险:破坏了一个完整的用户体验概念——不同的部分始终如一的表现,帮助用户建立起一个完整的系统概念模型。最糟糕不过的是,界面设计成了修修补补的大杂烩。 为了解决这个问题,团队可以设计包括用户界面架构的“storyboards” 和“原型”,以这些工具为参考点来设计单独的模块。为了避免在前期花费太多的时间,团队可以设计如纸面原型(不用编码的)的低保真原型,就像我们一直提倡的那样。 敏捷开发团队通常在相当短的“sprints”中完成所有功能,一般就持续3个星期。以如此紧迫的期限,开发者们可能会绕过可用性设计,因为他们觉得没有时间去做测试或其它用户研究。 解决方案包含三个部分:
· 用几天时间来做一些可用性活动,比如用户测试。一个富有成效的方法是在确切知道测试时会用到的东西时就提前做好准备。每周一次测试是非常可行的,且提供了一个整合多个用户反馈轮回的极好方法,甚至在最短的“sprint”里。
o 我们有一个关于“怎样操作一回完整的用户测试”的3天课程,课程真实地就团队自己的项目进行测试。 你可以在一天之内完成这种类型的快速测试,而且准备测试的时间和分析结果的时间总共不到一天。
·大部分成功的团队都采用了“并行工作”(parallel track)法,用户体验工作在开发编码之前就连续地进行了。因此,到开始开发一个模块的时候,该模块原始的用户体验工作就刚好完成。
· 最后,我们需要全面的用户调研(foundational user research),而不是单独针对功能点的设计开发。比较理想的是,公司应该在一个项目开始之前做这个工作。当然,大公司应该具备一些关于用户工作流程、人物角色和可用性指南的基本知识,这样以后的很多项目都可以参考使用。
让敏捷和可用性相得益彰 很有理由相信可用性和敏捷开发方法是一定可以并存来提高用户体验质量的。
· 敏捷开发提供了很多机会来克服传统开发方法中长期阻止可用性的一些问题。
·作为程序设计方法而不是系统开发方法狭隘地使用敏捷开发可能会摧毁近10年来在整合可用性和开发方法的进展。但是,正如上文所说,每个问题都有相应的解决方法。只要团队把它们当成明确的问题来解决,就不会有损产品质量。
|