现代软件工程讲义 6 用户调研

[现代软件工程讲义 的一部分]

软件开发的过程, 就是 “用户最需要的东西” 在下面这一链条中传送,转换,实现,扭曲或丢失的过程。

用户最需要的 >  

    用户表达出来的 >

        软件团队能理解的 (老板/PM) + 团队的商业目标 >

            软件团队成员具体表达出来的 (PM 写 spec) >

                在各种约束条件下, 具体执行表达出来的 (dev 写代码) >

                    验证通过的 (Test) >

                        通过各种渠道告诉目标用户 (发布/推广) >

                            用户终于能用上了,但是他们不满意 >

软件业界有一个非常著名的秋千图表达了类似的情形:

image ( 这就是用户要的, 用户表达出来了么, 软件团队理解了么, 执行了么, 用户满意么? )

                image ( 也许公司擅长三层架构,  因此秋千也要三层的 )

                                image ( PM 写出了 spec )

                                                image  ( 开发人员根据 spec 写出了功能 )

                                                                image  ( 测试人员最后同意发布的软件 )

和用户想要的一样么? 不一样.  用户满意吗?  不满意,  那用户到底想要啥?  我们调查一下, 然后开始新的循环...

 

 

我们在开发软件的时候,总想知道用户到底想的是什么,  对各种功能的偏好是什么, 掌握这些信息,我们就可以按部就班地去满足用户的需求。 大家可以靠直觉,靠老板的命令,靠互联网上传来的各种信息,靠拷贝其它软件, 靠其它不靠谱的手段…  当然我们也可以靠一些经过实践证明行之有效的办法。 下面是几种用户调研 (User Study) 的方法:

1) 焦点小组 (Focus Group)

        image

    找到一群目标用户的代表来讨论用户想要什么, 用户对软件的评价等等。 焦点小组是很常用的调研方法,它也有一些弱点:

  •     一群人在一起,往往大家会出于讨好其他人的心理来发表意见,避免不一致的意见或冲突。
  •     讨论者对于他们不熟悉的事物 (例如颠覆式的创新) 不能表达有价值的想法 - 在汽车出现之前, 我们找一帮马车夫来畅想 “未来的交通工具”, 他们未必会贡献很有价值的想法。
  •     讨论的人群容易受到主持人有意或无意的影响。
  •     研究者往往从不同意见中挑选最符合自己想法的哪些,然后号称这就是大家的共识。

2) 深入面谈 (in-depth interview)

        image

    通过详细的面谈,广泛而深入地了解用户的背景,心理,需求等。这通常是一对一的采访。这个方法好是好, 就是费人费时。

3) 卡片分类 (Card Sorting)

        image

    列出所希望的软件有什么样的特点, 然后把这些特点归类。在微软亚洲研究院的时候,我们也曾做过“卡片排序” - 几个不同背景的人聚在一起, 想象新软件有什么特点, 能解决自己的什么痛苦, 或者有什么好玩的地方, 把这些特点都写在小卡片上, 一个主持人再把不同的卡片归类, 讨论, 进一步理清各种愿望的关系。 从某种意义上来说, 这些卡片就是量化了的焦点小组的意见,这些卡片经过归类/排序/定义等过程, 可以帮助我们更好地定义一个软件的信息架构,用户的工作流程,软件菜单结构,网站的浏览路径,各种内容的层次关系等。

4) 用户调查问卷 (User Survey)

        image

    给用户事先规定好的问题, 让用户回答。 我们在大街上碰到过不少,有时候你在浏览某个网站的时候,一个弹窗打断了你的思路,它请你回答几个问题。我们用户在回答这类问题的时候,是否心不在焉,乱点一气? 

    用户调查问卷看似容易, 其实大有门道,下面是一些常见问题:

    a) 问题定义不准确, 例如: 你用哪一个搜索引擎?  用户可能提供多个合理的答案: 最近使用的; 最喜欢的但是未必最经常使用的 (例如最喜欢的搜索引擎由于某种原因访问不了); 为某一个领域而使用的 (例如查图像或英语单词); 最近一周/一月/一年使用电搜索引擎也会有不同。

