需求分析 - 法则

客户与开发人员交流需要好的方法。下面建议20条法则,客户和开发人员可以通过评审以下内容并达成共识。如果遇到分歧,将通过协商达成对各自义务的相互理解,以便减少以后的磨擦(如一方要求而另一方不愿意或不能够满足要求)。

1、 分析人员要使用符合客户语言习惯的表达   
需求讨论集中于业务需求和任务,因此要使用术语。客户应将有关术语(例如:采价、印花商品等采购术语)教给分析人员,而客户不一定要懂得计算机行业的术语。

2、分析人员要了解客户的业务及目标   

只有分析人员更好地了解客户的业务,才能使产品更好地满足需要。这将有助于开发人员设计出真正满足客户需要并达到期望的优秀软件。为帮助开发和分析人员,客户可以考虑邀请他们观察自己的工作流程。如果是切换新系统,那么开发和分析人员应使用一下目前的旧系统,有利于他们明白目前系统是怎样工作的,其流程情况以及可供改进之处。

3、分析人员必须编写软件需求报告   

分析人员应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解决方法和其他信息。通过这些分析,客户就能得到一份“需求分析报告”,此份报告使开发人员和客户之间针对要开发的产品内容达成协议。报告应以一种客户认为易于翻阅和理解的方式组织编写。客户要评审此报告,以确保报告内容准确完整地表达其需求。一份高质量的“需求分析报告”有助于开发人员开发出真正需要的产品。

4、 要求得到需求工作结果的解释说明   
分析人员可能采用了多种图表作为文字性“需求分析报告”的补充说明,因为工作图表能很清晰地描述出系统行为的某些方面,所以报告中各种图表有着极高的价值;虽然它们不太难于理解,但是客户可能对此并不熟悉,因此客户可以要求分析人员解释说明每个图表的作用、符号的意义和需求开发工作的结果,以及怎样检查图表有无错误及不一致等。

5、开发人员要尊重客户的意见  

如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍。共同合作能使大家“兼听则明”。参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间,同样,客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。

6、开发人员要对需求及产品实施提出建议和解决方案   

通常客户所说的“需求”已经是一种实际可行的实施方案,分析人员应尽力从这些解决方法中了解真正的业务需求,同时还应找出已有系统与当前业务不符之处,以确保产品不会无效或低效;在彻底弄清业务领域内的事情后,分析人员就能提出相当好的改进方法,有经验且有创造力的分析人员还能提出增加一些用户没有发现的很有价值的系统特性。

7、描述产品使用特性   
客户可以要求分析人员在实现功能需求的同时还注意软件的易用性,因为这些易用特性或质量属性能使客户更准确、高效地完成任务。例如:客户有时要求产品要“界面友好”或“健壮”或“高效率”,但对于开发人员来讲,太主观了并无实用价值。正确的做法是,分析人员通过询问和调查了解客户所要的“友好、健壮、高效所包含的具体特性,具体分析哪些特性对哪些特性有负面影响,在性能代价和所提出解决方案的预期利益之间做出权衡,以确保做出合理的取舍。

8、 允许重用已有的软件组件   

需求通常有一定灵活性,分析人员可能发现已有的某个软件组件与客户描述的需求很相符,在这种情况下,分析人员应提供一些修改需求的选择以便开发人员能够降低新系统的开发成本和节省时间,而不必严格按原有的需求说明开发。所以说,如果想在产品中使用一些已有的商业常用组件,而它们并不完全适合您所需的特性,这时一定程度上的需求灵活性就显得极为重要了。

9、 要求对变更的代价提供真实可靠的评估   
有??同的选择。而这时,对需求变更的影响进行评估从而对业务决策提供帮助,是十分必要的。所以,客户有权利要求开发人员通过分析给出一个真实可信的评估,包括影响、成本和得失等。开发人员不能由于不想实施变更而随意夸大评估成本。

10、 获得满足客户功能和质量要求的系统   

每个人都希望项目成功,但这不仅要求客户要清晰地告知开发人员关于系统“做什么”所需的所有信息,而且还要求开发人员能通过交流了解清楚取舍与限制,一定要明确说明您的假设和潜在的期望,否则,开发人员开发出的产品很可能无法让您满意。

11、 给分析人员讲解您的业务   
分析人员要依靠客户讲解业务概念及术语,但客户不能指望分析人员会成为该领域的专家,而只能让他们明白您的问题和目标;不要期望分析人员能把握客户业务的细微潜在之处,他们可能不知道那些对于客户来说理所当然的“常识”。

