据笔者观察,在一些大型互联网公司里,产品研发流程逐渐趋向于从传统瀑布流的方式向敏捷式开发转变,强调产品快速迭代上线。然而,什么是敏捷式开发,敏捷开发比瀑布流开发方式有何优势?在敏捷式开发过程中,作为UX设计师,又该如何更好地参与到这种敏捷式开发流程中来呢?本篇文章将为此作出回应。
本篇文章分两部分讲述。第一部分,介绍敏捷式开发中相关专业术语的基础概念,便于大家对敏捷开发有一个基本的认识和理解。第二部分,是对《Here is how UX Design Integrates with Agile and Scrum》文章的翻译,文章作者是我一直关注的设计师Jeff Gothelf。希望能对UX设计师如何参与到敏捷开发流程中来,有所帮助和启发。
一、什么是敏捷开发?
据百度百科介绍,敏捷开发(Agile Development)以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
具体而言,敏捷开发是一种开发方法,是产品研发的一套工作流程或工作方式,和瀑布流工作方式相对应。
敏捷开发和瀑布流开发的区别:敏捷开发的核心在人,强调团队成员之间的沟通,少文档或只提供必要的文档,周期通常在一个月内,产品迭代更新快。而瀑布流工作方式则强调的是文档输出,团队成员之间更强调对接文档,通常研发周期长,产品迭代更新较慢。例如,开发工程师一般只在需求文档交付到开发时才介入开发,没有完整的需求文档则拒绝开发。
1.1 Scrum
Scrum指的是一个开发流程。
1.2 Scrum敏捷开发中的角色
Scrum通常包括产品负责人(Product Owner)、流程管理员(Scrum Master)、开发团队(Scrum Team)。而现在,有的产品研发团队在敏捷开发中开始增加了体验设计师(UX Designer)这一角色。
1.3 Sprint
Sprint是Scrum的核心部分,其周期为小于或者等于一个月,其产出是“完成的”、“可用的”、“潜在可开发的”产品增量。通俗地讲,指的是一次迭代。Sprint的长度在整个开发过程中会保持一致。新的Sprint在上一个Sprint完成之后立即开始。Sprint由Sprint计划会议、每日Scrum站会、开发工作、Sprint评审会议和Sprint回顾会议构成。通俗地讲,即每一次的迭代,把每一次迭代的开发内容以最快的速度完成,这个过程称之为Sprint。
二、UX设计如何与敏捷式开发结合?
Jeff Gothelf,是一位对精益UX设计颇有研究的设计师。下面开始译文:
我曾经和朋友合著过一本书,书的主题是关于UX设计如何与敏捷开发结合的。围绕这一主题,我已经进行了将近10年的演讲、教学和指导活动。可即便如此,我还是收到了许多关于如何将UX设计与敏捷相结合的问题。其中,大部分收到的是来自产品经理、项目经理和技术经理的反馈。长期以来,这个问题始终困扰着产品研发团队,主要是因为他们引入敏捷理念并不是为了更深入地以用户为中心,专注产品的用户体验,而是为了更快地最终交付。
我曾亲自到一线产品研发团队参与产品设计,成功地解决了如何将UX设计与敏捷式开发结合的问题。我通过写作的方式记录下这些经历,并作为真实的案例运用到我的教学中来。最近,我很荣幸能同Josh Seiden及一些敏捷式开发社区的成员一起工作,Josh Seiden曾经和我一起合著过《精益设计·设计团队如何改善用户体验》这本书。我们一直在努力构建出一个框架,并逐步阐明敏捷和UX设计是如何结合的。为此,我们单独做了一个实验,在scrum模型基础之上添加UX设计活动。下图是我在这个实验中的真实实践情况。
当您要看这张图时,请先看以下几点注意事项:
图中的黄色便利贴代表的是敏捷模型中的一部分设计活动,并不是全部的设计活动。
首字母以D为开头的词,指的是设计师通常从事或参与的各种设计活动。
我对“设计”、“UX”等概念的定义并不是特别感兴趣。
图:Scrum + UX (V1)
我对每组UX设计活动都编了序号,下面是我对每一组UX设计活动的简要描述和基本理念的阐述。
1、产品需求待办列表项包含产品愿景,即产品方向。产品愿景不属于当前具体的sprint中,它是贯穿整个产品研发团队的一个方向。通常,产品需求待办列表项会包括高级项目、产品愿景和许多产品假设。为了帮助研发团队更好地理解产品需求,在产品规划阶段通常会出现设计冲刺(译者:这是一种谷歌风投团队总结的交互设计方法,其设计流程是短时间快速思考、决策与验证设计方案,快速完成产品迭代。该方法具体提炼为六步:1、理解项目背景、业务需求、用户需求或要解决的问题;2、通过分析业务需求和用户需求,确定产品目标和设计目标;3、围绕产品目标/设计目标,思考更多的设计解决方案;4、作出设计决策,选择最佳可行方案;5、产品原型设计,也可制作可演示的demo;6、验证设计方案或设想。)、调研(定性分析同类型的产品,或竞品分析)和假设等设计活动,这样有助于将以用户为中心的设计理念注入到我们要做的项目中。
2、Sprint计划是指研发团队的日常工作计划。比如“产品被设计成什么样子?”,“用户该如何使用产品?”,“我们需要处理哪些特殊情况?”等等。我们可以用设计方法来解决以上问题,比如协作草图(又名“设计工作室”、“制图师”等),以及UX设计师特别擅长的集体头脑风暴活动。
3、进入设计待办事项列表阶段,主要由设计师执行,但也要与scrum团队的其他成员协作。关键是要允许所有团队成员对这项工作进行优先级排序。设计活动包括:产品交互原型设计、视觉设计、文案内容设计,最终输出MVP(最小可行化产品)。
4、UX设计师在scrum团队中至关重要。在与开发人员、产品经理和scrum master的并行协作中,只有在团队中有专职UX设计师的情况下,才能展开交互设计和视觉设计,才能看到真实的产品原型。
5、Sprint验收。研发团队成员最后要一起测试在这次Sprint中研发的产品。这也是我们回顾在sprint中所学知识的一次机会(也就是结果)。像设计验证、设计探讨和辩论研究、定量分析、定性分析等这样的设计活动,不仅可以帮助我们推进工作进展,还有助于确定产品下一版本迭代的方向和sprint backlog的优先级。
最为关键的是,如果没有给scrum团队分配专门的设计师,这一切都是不可能发生的。正是由于UX设计师的存在,确保了项目在产品需求优先级和执行落地方面更加地顺畅,保证产品能快速顺利上线。如果一个项目的设计工作是外包给一个设计团队(无论设计师是否是scrum团队内部的),避免变成传统的瀑布流工作方式,可选择用 “设计冲刺”的方法,在产品规划阶段就介入设计,有助于增强团队成员之间的信任和了解,增进敏捷团队成员之间的沟通,且保重产品研发是在以用户为中心的前提下,完成产品迭代。
以上即为设计师Jeff Gothelf对UX设计如何与敏捷式开发相结合的个人思考。
总结
我们做设计,为的是打造有价值的产品和服务,而不是撰写说明文档。在敏捷式开发流程中,建议UX设计师在产品规划阶段就参与到产品讨论,将以用户为中心的产品设计理念注入到参与的项目中来。敏捷式开发不是简单地追求速度,实现产品快速迭代上线,也不是完全不需要产品需求文档,而是要在以用户为中心的理念前提下进行敏捷开发。正因为此,在敏捷式开发中,UX设计师的存在变得非常重要。
参考资料:
(1)https://medium.com/swlh/here-is-how-ux-design-integrates-with-agile-and-scrum-4f3cf8c10e24 (原文地址)
(2)https://weavi.com/33919
(3)https://baike.baiducom/item/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/5618867?fr=aladdin
领取专属 10元无门槛券
私享最新 技术干货