定义不准确的问题会让用户困惑,  我们也许能收集到很多答案,但仍然无法准确了解用户的想法。

    b) 使用了含糊的形容词、副词,来述时间、数量、频率、价格等: 最近、有时、经常、偶尔、很少、很多、相当多、很贵、很便宜。这些词语对不同用户和在不同的语境中有不同的意义。

    c) 让用户花额外的努力来回答问题:  请问你全家平均每人每年下载多少手机应用软件?  

    d) 问题带有引导性的倾向:  用户普遍认为, 搜索引擎A 收录了许多侵犯版权的资料而拒绝承认错误, 搜索引擎B 则赢得用户信任, 你会选择A 或B?

    e) 问题涉及用户隐私, 用户所在公司的情况等。

    用户调查问卷的问题可以有下面的这些方式,  大家可以更加具体情况使用:

    a) 全开放式问题:  例如: 你对手机上的日程管理软件的期望是: ________________  

        这种问题能让用户畅所欲言,但是比较难于整理和量化。

    b) 二项选择题: 用户只用回答 是/否 即可。  这类问题便于统计处理,分析也比较容易。但用户没有进一步阐明理由的机会,难以反映意见与程度的差别,了解的情况也不够深入。

        这个类型还有一个变种, 就是在两种选择对比中只能选其中之一。

    c) 多项选择题,大家在平时的考试中碰到多次。

    d) 顺位选择题: 您选择手机背单词软件的主要考虑因素是 (按照优先级填写 1, 2, 3, … ): _ 词汇量;  _ 能记录进度; _ 能定制单词表;  _ 能和PC 同步; _ 能支持4/6级等专门词库;  _ 能支持发音。

   

5) 用户日志研究 (User Diary Study)

        image

    要求用户记录自己日常工作或生活中和所用软件相关的行为, 供以后分析。 用户可以写像日记体的文字描述,  也可以每天填表 (例如跟踪自己每天饮食种类) 。 我个人理解,这时用户调查在时间上的延长。 这要求用户有很高的自律能力, 另外, 如何保护用户的隐私也是一个问题。

6) 民族志/人种学研究 (Ethnographic Study)

        image

    这个听起来非常学术的方法其实可以解释为 - 和目标用户同吃同住同劳动。  例如,与其坐在办公室里想象如何给老年人设计手机, 不如去和老年人生活几天,从生活中得到数据和体会。  这是一个论文例子。

    人类学的用户调查听起来很高深, 其实未必 - 也许你一直生活在目标人群中, 只不过你对这些需求不够敏感罢了。 在《the social network》 这部电影中, Mark 的一个同学问他, 你知道某某女生是不是有男朋友?  Mark 沉思一会, 不理会这个同学,径直跑回宿舍,在 “thefacebook.com” 这个网站上实现 “你有朋友了么”这一功能。

    一些有想法的大学生们都在象牙塔里面指点江山, 激扬文字。  走到真实的世界中去, 你才会看到真实的需求, 下面是同学的顿悟:

http://www.cnblogs.com/meng-meng/archive/2011/11/14/2248589.html 

我平时接触的同学都是计算机专业的,我平时上的网站都geek味或hacker味十足。我几乎从来不用qq,我从来不上百度贴吧,我从来不打游戏,我不用360也不用任何杀毒软件,我不用hao123做主页。我没事看看google reader,我翻*墙上twitter和facebook,我常逛hacker news和quora,我乐于尝试国外的各种新鲜酷站,我从来没为软件或服务付过费。

原来我并不了解海量中国用户,原来真实的用户并不是我想象的那样。

以前我不理解为什么360的装机量那么大,现在我懂了:1.海量用户并不知道如何管理使用电脑,360那种傻瓜式的一键解决才是他们需要的,2.他们不想花钱,但是不会找什么“破解版”,“序列号”,“注册机”

以前我不理解为什么hao123这么“弱智”的网站能有这么大影响,现在我懂了,我爸爸可以通过它非常轻松的到新浪上看新闻,但如果你让他直接输入网址的话,他肯定会输入“xinlang.com”