12、 抽出时间清楚地说明并完善需求   

客户很忙,但无论如何客户有必要抽出时间参与“头脑高峰会议”的讨论,接受采访或其他获取需求的活动。有些分析人员可能先明白了您的观点,而过后发现还需要您的讲解,这时请耐心对待一些需求和需求的精化工作过程中的反复,因为它是人们交流中很自然的现象,何况这对软件产品的成功极为重要。

13、 准确而详细地说明需求   

编写一份清晰、准确的需求文档是很困难的。由于处理细节问题不但烦人而且耗时,因此很容易留下模糊不清的需求。但是在开发过程中,必须解决这种模糊性和不准确性,而客户恰恰是为解决这些问题作出决定的最佳人选,否则,就只好靠开发人员去正确猜测了。

在需求分析中暂时加上“待定”标志是个方法。用该标志可指明哪些是需要进一步讨论、分析或增加信息的地方,有时也可能因为某个特殊需求难以解决或没有人愿意处理它而标注上“待定”。客户要尽量将每项需求的内容都阐述清楚,以便分析人员能准确地将它们写进“软件需求报告”中去。如果客户一时不能准确表达,通常就要求用原型技术,通过原型开发,客户可以同开发人员一起反复修改,不断完善需求定义。

14、 及时作出决定   

分析人员会要求客户作出一些选择和决定,这些决定包括来自多个用户提出的处理方法或在质量特性冲突和信息准确度中选择折衷方案等。有权作出决定的客户必须积极地对待这一切,尽快做处理,做决定,因为开发人员通常只有等客户做出决定才能行动,而这种等待会延误项目的进展。

15、 尊重开发人员的需求可行性及成本评估   
所有的软件功能都有其成本。客户所希望的某些产品特性可能在技术上行不通,或者实现它要付出极高的代价,而某些需求试图达到在操作环境中不可能达到的性能,或试图得到一些根本得不到的数据。开发人员会对此作出负面的评价,客户应该尊重他们的意见。

16、 划分需求的优先级   

绝大多数项目没有足够的时间或资源实现功能性的每个细节。决定哪些特性是必要的,哪些是重要的,是需求开发的主要部分,这只能由客户负责设定需求优先级,因为开发者不可能按照客户的观点决定需求优先级;开发人员将为您确定优先级提供有关每个需求的花费和风险的信息。   在时间和资源限制下,关于所需特性能否完成或完成多少应尊重开发人员的意见。尽管没有人愿意看到自己所希望的需求在项目中未被实现,但毕竟是要面对现实,业务决策有时不得不依据优先级来缩小项目范围或延长工期,或增加资源,或在质量上寻找折衷。

17、 评审需求文档和原型   
客户评审需求文档,是给分析人员带来反馈信息的一个机会。如果客户认为编写的“需求分析报告”不够准确,就有必要尽早告知分析人员并为改进提供建议。更好的办法是先为产品开发一个原型。这样客户就能提供更有价值的反馈信息给开发人员,使他们更好地理解您的需求;原型并非是一个实际应用产品,但开发人员能将其转化、扩充成功能齐全的系统。

18、 需求变更要立即联系   
不断的需求变更,会给在预定计划内完成的质量产品带来严重的不利影响。变更是不可避免的,但在开发周期中,变更越在晚期出现,其影响越大;变更不仅会导致代价极高的返工,而且工期将被延误,特别是在大体结构已完成后又需要增加新特性时。所以,一旦客户发现需要变更需求时,请立即通知分析人员。

19、 遵照开发小组处理需求变更的过程   

为将变更带来的负面影响减少到最低限度,所有参与者必须遵照项目变更控制过程。这要求不放弃所有提出的变更,对每项要求的变更进行分析、综合考虑,最后做出合适的决策,以确定应将哪些变更引入项目中。

20、 . . . → Read More: 需求分析 - 法则

Android UI 设计谨记

Android的官方开发者博客发了一份幻灯片,介绍了一些Android UI设计的小贴士,Roger在这里以看图说话的形式发出来,有兴趣的读者就继续往下翻吧。整个PPT共分5个部分,Part I 翻译的是前两个部分。
. . . → Read More: Android UI 设计谨记

Android那些事儿(一)成长中的Android

第一部分:成长中的android;

什么是android,为什么要android,怎么来做android;
目前android怎么样了:多屏幕,多应用,多用户,多变种,“多”以致“乱”的用户体验。
. . . → Read More: Android那些事儿(一)成长中的Android

