http://blog.sina.com.cn/s/blog_5d2070030101b9m0.html 生命周期法是用于信息产品(软件、网站、互联网产品等)设计和开发的常用的设计思想。 生命周期法常用的模型有:瀑布模型(文档驱动)、迭代式模型(功能驱动)、快速原型模型等。 问题所在: 随着各种技术和市场和环境的进化,设计开发的流程也面临很多问题,一些深植在我们内心的看上去很经典的流程实际上已经不能满足现在设计和开发。 所以团队才经常会在项目进行中感觉进度缓慢、没有共同的交流语言。 首先我先提出两个现在在业界对于流程的改造的主流思想。 1、UCD(用户中心的设计)嵌入传统软件设计和开发流程; 2、敏捷开发嵌入传统软件设计和开发流程。 一、UCD(以用户为中心的设计)的兴起和流程 首先,我们来看一下,传统的软件设计和开发流程是什么。 经典软件开发流程(随便找的,但是基本上大同小异): 这幅图中我们看到了很多我们或许误解但是经常挂在嘴边的概念。而这些概念每个人对他的理解不同从而导致流程冲突。 这几年,大家都或多或少听说了”用户体验“这个词。 其实在行业里边,”用户体验“”交互设计“的概念也很容易混淆。我们不谈论太多的概念。因为概念本身就是抽象的,没有 太多操作层面上的指导意义。 UCD的兴起是因为行业的进步和为了解决新问题的出现。 问题1: 以前,一个项目开始的时候,以开发者为主的团队习惯的考虑的视角是程序本身,而甚少关注市场需求和好不好用。 也就是说,习惯性的只关注程序本身的性能而容易忽视了这个功能到底客户需不需要; 问题2:销售项目或者产品的时候,或者跟客户交流来定义需求的时候,总是无法将双方的视角统一。客户不懂技术,急需一种 直观的东西来交流; 问题3:对于团队内部。 也少了一个环节来把 最重要的“需求”“好用”来重点进行设计。因为,现在的用户对于信息产品的好坏已经 不是能不能完成功能,而是好不好用。苹果因为把交互和体验等用户分析做的很好,所以才走在了前面。其实这也正是现在用户体验这个 词大热的主要原因。现在很多互联网产品失败的重要原因及时所谓”三无“:无设计、无体验、无目标。
在传统的流程中,不是没有分析市场需求、交互设计的过程。只是这些过程被埋没在了开发者思想主导的阴影里边。我们再来看一下 UCD流程是如何尝试嵌入传统经典的开发流程的: 首先我想说明的是,这张图标实际上已经是很早之前的成果了。其创作者本身正是ajax技术的创作者。 这样的东西其实现在看来也有很多地方需要改进。
UCD流程的嵌入,是衔接商业目标和软件开发的一个中间层。 其实狭义的UCD流程也在解决软件开发中,设计和逻辑的冲突。即前台和后台分割的工作流。比如microsoft blend,adobe 催化剂等。 UCD将整个产品开始的商业计划阶段、用户体验阶段从传统的以开发视角为导向的混在在不同流程中抽离出来,并加以固化和深化。 将强迫整个团队,将风险提早暴露,而不能等到最后才发现问题。
其实传统的软件设计流程有一个大前提,就是商业需求已经确定,甚至不需要确定,因为早期的软件出来就有市场。所以,传统的软件设计流程开始其实 始于一个既定的目标和相对确定的需求。类似于项目的流程。 而现阶段,很多团队问题是,一开始将产品设计和项目混杂在一起。商业目的没有确立的情况下直接开始功能的设计。跨度太大导致了团队的迷茫。原因还是 没有一个对流程的透彻的理解。 下面的图表是我对于
从图中可以看出:1、不同的流程有不同的重点,所以有些流程中会出现无的状态; 问题: 我的理解是: 1、UCD流程中,是需要开发人员介入的; 2、这不是一个瀑布模式,不是严格的从前到后。后面我将说到基于快速原型和迭代增进的方法。其实流程之间是重叠的,不是绝对分割的。 所以这也不存在一个绝对的一分为二的说法。 二、敏捷开发嵌入传统软件设计和开发流程研究 我们讨论了几个流程的统一和不同之处。我么在讨论一下如何在现实中操作层面有真正借鉴意义的流程。 大家可以发现,前面讲了那么一大堆,无论是UCD流程还是什么,都有着从前到后,从顶层到底层的类似瀑布流的模式。 这正是问题所在。 之前讲过,瀑布流模式存在很多问题,所以无论使用任何前面讲到的流程,如果还是瀑布模型,将或多或少出现问题。 敏捷开发出现背景说明: 1、快鱼吃慢鱼 2、总想快速完成工作,而无论团队资源有多少。 我的观点:原型法又叫快速原型法,主要是用来解决需求问题的。而迭代则是开发过程中不断的重复一些过程,是解决开发过程中的风险控制的。而增量法基本上都是和迭代法配合使用,所以我们平时说迭代法的时候,基本是在说迭代增量法。 所以迭代其实不只是用在开发过程,每一个环节都可以经过一次迭代过程。 比如需求确定阶段。 常见开发模型比较
敏捷开发的精髓在于打破僵化的固有流程,一切灵活的为了团队需要。 故我最终的解决方案是:迭代式的敏捷开发。流程并进基础上的修改和优化。(即不是一环扣一环,而是环节需要一起推进,不能等到前一步骤完全确定在开始后一阶段) 1、假设商业需求已经确定: 通过网站积聚人气,满足创业群体的需求,盈利来源是线上服务的中介费和线下服务盈利。并且决定产品概念就是一个门户和社交功能集合的网站; 2、市场需求确立阶段,即MRD、范围层、要点设计、市场调研和需求阶段等。 3、交互和用户体验的阶段微型迭代过程: 在前一个原型确立了市场需求之后,开始走用户体验流程(交互设计、用户可用性等),产出原型供讨论和修改。 4、开发阶段进行的同时。 将进行界面相关控件和组件设计等详细界面设计、信息设计(控件上的文字)、导航设计、视觉设计等,然后将原型和详细设计说明书交给开发阶段的前端开发人员写前端脚本; 5、开发阶段也将采用迭代增进法。一般在一定时间内比如一个月内,走一个迭代流程,完成一个功能重点。然后在进行审核,再迭代。 |
|