以前我不理解为什么有那么多人愿意为了qq上的虚拟形象付钱,现在我懂了,我表姐她们只要上网肯定挂qq,而且女孩都爱漂亮爱虚荣,她们不在乎花点钱打扮打扮自己。

我看过一些非计算机系的同学的电脑,大多凌乱不堪,文件随处乱放,软件都是默认装在了C盘,安装的过程中还被捆绑了一堆流氓软件,各种软件都是开机启动,没有3分钟根本开不开机……

 

     这是2013年一篇对中国三线城市数字生活的描述 ( 作者潘越飞), 算不算人类学调查的一种呢?

7) 软件可用性研究 (Usability Study)

        image

    研究用户在使用软件的时候有哪些困难, 并如何改进软件,让软件更好用。 常用的方法是请用户来 微软有专门的 User Study Studio, 经常招募目标用户来做试验,我也曾实地参观过用户使用新版本的Outlook (我们在单向玻璃窗后面)。 更多的团队成员可以在事后看这些用户调研的录像。 调查人员通常让被试者完成一些任务,例如:

在Excel 中, 你想把一个表格中的行和列互换,你怎么能做到呢?

过年了你要想不少客户都发送内容相似的贺年邮件, 但是客户的名称和地址都各不相同, 你怎么用Word/Outlook 完成这个任务?

在Excel 软件中, 你在看一些大的表格的时候,要来回移动,但是这样表格的标题栏就看不到了,怎么样锁定标题栏呢?

我印象很深的一点是 - 用户在我们长长的菜单中幽幽暗暗反反复复中寻找某个功能,我们在玻璃窗后面替他着急… 我们的界面离 “平平淡淡从从容容才是真” 差太远了。

8) 眼动跟踪研究 (Eye Tracking)

        image

    你的软件展现了很多信息, 也有很多交互的控制, 怎样才能让用户容易找到看到你想让他们看到的信息,找到他们想使用的功能?  用户看网页上的众多内容通常是什么样的规律?  一些研究发现了 F 模式.

        image 用户通常浏览通栏标题, 然后目光沿着左侧下行, 再平行浏览下面的子标题。如果你有重要内容希望用户知道, 应该放在什么地方呢?

   

9) 纸上模型调研 (Paper Prototype)

        image

    如果要把软件做好了, 再去找用户做调查, 未免太费时,并且修改的成本很高。能否快速地取得用户的反馈?  这时不妨拿一些纸张模型, 让用户去使用, 得到反馈。 这种方法我没有做过,但是听上去不错。这也是用户参与式的设计 (Participatory Design)  的一个例子。另外,模型不一定要用纸, 用小木头块也行 - Palm Pilot 的创始人Jeff Hawkins 就用一块小木板做得和设计中的实物一样,他把它放在上衣口袋中, 时不时拿出来写写画画... 最后发布的 Palm Pilot 及其系列产品开创了 PDA 这样一个新行业。

 

10) A/B 测试 (A/B Testing)

        image

如果你已经有一些用户在使用你的产品,你想对用户界面做一些改进,但是又不知道到底有多少用户会喜欢新的界面,怎么办? 

例如你的网站是两列的布局,但是你很想试一下三列的布局方式, 就像题图一样。

例如你想用弹窗来促使用户对某个重要信息的作出反应, 是把弹窗放在右下角呢,还是放在屏幕中央?

 

这时候,你是找新的用户去做一对一的深入调研,或者跑到大街上去发调查问卷?  为什么不能让你现有的用户告诉你哪一种设计比较好呢? 这时候不妨考虑A/B Test.

A/B 测试看起来很简单:

    1) 决定试验哪两种不同的UI, 以及衡量标准, 数据收集流程, 试验运行时间, 人数

    2) 在技术上实现 A/B 测试 (通常在 5% – 10% 的用户上运行试验)

    3) 收集数据, 分析数据, 形成结论

 

Wired 杂志写了一篇关于A/B 测试的文章 – 用奥巴马竞选作为例子, 很值得一看。

很多互联网公司都在用A/B 测试, 研究员们也在用这个方法做研究,  你去访问它们的网站的时候, 有可能就是给它们做了试验, 看 Amazon 和 Microsoft 的例子 (论文).

 