Android那些事儿(二)安卓手机交互特性

接上文《android那些事儿(一)成长中的Android 》。本文描述了与其它触屏手机系统和桌面系统不同的Android平台特性,这些特性需要更多的表现在我们开发的应用程序中,以保证这是一款Android手机的应用。这些特性可能对于习惯了其它手机操作系统的用户可能有不习惯的地方,需要重新学习和适应,另外在成长期中的Android系统也会存在不足,这些特性的总结有助于应用的用户体验提升。 . . . → Read More: Android那些事儿(二)安卓手机交互特性

Android那些事儿(三)安卓Pad交互特性

文章来自http://wsd.tencent.com/2011/02/aboutandroid3.html

    Android Pad 和Phone一样都存在多尺寸问题。对于Pad,更揪心的是屏幕比例和尺寸的多样性,这些因素直接影响着UI的表现方式。比较困惑的是我们的如何设计一个兼顾各种屏幕尺寸,分辨率,比例和方向的Android Pad应用。为此我们质问自己Android Pad 和Phone有什么差别?Android Pad 和iPad有什么区别?

现在很难找个能代表Android Pad的产品(不确定的尺寸,按钮位置,数量),在此仅以下图表示神秘莫测的Android Pad。

神秘多变的Android Pad

第一个问题:Pad怎么就成了Pad?在此我总结了Pad和Phone的区别:

Pad
Phone

尺寸
5寸-10寸
2寸-5寸

应用场景
家,办公环境中用于娱乐,演示 有连续长时间沉浸式的流畅体验
放在口袋中,随身携带 时间上更碎片化。

交互方式
触摸屏幕,点击,拖拽。
触摸屏幕,点击,拖拽。

手持方式
一般双手握持,可双手操作 另外借助膝盖,也叫laptop。 左手握持,右手操作较多
单手操作的情况较多。 可以说就是在手掌中的。

操作时间
较长,半小时以上
操作时间短,大多在3分钟以下, 操作频率高。

显示方向
大多兼顾水平和竖直方向
大多是竖直方向

信息展示层级
页面+弹出菜单的结构。 较少的全页面切换,局部信息切换 Screen + popup box
页面到页面的切换 Screen to screen,页面到另一页面的切换

内容
足够的空间展示更多的内容和功能。内容和功能的外显更多。
空间有限,一些功能,内容巧妙的隐藏, 比如内容通过下级页面来拼接。 功能放在menu中,或者情景菜单中隐藏。保持页面更多地展示内容。

-

外媒评价的10大android pad  http://www.cnbeta.com/articles/131157.htm

型号
尺寸
分辨率
物理按键数量及位置

Advent Vega
10
1024×600
1个位于宽侧正中

Archos 70
7
800×480
4个位于窄侧右

Archos 101
10
1024×600
4个位于窄侧右

Asus Eee pad
10/12
不详
不详

Dell Streak
5
800×480
3个位于窄侧右

Elonex eTouch
10
1024×600
1个位于窄侧右

Notion Ink Adam
10
1024×600
不明

Samsung Galaxy Tab
7
1024×600
4个位于窄侧下

Toshiba Folio 100
10
1024×600
4个位于窄侧右

Viewsonic Viewpad 10
10
1024×600
3个位于窄侧右

另外众多国内品牌下的Android Pad 都在7寸到8寸,分辨率在800×480占绝大多数。物理按键各有不同。

-

目前Android Pad的特征如下:

目前多数Android Pad 都运行的是用于手机的系统版本。

尺寸
基本分为3个尺寸,5寸(dell streak),7寸(多),10寸(多)。

屏幕分辨率
800×480和1024×600的居多。

屏幕比例
16:10,17:10,都不是传统的4:3的比例,这和iPad比较大的区别。

物理按键数量和位置

类似iPad的单主屏键,位于窄侧的正中
Android Pad的多按钮,位于窄侧靠上位置
aigo Pad e700按钮分别放置在窄的两侧。

总的趋势:数量有1个的,3个的,4个的,但绝大多数都放置在屏幕窄的一侧,很少把物理按键分散放置的。

屏幕默认方向
水平方向的居多,仅三星为代表的7寸屏默认竖直方向。

-

Android Pad的布局方案

注意:以下的布局方案基于Android 1.5到2.2系统下,不一定适于Android3.0

Design . . . → Read More: Android那些事儿(三)安卓Pad交互特性

可用性评价10个准则