A/B 测试当然也有弱点: 

    a) 运行成本随着时间的推移而变大,  增加网站运维的复杂度,对网站数据收集和数据挖掘的能力也是一个考验。

    b) 用户的情绪反映你看不到,你只看到交互的行为, 但是交互的行为不是用户的全部反馈。 (例如你看到用户点击屏幕中央的广告更多, 但是也许有更多的用户咒骂屏幕中央的广告)

    c) 要分清各种因素的关系,  例如,网站 “改版三列布局” 和 “用户在网站停留时间” 之间是下面的哪一种关系?

            - 不相关, 当前收集到的数据只是随机的

            - 相关, 但不是决定因素

            - 因果关系

    d) 用网站当前的用户做实验, 万一引起巨大的反感, 用户就真的流失了。

 

态度 : 行为    定性 : 定量

下图表示了这些方法在 (态度 : 行为    定性 : 定量) 上的分野:

image

 

用户有多种

我们说了这么多用户调研,  很多人假设评价软件的就是购买软件的,就是使用软件的,但是未必。看下面的例子:

a) 你要写一个中学生学习英语的软件,你找谁去做用户调研?

    中学生 - 最终用户
    家长 - 他们是要掏钱的人,他们不会每天都用软件,有些人都不太会英语,但是他们也有需求
    学校老师 - 他们是有巨大影响力的人,他们说不定立下一道规矩,我们班级就用某某软件! 

b) 你要写一个企业管理软件, 你要找谁去做用户调研?

 

做过头了会怎样?  

我们有这么多各式各样的工具, 互联网给我们带来了这么多用户和数据, 这是好事, 也有副作用。

世界上能访问用户数据, 并根据数据做分析和改进的公司, 大概 Google 是其中翘楚, 这种 data-centric 的做法做过了头, 也有悲剧发生:

Douglas Bowman 曾经是Google 的视觉设计主管, 2009 年的一天, 他受不了了:

Yes, it's true that a team at Google couldn't decide between two blues, so they're testing 41 shades between each blue to see which one performs better.        I had a recent debate over whether a border should be 3, 4, or 5 pixels wide, and was asked to prove my case. I can't operate in an environment like that. I've grown tired of debating such   minuscule design decisions...

当你的公司要你用数据来证明 41 种蓝色到底哪一种更好, 或者为一个边栏宽度是3, 4, 或5 而争执不休, 纷纷表示要拿数据来证明的时候, 你怎么办?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程讲义 0 微博上的软件工程

[现代软件工程讲义] 有舌尖上的美味, 也有微博上的软工。舌尖上的美味各有千秋, 而微博上对软工的抱怨都是相似的。 下面是我在新浪微博收集到大学生对软件工程教学的反馈: 师生关系(不限于软件工程) 教材 上课 & 老师 实践 & 作业 考试 考完…

现代程序设计 作业 2

我们上节课讲了 返回整数数组中最大子数组的和 这个问题。 我们第二次作业在这个基础上扩展。 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数, 见 MSDN 的定义. 当然, 行…

现代程序设计 作业 3

这个作业是采取结对编程的方式完成。 在上一个作业中, 我们尝试了各种命令行的处理,以及各种数组的处理。 现在, 我们要把 现代程序设计 作业 2 的各个结果转换成图形界面显示。这个问题看起来很难, 实际上大部分难的工作都在上一个作业完成了 (数组计…

现代程序设计 作业4

英语国家的小孩们经常玩 Word Search 的游戏, 就是在一个填满字母的矩阵中把单词找出来。 这是一个简单的例子: (来自 wikipedia) 这是一个比较复杂的例子: 这是答案: 美国的商店里还有不少 word search books 卖, 两三块钱一本。 让我们把这个有趣的…

现代程序设计 作业6 - 简单而有意义的题目

这是这个课件的一部分: 现代程序设计 (课程设计中, 征求意见稿) 好多同学们都说题目难,这回我们来一个简单而很有意义的。 :) 写代码爽还是读代码爽? 往一堆乱麻中再加上一些线索,似乎比较容易;然而从…

现代程序设计 作业7 - 更加简单的题目

在网上,当用户发现一个新东西 (海洋里捞出来的新物种,奇怪颜色的飞鸟,某种新的植物等), 大家会问下面的问题: 能吃么 好吃么 怎么吃 这三个振聋发聩的问题被吃货们简称为能好怎, 大家可以打开链接看看&…

现代软件工程 第三章 【软件工程师的成长】练习与讨论

1. 选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提。我们很多人是边看Asp.net的书, 边开发Asp.ne…

现代软件工程 课件 软件工程师能力自我评价表

这是《构建之法》和软件工程教学的一部分,用于学生/工程师自我评价。 软件工程师如何评价自己的能力? 有人写Java,有人用C,还有人用1980年代就出现的 Object-C, 有人写前端,有人写后端,有人偏于行业应用&a…

现代软件工程 第四章 【结对编程】练习与讨论

4.7.0 结对编程的练习题 地铁导航和遍历 4.7.1 结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会。例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前&am…

现代软件工程 第八章 【需求分析】练习与讨论

1 扩展阅读下面两篇文章也说明了软件估计的难度: Steve McConnell 软件估计的 10 种罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/201…

现代软件工程 第九章 【项目经理】练习与讨论

9.5.1 PM们的故事 讲了这么多条条框框,我们还是来讲几个故事吧。 A)是不是所有的好功能都是由PM主导,一步一步根据用户需求,按照用户场景设计,然后进行可用性测试等等步骤之后得来的呢? 功能本天成,妙手偶…

现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说,我们敏捷的团队,就喜欢直接的面对面的交流&#xff0…

现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多? 用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情…

现代软件工程 第十六章 【IT 行业的创新】练习与讨论

16.6.0 Xerox Parc 的成功创新和推向市场的失败 http://research.microsoft.com/en-us/um/people/blampson/Slides/AltoAtPARCIn1970s_files/frame.htm http://research.microsoft.com/en-us/um/people/blampson/38-AltoSoftware/WebPage.html http://research.microsoft.com/…

《梦断代码》读后感 - 驱动,责任,交流,远虑

这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了。 (原文写于2008年12月) 几个星期前,我给《现代软件工程》课的每一个团队都发了一本 《Dreaming In Code》的中文版 《梦断代码》,要求写读后感。这本书讲了这样的…

现代软件工程讲义 7 分析和设计方法

(这一节在第一版的 《构建之法》中没有, 是《构建之法》电子书(多看版), 和纸版书第二版中新增加的内容,纸版书第二版预计2015年6月出版) 11.1 分析和设计方法 我们写软件就是要解决用户的需求,我们需要表达和传递下面这些…

现代软件工程讲义 源代码管理

【现代软件工程课件】 源代码管理 -- 以实践促进学习 移山软件学院的学生果冻问老师: 为啥需要源代码管理? 我自己写代码多爽,别人要,就用QQ 传过去好了。 老师问:原始人怎么建房子? 果冻:或者找一个洞&…

现代软件工程讲义 个人项目和结对项目练习 地铁

很多老师反映教软件工程和程序设计的时候没有合适的题目,《构建之法》提供了下面的题目,都是从简单的解题思路入手,逐步增量改进。学生们可以复习基本的编程技能,然后逐步加入模块化,文件处理,单元测试&…

最新软件工程总结,项目模板,软工作业下载

(改了标题吸引目标用户) 老师教课,学生上课,首先要讲明师生关系。 其次,就是要说明这门课的底线是什么。 我们假设所有人写作业都独立思考,认真实践,不断改进,勇于创新... 这个假设通常是不全面的&#xf…

构建之法 第三版 17 章 部分草稿

构建之法 17 章  人&#xff0c;绩效和职业道德 (<构建之法> 第三版草稿) 2016/12/23 17.1 领导力 在软件开发过程中&#xff0c;有很多平等合作&#xff0c;但是也有上下之分的领导/被领导关系&#xff0c;即使都是平级的员工之间&#xff0c;也有老师傅/新人&#xf…