1. 简洁美观。(图形元素和信息表达要简明扼要、排列得当)
    2. 一致性与规范化。(图形元素和信息表达要前后一致,减少误解与困惑)
    3. 虚拟与现实相匹配。(一切视觉和互动设计均应建立在用户现有知识储备、思维习惯和认知模式的基础上,使其易于理解和接受)
    4. 系统状态可视。(在系统与用户之间建立良好的反馈机制,使用户对“我从哪里来”“我在做什么”“操作进行到了哪一步”“接下来该干什么”等信息了然于胸。)
    5. 减轻记忆负担。(适度的信息冗余是必要的,可增强各模块间的联系性。在任何需要的时候提供相关信息给用户)
    6. 用户控制权与自由度。(用户时刻有反悔的机会,不可感觉被绑架)
    7. 预防误操作。(比提醒你前有砖块注意绕行更好的是在你到达之前就把砖搬走。预测可能产生的误操作,从设计上尽量避免之,消错于无形)
    8. 解决误操作。(容错性。错误发生时,要让用户知道并给出逃生路线,帮助用户回到安全地带)
    . . . → Read More: 可用性评价10个准则

实现模型和心智模型——《软件观念革莫道不消魂命—交互设计精髓》

计算机界经常使用计算机文化(computer literacy)这个术语。权威人士经常谈到一些人具备这种文化,而一些人没有。然而所谓的计算机文化只不过是一种委婉的说法——让用户极力去理解计算机奇怪的逻辑,而不是让基于软件的产品灵活地适应用户的思考方式。

计算机文化是强势群体所下的定义,下这个定义也许初衷是好的,但是它不可避免地让人(特别是初学者)在学习计算机时受到了这种“文化”的束缚。也就是说,计算机还没有发展到能摆脱人类统治进而统治人类的地步,而我们人类自己居然已经在拿一些貌似高深的东西自我束缚了。也许计算机所代表的机器真的有统治人类的一天,就像电影《Matrix》所语言地那样,那么到时候我不得不说,机器统治人类其实是人类统治人类的结果。Alan Cooper让我第一次在看到“计算机文化”这个词时有了批判的视角。
. . . → Read More: 实现模型和心智模型——《软件观念革莫道不消魂命—交互设计精髓》

@Starbucks.公园前

    公元2011年3月第一天早,公园前,亲爱的小刚GG分了任务让我自己去玩,and then来到了传说中的Starbucks。虽然我喝不了咖啡,但我开始喜欢这里了。柔软沙发、轻柔音乐、温和灯光、&最最重要的是免费插座和无线上网!啦啦啦,心情好极了!
    来张PP,工作日的早上,人不多,对面两位MM和GG,喝着咖啡,好像是老师,谈论着工作、学生的事——挺向往这种状态的,

   第一次用这里的WIFI,手机申请,收到帐号密码,挺方便的。当我按短信里的“96566”登录了两次都提示错误,再仔细看看,原来是“u96566”,标识不明引起的误会,是defy的问题吗?designers请多考虑不同情况下的用户体验。

    以我的聪明才智,终于登录成功了。欢迎界面的体验也不错,真让人不好意思在这里上霸王网。So 要了杯hot . . . → Read More: @Starbucks.公园前

UE角色与设计层面的关系

   那天,Aspire-tech的MM问我怎么理解用研、交互与视觉的分工和协作。当时因为太紧张,血涌上大脑什么思维都没有,在回去的车上静下来后突然想到可以从用户体验五要素来入手。五要素(五层面)分别是:
   表现层(surface):视觉设计,最终产品的外观。
   框架层(skeleton):界面设计、导航设计和信息设计。
   结构层(structure):交互设计和信息架构。
   范围层(scope):指功能规格和内容需求。
   战略层(strategy):指用户需求和网站目标。

   这五个层面中,从下往上由抽象到具体,底层决定上层的选择,而较高层有时也会影响较低层的决策。
   战略层和范围层主要由用研来参与和决定,因为他们才是直接与用户接触作调研的。
   当用研完成需求后,把需求说明提交到交互进行结构屋和框架层的设计,这个过程交互是主角,用例提供参考和数据支持。
   . . . → Read More: UE角色与设计层面的关系

用户研究的常用方法的选择和使用【一】

在为用户研究选择研究方法时,我们经常会有这样的疑问,使用哪一(几种)种研究方法是最合适的?

那么如何来确定研究方法呢,一般来说是从这几个问题来看:

l 研究目标和用户目标,这个是最主要的

l 其次是数据整理和分析方法,

l 预算和研究时间

. . . → Read More: 用户研究的常用方法的选择和使用【一】