diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A2-\347\245\236\347\273\217\347\275\221\347\273\234\345\237\272\346\234\254\345\216\237\347\220\206\347\256\200\346\230\216\346\225\231\347\250\213/Step4 - NonLinearRegression/08.0-\346\277\200\346\264\273\345\207\275\346\225\260.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A2-\347\245\236\347\273\217\347\275\221\347\273\234\345\237\272\346\234\254\345\216\237\347\220\206\347\256\200\346\230\216\346\225\231\347\250\213/Step4 - NonLinearRegression/08.0-\346\277\200\346\264\273\345\207\275\346\225\260.md" index 11ba6fd66..4e71ac628 100644 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A2-\347\245\236\347\273\217\347\275\221\347\273\234\345\237\272\346\234\254\345\216\237\347\220\206\347\256\200\346\230\216\346\225\231\347\250\213/Step4 - NonLinearRegression/08.0-\346\277\200\346\264\273\345\207\275\346\225\260.md" +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A2-\347\245\236\347\273\217\347\275\221\347\273\234\345\237\272\346\234\254\345\216\237\347\220\206\347\256\200\346\230\216\346\225\231\347\250\213/Step4 - NonLinearRegression/08.0-\346\277\200\346\264\273\345\207\275\346\225\260.md" @@ -59,6 +59,6 @@ $$a = \sigma(z) \tag{2}$$ 简言之: 1. 神经网络最后一层不需要激活函数 -2. 激活函数只用于连接前后两层神经网络 +2. 激活函数只用于连接相邻的两层神经网络 在后面的章节中,当不需要指定具体的激活函数形式时,会使用 $\sigma()$ 符号来代表激活函数运算。 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.0 Introduction.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.0 Introduction.md" new file mode 100644 index 000000000..a2261cf60 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.0 Introduction.md" @@ -0,0 +1,11 @@ + + +需求挖掘 +需求引导 +需求来源 +可行性分析 +需求分析 +Use Case +数据流图 + +需求分析:卡片分类,小组讨论 \ No newline at end of file diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.1 \346\234\250\345\244\264\344\270\216MSN\347\232\204\346\225\205\344\272\213.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.1 \346\234\250\345\244\264\344\270\216MSN\347\232\204\346\225\205\344\272\213.md" new file mode 100644 index 000000000..eed855a16 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.1 \346\234\250\345\244\264\344\270\216MSN\347\232\204\346\225\205\344\272\213.md" @@ -0,0 +1,102 @@ +# 木头与 MSN 的故事 + +【slide】 + +其实木头与 MSN 的陨落没有什么直接关系,只是恰巧亲眼目睹而已。下面的这些真实历史事件$^{[1]}$,可以让大家清醒地看到,无论软件公司或软件产品有多么的牛,不符合用户需求的话,仍然会失败,即使它曾经成功过。以此为鉴,让读者充分认识软件产品的需求挖掘与分析。 + +## 上线 + +二十世纪的最后几年发生了很多事,其中移动通信和互联网的崛起,让整个世界收获了第三次工业革命的硕果。 + +互联网的兴起是在1998年的前后5年内,在那之前,木头想找朋友聊天的话,只能通过电话或者寻呼: + +- 电话是指固定电话,那时移动电话还非常贵,只有大老板才能消费得起,俗称大哥大。很多电影里还能看到这样的场景:一个粗脖子男人带着小手指般粗的金项链,手里捧着一个黑色带天线的大砖头喊话。 + +- 寻呼机(Pager)是人们带在身上的一种电子设备,单向接收无线信号。有人想找木头,就给寻呼台打电话:“你好!请呼叫9048,让机主回电话到59175433”。 + +在IM(Instant Messaging,即时通信)领域,发生了几件大事: + +1. ICQ(I seek you 的谐音,我找你)是整个互联网聊天工具的鼻祖,是三个以色列人在1996年推出的一个软件,即在互联网上可以随时随地找到你。 + +2. 1998年,AOL(American Online,美国在线)收购了ICQ。1999年,AOL推出了他们收购ICQ后的第一个版本:ICQ 99a,准备让自己原本就排名全美第一的网上寻呼业务来一把“烈火烹油”。 + +3. 同年,马化腾在深圳科技园一个小厂房里,模仿 ICQ 推出了一款中文的即时通讯工具,取名 OICQ(Opening ICQ,开放的ICQ),后来由于和 ICQ 有同名嫌疑,与AOL的官司败诉,改名为 QQ。 + +4. 同年7月日,微软公司(Microsoft)正式上线了 MSN Messenger,在它服务开通的6天内,就获得了70万注册用户。 + +5. 木头开始使用 MSN,并对微软产生了强烈的好奇心。 + +## 增长 + +MSN 与 QQ 的用户增长的对比: + +- 到了2000年7月17日的时候,微软方面宣布,MSN已经拥有了2.1亿独立用户,成为了全世界排名第一的网站,而借这股东风,2001年3月16日,MSN Messenger 在全世界范围内拥有了3000万在线用户。 + +- QQ上线后,花了整整9个月的时间,到1999年11月,注册用户数才达到6万。 + +MSN 与 QQ 的用户构成对比: + +- 在当时拥有 qq.com 邮箱,会在招聘会上或面试中(尤其是外企或500强企业),被面试官认为没有眼界。 + +- 而如果你留的是“xxx@hotmail.com”,至少证明了你是追随互联网潮流的。木头就是那时申请的hotmail.com邮箱,而且一直使用到现在。 + +- 在大学里用 QQ 的大学生,毕业后会自然而然地申请一个 MSN 账号,以便和公司里的同事交流,与商业合作伙伴通信。 + +- 与很多一线大城市的写字楼里的公司一样,木头所在的公司的局域网是封锁 QQ 登录端口的,但却允许使用 MSN Messenger。在很多人眼里看来,QQ 是个聊天玩具,而 MSN 是正经用来工作或商务社交的。 + + +## 停滞 + +MSN 在经过高速增长后,很快就陷入了停滞。这种“停滞”并不是体现在用户增长上的,而是在需求持续挖掘方面。它对越来越多的细节问题视而不见,拒绝作出改变。这是最可怕,也是最致命的“停滞”。 + +用户对即时通讯的需求也开始渐渐提高了,可以轻而易举地列出当时这款软件的几大缺点: + +- 传输文件非常不方便,大一点的文件在传输过程中很容易发生中断。以至于白领之间经常会出现一个滑稽的场景:用MSN聊天,让对方留下QQ号来传文件。 + +- “群”的功能非常弱,基本就是抓一些人进来聊天而已。而QQ在“建群”这件事上下了非常深的功夫,服务也做得非常好,成了黏住用户的一大法宝。 + +- 没有离线留言功能,也就是必须“即时通信”,不能“存储转发”。 + +- 每一个人的对话只能显示在下面的状态栏,无法像 QQ 那样收缩进屏幕右下角的一个闪烁图标。 + +- 没有脱机状态,没有隐身功能。 + +类似的细节其实还是有非常多,MSN Messenger在给人“逼格”的同时,也给人在用户体验上一种高冷的感觉——你要适应我,不是我适应你。 + +## 傲慢 + +微软的名头使整个MSN的业务迅猛发展,MSN 也自带“富二代”光环,让商务人士和白领产生一种天然的亲近感。但是,对于海外市场的需求,位于总部的团队是根本不能理解的,是出于无知吗?肯定不是!那只能归结为傲慢。 + +MSN Messenger身上各种毛病,也都找到了根源: + +- 传输文件太慢且容易中断?那是因为微软长期不肯把MSN的服务器放到中国。甚至有一次因为海底光缆断裂,造成了中国MSN用户的集体断网,使得用户体验大打折扣。 + +- 缺少各种看似简单的细节功能?其实MSN中国的内部对很多细节改进打过各种报告,但一系列的邮件经过抄送和转发,层层审批,周游全球,最终要么被拒绝,要么等批下来时,黄花菜都凉了。 + +- 始终给人一种不肯改进的印象?那是MSN在中国的市场长期被忽视。举个很简单的例子:MSN Messenger的更新是在中国白领白天的工作时间进行的,为什么?因为那是欧美用户的非工作时间。那能分区域更新吗?不行,必须全球同步更新。 + +## 沉沦 + +2007年末,MSN Messenger 在中国的各项数据开始掉头向下。除了MSN本身臃肿和效率低下的决策体系之外,外部的竞争环境也开始发生了巨大的变化: + +- 从国际方面来看,Google、Facebook、Twitter等巨头迅速崛起,“同步聊天”的人群渐渐被分流到了“异步聊天”乃至互联网社区; + +- 从国内来看,当年那个弱小的QQ已经变成了“巨无霸”,成为了全世界屈指可数的即时通讯工具和社区; + +- 同时,开心网、人人网以及之后的新浪微博快速崛起,又分流了大批网民。 + +在国际和国内各种力量的夹击之下,原本就已经反应迟钝,船大难调头的 MSN 不可避免地开始沉沦。 + +到了2012年, MSN Messenger在中国的用户数跌到了4500万,而与之相比的是,QQ的用户数超过了6亿。 + +## 隐退 + +2013年3月15日,微软正式宣布:关闭全球范围内MSN,除了中国。这个时候,中国市场反而成了MSN仅剩的独苗。 + +但是,“独苗”也不能存活多久。2014年8月28日,每一个中国 MSN Messenger 的用户收到了来自微软的一封邮件:中国的 MSN Messenger 将于 2014 年 10 月 31 日正式关闭,所有人可以转向早先微软收购的 Skype。 + +木头当时还郁闷了一阵,因为不用 QQ,MSN 又关闭了,没法通信了。用了一阵Skype,没有熟人,但是在微软内部通信还是可以的。所以就变成了工作时用Skype,下班后用微信。 + +### 参考资料 + +- [1] 科技怪人:《曾经有一个聊天工具叫MSN》 https://mini.eastday.com/a/190821074638925-8.html diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.2 \351\234\200\346\261\202\350\220\275\345\267\256\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.2 \351\234\200\346\261\202\350\220\275\345\267\256\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" new file mode 100644 index 000000000..e11babb34 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.2 \351\234\200\346\261\202\350\220\275\345\267\256\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" @@ -0,0 +1,89 @@ +# 需求落差的故事分析 + +## 上线 + +提纲挈领,一举击破。 + +MSN(Microsoft Service Network,微软服务网络)是个门户网站,负责互联网接入。Messenger是运行在该网站上的一个即时通信软件,所以大家都简称 MSN Messenger 为 MSN。 + +这说明 MSN Messenger 真正地把握住了用户的钢需与痛点,一夜暴富。 + +## 增长 + +超凡脱俗,清新亮丽。 + +可能让微软自己也没想到的是:在3000万用户中,有相当一部分来自他们并未正式开展 MSN 业务的中国大陆。因为MSN Messenger的成绩摆在那里:2005年,在还没正式进入中国且没做任何宣传的情况下,MSN Messenger 已经在2000万中国高端商务人士中拿到了53%的市场占有率。 + +在当时的中国,MSN Messenger 有自己非常清晰的标签:“小孩才用QQ,大人们都用MSN。” 而这个“大人”,专指白骨精(白领人士,骨干力量,职场精英)。这就说明 MSN 的产品定位非常明确,需求把握得恰到好处: + +- MSN 功能简单,界面简洁漂亮,没有 QQ 一些虚头八脑的无用功能,也就是说只做有用的功能; +- MSN 的蓝绿小人 LOGO 是水晶图标的前身,比小企鹅漂亮得多; +- MSN 接收信息时的“登登”声听上去也比 QQ “滴滴”声音要悦耳得多,木头后来玩起了音乐才知道因为那是“和弦”。 + +因为当时外企刚刚进入中国没多久,待遇很好,所以在很多风格上处于引领的地位: +- 外企需要英文界面的通信软件,MSN 提供了,而 QQ 作为国产软件是不可信的; +- 外企需要欧美的工作习惯,微软本身作为外企,开发出的软件自然具备。 + +## 停滞 + +生于忧患,死于安乐。 + +随着用户的增长以及竞争对手的进步,MSN 的一些功能已经过了“蜜月期”,而一些缺点及其背后的原因如下: + +- 传输文件非常不方便:这应该是网络在国外比较稳定的原因,所以老外不认为这是个问题。 + +- “群”的功能非常弱:老外就是把这款软件定位在个人通信上,另外,群组管理和通信非常耗费资源。 + +- 没有离线留言功能:老外可能认为:即时通信就是上班时用的,不在线时就不要找我。 + +- 每一个人的对话只能显示在下面的状态栏:这应该是老外对 Windows 的使用方式理解不同,很可能 Windows Team 的人说:我们不建议那样做。类似这样的所谓“Guideline”在微软有很多例子。 + +- 没有脱机状态和隐身功能:这可能是中外文化的不同,中国人有时候不想被别人打搅,即使在上班时间。 + +这很大程度上取决于产品经理或团队对软件产品定位的理解。团队只看到了海量用户的活跃,没有充分地进一步获得用户反馈,巩固胜利成果。 + +## 傲慢 + +成也萧何,败也萧何。 + +微软的这棵树实在太大了,它根本没精力,也觉得没必要去特别照顾 MSN 这棵小树杈。对于微软而言,Windows 和 Office 才是最大的根基,而其他的小树杈,都必须服从根基的整体发展战略。木头不得不随大流儿地承认,鲍尔默时代的战略是有问题。 + +对于微软来说,MSN Messenger只是他们家诸多业务中几乎不产生现金流的一块小业务,但对于腾讯来说,QQ 几乎就是这个公司的全部家当。所以,在提高用户体验这方面: + +- 腾讯愿意锱铢必较,有求必应,不断优化各种体验,增加各种用户呼吁的功能,因为这关系到他们这家公司的生死。 + +- 而 MSN 则是微软诸多业务中的一块,所以也没多少精力改变高冷的形象,到后面甚至给用户这样一种感觉:我就是这个样子,要用就用,不用拉到! + +## 沉沦 + +逆水行舟,不进则退。 + +在这期间,MSN Messenger有过一次绝佳的翻身机会: + +奇虎360与腾讯开始进行一场奇怪却又激烈异常的争斗。在这场前后持续四年、被网民称为“3Q大战”的互联网界著名大争斗中,不少网民长久以来对腾讯公司一些行为的不满被激发了出来,网上当时出现了不少“不用QQ,用回MSN”的号召。 + +有相当一部分用户卸载了QQ,用回了MSN Messenger了,但除了熟人关系链的缺失外,他们很快发现,MSN Messenger 种种功能上的落后与缺失,已经让他们无法习惯了。 + +就在一些诸如新浪这样的公司都在趁机推介自己的即时通讯工具的时候,MSN却颇为君子的做“壁上观”,没有进行任何行动。 + +以 MSN 在中国市场的反应速度,随之他们又很自然地失去了第一批转身移动互联网的机会,回想起来,木头依然感到非常后怕: + +- 因为后来微软为了返身跻回互联网,斥巨资开发必应系统,侥幸成功了,否则将会一蹶不振。木头还参与了必应的开发,虽然贡献的代码不多; + +- 为了移动领域,斥巨资购买诺基亚,不幸失败了,导致了后来的 Windows Mobile 战略失败,木头的青春也埋葬在里面。 + +## 隐退 + +飞盾鸣高,退思补过。 + +现在我们可以用上帝视角来看看 MSN 陨落的故事全貌了。所有的成功都不是偶然的,所有的失败也一样。 + +MSN 的崛起,是缘于当时国内对外企潮流的跟随。但是国内互联网的发展速度快于国外,新的需求不断涌现,国内的竞争者为了生存,不断地满足这些新需求,而 MSN 却视而不见,不持续跟随用户的需求。 + +以微信为例,作为一个月活已经超过10亿的即时通讯工具,微信还在努力地进行变化,时不常地推出一些新功能,为了抗衡抖音而发布的视频号功能, + +在这个充满变化的时代,唯变不变。 + +### 参考资料 + +- [1] 科技怪人:《曾经有一个聊天工具叫MSN》 https://mini.eastday.com/a/190821074638925-8.html diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.3 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\350\260\203\347\240\224\347\232\204\346\225\205\344\272\213.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.3 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\350\260\203\347\240\224\347\232\204\346\225\205\344\272\213.md" new file mode 100644 index 000000000..944a785a5 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.3 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\350\260\203\347\240\224\347\232\204\346\225\205\344\272\213.md" @@ -0,0 +1,139 @@ +# 木头与需求调研的故事 + +需求调研有很多种方法,常用的有: + +- 观察法 + + 现场从旁观察客户工作情况。 + +- 体验法 + + 现场参与客户的工作流程。 + + 缺点:很多工作是无法亲自体验的,或者体验的成本特别高。 + +- 访谈法 + + 与客户进行谈话,了解需求。 + +- 问卷调查法 + + 事先设计一系列问题,通过纸或电子表格方式,收集客户对问题的答案。 + +- A/B 测试法 + + 自己设想两种解决方案,实现后部署上线,让部分客户(10%左右)去使用。通常情况下,一个客户只会看到一种解决方案,并不知道另外一种解决方案的存在。通过其它一些收集数据的手段,来判断那种解决方案更好,比如页面停留时间、跳转率等等。 + + 缺点:需要事先做技术实现,成本高、周期长。 + +有一些书上提到的小组讨论法、单据报表分析法、卡片分类法等,不应该算作需求调研范畴,而是需求分析范畴。我们后面会讲到。 + +下面木头的故事中描述了观察法、访谈法、问卷调查法三种方法。 + +## 观察法 + +木头每天坐城铁上下班,城铁上的乘客只有三种状态: + +1. 看手机; +2. 闭目养神(可能是在听音乐,木头自己就是这样); +3. 熟人聊天。 + +木头好奇第1类人都在手机上做什么事情。经过一段时间的观察,得到了列表如下(样本数从多到少): + +|排名|使用软件|百分比| +|--|--|--| +|1|微信、QQ 聊天|30%| +|2|看新闻、刷微博|25%| +|3|看小说、视频|20%| +|4|打游戏斗地主|15%| +|5|刷淘宝买衣服|7%| +|6|其它|3%| + +其它是一些个别人在背单词、看电子书、看股票大盘的,但是数量极少。 + +虽然这个例子没有联系到软件开发的需求调研,但是也与手机软件相关的,目的是想说明这种观察是一种基本能力。做这类观察时,我们虽然不会顾虑到有量子观察效应的波函数坍塌,但是也要注意不要打扰到被观察者的行为,不是因为礼貌或者隐私问题,而是因为准确性的问题。 + +为了解决这个问题,设计界特意制作了一个观察室,里外两间屋子,中间有个大玻璃,单向透光,外侧的设计师能看到里侧的志愿者的行为(主要是鼠标、键盘操作等),当然是要提前让志愿者知情的。 + +下面是木头亲身体验的另外一个“观察”法的例子。 + +MSRA 有很多的实习生,招聘、管理实习生是一个很重要的工作内容。木头经常看到邮件如下: + +*由于招聘管理的需要,请发送邮件至xxx@microsoft.com。* + +或者是: + +*由于评估管理的需要,请发送邮件至xxx@microsoft.com。* + +木头发现,几乎所有的关于实习生管理的邮件,都要发到同一个邮箱。开始时,木头以为 xxx@microsoft.com是一个超级牛的后台应用,直到有一天,木头发现自己发送的邮件被漏掉了(对方没有响应),才意识到这个邮箱后面有一堆人在手工处理邮件。于是木头发邮件给相关的管理者,表达了愿意帮助做一个管理软件的意愿。 + +从另一个角度看,这些电子邮件其实就是电子化的单据,只不过是通过电子邮件的方式递交而已。这种情况持续了很多年,也让木头感到很困惑,无纸化办公的概念可不是这样的。 + +这类关于“人”的管理软件其实很复杂,但是木头有过在 Microsoft Power Platform 上的开发经验,那是一个 low code(低代码)平台,只需要很少的努力就可以搭建一个像模像样的流程管理系统。 + +过了几天,木头收到了邮件回复,说是已经在半年前启动了开发计划,目前已经处于开发尾声了。木头一打听,那个负责管理系统开发的是后面的故事中提到的军儿哥。木头跑到军儿哥那里看了看,实现方式还是传统的网站式管理,没有集成 Power Platform,感觉稍微有些遗憾。 + +这个例子告诉我们,观察可以通过各种手段,不一定必须观察到行为举止,也可以间接地通过其它信息进行推理。生活工作中处处有线索,只要你用心,总能发现需求。 + +## 访谈法 + +微软在北京中关村有两座大厦,南北相望,南侧的是1号楼,北侧的是2号楼。每个楼都有12部电梯,位于大堂东西两侧,各6部。 + +出于部门安排的一些考虑,1号楼的电梯是分层配置的,1~10层乘坐东侧电梯,11~17层乘坐西侧电梯。而2号楼的电梯就是普通的配置,即可以达到任意楼层。 + +木头在2号楼工作,感觉平时乘坐电梯时有个痛点: + +中午吃饭时,一部电梯里面都“装满”人了,门还是在较低楼层打开了,里面十几双眼睛“怒视”着门外,而电梯外面的人往往是尴尬地摇摇手,去等另外一部电梯。其实最尴尬的不是电梯外的人,而是电梯里面的人,因为在下面较低的楼层,几乎层层都会停。 + +木头想:应该有“满员”运行的策略呀?于是木头找到了电梯公司的人,进行了面对面的深入访谈。 + +经了解,电梯的满载质量是1350千克,18人满员,这是按平均每人75公斤计算的。但是,电梯又不是城铁,里面的人不会挤得满满的。为了保证舒适度,木头建议10~12人就算做满员,也就是900公斤左右。 + +原本以为就是一个软件设置问题,没想到电梯公司的人这样答复: + +1. 降低到900公斤,需要减少电梯的配重块重量。 + + *注:为了让电梯平稳运行,电梯轿厢和配重块是悬挂在一个定滑轮的两侧的,当两侧的重量越接近时,电梯就运行得越平稳,不会忽悠忽悠的。* + +2. 需要配模拟负载进行安全测试,即搬来900公斤的铅块放在电梯里。 + + *注:不能用真人测试,而且需要12部电梯都做同样的测试,比如调节失控抱死装置的摩擦系数等等,来模拟掉电或失控坠落状态。* + +3. 整个大楼调试完毕需要至少两周的时间。 + + *注:这就牵涉到费用问题了,负责楼宇管理的大哥当时就苦笑着说:“你们不会又要收费才能做吧?”* + +木头听完后也傻了,原来这是一个工程问题,而不是简单地动动鼠标把1350改成900就行! + +木头的另外一个痛点是,早晨上班时乘坐电梯,电梯里6个人,其它5个人分别在6、7、8、9、10层下了电梯,木头在11层,只能目送同志们一个一个下了电梯,本来10秒能到达11层,现在变成了30秒,因为电梯的启动和停止需要很长的缓冲时间,同时也会更费电,增加开关门的损耗。 + +木头的实习生毛毛提出:如果在大堂里放一个楼层选择器,在同一时间段内相同楼层的人就会被分配到同一部电梯;并且,调度系统会知道一共有几个人等候,就会放下足够的电梯数到一层。 + +木头感觉这简直就是个天才的想法啊,可以申请专利了!访谈时,怀着激动的心情和电梯公司的人说了这个想法,得到了这样的答复: + +“这个技术我们已经有了!” + +负责楼宇管理的大哥急了:“那赶紧给我装上呀!” + +电梯公司:“这个系统需要100万人民币。” + +大哥:“......这个投入太大了......” + +电梯公司:“现在电梯行业的竞争也是很激烈的,我们卖硬件基本上赚不到什么钱,就靠这种增值服务赚钱了。” + +木头:“现在都讲究大数据,能不能给我们开放一些电梯运行数据,用于科学研究?” + +电梯公司:“这个我们和德国总部联系过了,总部不同意开放数据。” + +访谈法在上面的例子中,并没有得到理想的结果,但是通过访谈,木头知道了行业应用的困难所在。 + +访谈法,要求双方的沟通能力较强: + +1. 客户(甲)方要主动描述清楚需求的关键,而且要用比较通俗的语言讲解给乙方; +2. 软件制作(乙)方需要提前了解甲方的行业、领域背景,主动提出自己的问题。 + +访谈也不见得必须是面对面的实时沟通,也可以通过电子邮件等方式沟通,这样做的好处是:乙方可以事先设计几个关键性问题(与问卷调查法结合),并且可以进行多轮。 + +## 问卷调查法 + +(等着Yun的例子,放假后给我。可以再扩展写一下Office Forms的功能,做个软广告) diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.4 \350\275\257\344\273\266\347\232\204\351\234\200\346\261\202\345\256\232\344\275\215\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.4 \350\275\257\344\273\266\347\232\204\351\234\200\346\261\202\345\256\232\344\275\215\345\210\206\346\236\220.md" new file mode 100644 index 000000000..e0927a216 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.4 \350\275\257\344\273\266\347\232\204\351\234\200\346\261\202\345\256\232\344\275\215\345\210\206\346\236\220.md" @@ -0,0 +1,104 @@ +# 软件的需求定位分析 + +马斯洛需要层次理论(Maslow's Hierarchy of Needs$^{[1]}$)是关于需要结构的理论,传播较广。马斯洛(1968)认为,人的需要由五个等级构成:生理的需要、安全的需要、归属与爱的需要、尊重的需要、自我实现的需要。 + +在软件上,这个理论可以确定软件的市场需求定位,从而确定使用人群、软件功能、市场运营策略等等。 + +比如木头在城铁上观察到的大众使用手机应用软件的情况,可以大致对应到不同等级的需求层次上。 + +|等级|需求层次|软件产品| +|--|--|--| +|1|生理的需要|小说、视频| +|2|安全的需要|新闻、微博| +|3|归属与爱的需要|微信、QQ| +|4|尊重的需要|刷淘宝买衣服| +|5|自我实现的需要|游戏、股票| + + +## 生理的需要(Physiological Needs) + +传统的生理(生存)需要有:食物、水、空气、衣服、睡眠、温暖、居所等。 + +在物质生活不再匮乏的今天,软件产品提供的网络小说、视频,实际上是为了满足现代人类的精神生活。这种精神生活并不是需求层次的提高,只是生理需求的扩充而已。 + +- 我已经吃饱了喝足了,我需要快乐; +- 我不满足于每天两点一线的生活,我想猎奇; +- 我厌烦我身边的人但又不能摆脱,我想拥有别样的生活。 + +于是,网络小说和电视剧、短视频,就可以用来满足这些需要,因为它们提供了虚拟的现实、别人的生活、平行的空间,软件使用者(即读者)既可以从上帝视角观察别人的生活,也可以假设自己是主人公来体验别人的生活。 + +微软的 HoloLens 软硬件产品,以虚拟现实的技术和形式,用视觉带领用户进入一个崭新的世界,从更高的体验层次满足用户的生理需要。 + +## 安全的需要(Safety Needs) + +传统的安全需要,是人们需要稳定、安全的生活环境,受到保护,有秩序,避免焦虑、恐惧等负面情绪产生。 + +新闻就是新近发生的具有异常性的真事,而微博是自媒体的一种,也可以归结到新闻类别中。人需要包括新闻在内的各种讯息,来完善知识与智力结构,调整行为,适应社会变化,这是一种安全的需要。而出于精神生活需要去看新闻,猎奇、探索、求知欲,实际上属于较低层次的生理需求。 + +所以,新闻实际上人类被动补充知识的一种手段,以便可以更“安全”地生活和工作。大家都不喜欢看新闻联播了,但是又需要看新闻,所以“今日头条”便推出了个性化新闻服务。$^{[2]}$ + +基于个性化推荐引擎技术,根据每个用户的兴趣、位置等多个维度进行个性化推荐,推荐内容不仅包括狭义上的新闻,还包括音乐、电影、游戏、购物等资讯。 + +对每条信息提取几十个到几百个高维特征,并进行降维、相似计算、聚类等计算去除重复信息;对信息进行机器分类、摘要抽取,LDA主题分析、信息质量识别等处理。 + +根据人的特征、环境特征、文章特征三者的匹配程度进行推荐。实时推荐,0.1秒内计算推荐结果,3秒完成文章提取、挖掘、消重、分类,5秒计算出新用户兴趣分配,10秒内更新用户模型。 + +根据用户所在城市,自动识别本地新闻,精准推荐给当地居民。可根据用户年龄、性别、职业等特征,自动计算并推荐其感兴趣的资讯。 + +从本质上来说,上学读书受教育也是一种安全的需要。木头的同事中有很多孩子家长,一般都会在“微信家长群”里,胖超就是其中一个两个孩子的家长,他的两个孩子,第一个是儿子,第二个也是儿子。群里经常会有些家长说“我们家孩子上某某补习班”之类的消息,于是其它家长纷纷效仿。按胖超的话说:“人家孩子都参加了,你不参加的话就觉得不安全。” + +## 归属与爱的需要(Belongingness and Love Needs) + +传统的归属与爱,就是于其它人建立感情的联系或关系,如团队、朋友、爱情。 + +Nobody is a island(没有人是一座孤岛),这是玄学派英国诗人约翰$\cdot$多恩的诗,用比喻的方法生动地描述了人类的社会和情感需要。 + +微软的虚拟人工智能小冰,从具有感情色彩的聊天开始,吸引了无数宅男的目光和时间,对话轮数平均可以到达30轮以上。 +- 2014年5月29日,小冰正式推出第一代产品,以对话式聊天机器人形式迅速积累训练数据。 +- 第二代产品完成了跨平台部署的交互架构。 +- 第三代产品将交互从文本扩充至多模态,进一步积累多模态训练数据。 +- 第四代小冰开始,交互总量稳居全球第一并保持至今,同时发布了全双工语音交互感官。 +- 第五代小冰采用Dual AI战略,大幅度扩展跨平台覆盖的规模,至20余个主流平台,并成为中国市场上涵盖了华为、小米、OPPO、Vivo等智能手机及硬件的唯一的跨平台人工智能。 +- 第六代小冰完成了框架迭代目标。 +- 从第七代开始推出各类框架工具,以帮助创建第三方人工智能产品,并承载其各类交互。 +- 第八代小冰已经创造了118万的虚拟男友。 + +微信的日活跃用户数已经到达10亿了,朋友圈、群消息、私聊,每天收割着无数人的时间和感情投入。发朋友圈其实就是一种试图获得归属与爱的行为,与大家分享自己的心情和经历,希望获得朋友的点赞。 + +木头曾经总结过点赞行为的动机: + +- 点赞是一种义务,及时点赞是一种美德,好评是一种艺术,差评是一种亲密。 +- 给好图点赞是一种本能,给好文点赞是一种修养,给好友点赞是一种吹捧,给好心情点赞是一种理解。 +- 给无聊贴点赞是一种幽默,给普通贴点赞是一种鼓励,给高级贴点赞是一种欣赏,给每个贴都点赞是一种寂寞。 +- 给木头的贴点赞是一种智慧。 + +## 尊重的需要(Esteem Needs) + +传统的尊重需要,就是自尊和希望受到别人的尊重。 + +女孩子在淘宝上买衣服,已经不是生理需要了,她们并不缺衣服,她们需要的是穿在自己身上让别人夸赞的衣服。自尊到了极限就是虚荣。 + +在软件设计上,商家想方设法展示衣服的美丽(卖家秀),然后又根据大数据(购买行为)推荐各种相关产品。 + +男人在穿衣打扮这方面一般没有什么追求,却又有展示个人性格与见解的需求。但同时,很多人的创作能力有限,又想获得存在感和尊重:我写文章写不出来,写一句话的评论总可以把?于是在微博、微信公众号,各种奇葩的评论层出不穷,骂人说脏话的是一种低级的表现,没有脏字但是句句诛心的是一种高级的表现。 + +以现在的 NLP(Natural Language Processing,自然语言处理)技术来说,智能地屏蔽这些评论并不是什么难事,但是那些软件厂商不愿意投入精力去做,反而会觉得有这些奇葩的评论会吸引更多的人来观看。 + +## 自我实现的需要(Self-actualizaiton Needs) + +自我实现本来就是一种高层次的需求,所以在软件行业只是形式上的不同而已。 + +别小看打游戏,克服里面的重重困难过关斩将,实际上是一种自我实现的需要,这比看科幻小说电视剧高一个层次,因为用户亲身参与了。这些游戏玩家,为了实现更高层次的自我,还会花钱买装备,所以软件游戏成为了最容易赚钱的行业。 + +互联网还有一个1:99定律,就是在每100个人里,只有1个人创作,其它的99人只是观众。对应到各种软件中,这一个人就是微博的博主、公众号的博主、网络小说的作者等等。他们的自我实现方式就是创作。 + +虽然比例悬殊这么大,但是中国人口多,那么创作者就多,所以就会有一个很好的生态环境来支持微博、公众号、网络小说的运营,稍微加点儿广告,就会有很好的收入。 + +也有在朋友圈实现自我的,比如发自己拍摄的美图和长文、自己做的短诗等等,偶尔也会有自己写歌作曲的,这大大降低了自我实现的门槛,所以朋友圈里色彩缤纷。而观众都是朋友,所以不会有攻击诋毁的评论出现,相对安全。 + +而抖音和微信短视频的出现,更是激发了公众的“创作”欲望,因为视频比文字、诗歌、音乐等更容易生成,再配上一段平台提供的音乐就会更加有模有样。视频的分类(从难到易)大致有:知识类、才艺类、搞笑类、新闻类、生活类。 + +### 参考资料 + +- [1] 马斯洛理论 https://www.simplypsychology.org/maslow.html +- [2] 百度百科《今日头条》https://baike.baidu.com/item/%E4%BB%8A%E6%97%A5%E5%A4%B4%E6%9D%A1/4169373 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.1 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\346\214\226\346\216\230\347\232\204\346\225\205\344\272\213.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.5 \346\234\250\345\244\264\344\270\216\347\240\224\347\251\266\345\221\230\347\232\204\346\225\205\344\272\213.md" similarity index 75% rename from "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.1 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\346\214\226\346\216\230\347\232\204\346\225\205\344\272\213.md" rename to "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.5 \346\234\250\345\244\264\344\270\216\347\240\224\347\251\266\345\221\230\347\232\204\346\225\205\344\272\213.md" index b7b2e4c82..f9d968b2d 100644 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.1 \346\234\250\345\244\264\344\270\216\351\234\200\346\261\202\346\214\226\346\216\230\347\232\204\346\225\205\344\272\213.md" +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.5 \346\234\250\345\244\264\344\270\216\347\240\224\347\251\266\345\221\230\347\232\204\346\225\205\344\272\213.md" @@ -1,13 +1,15 @@ -# 木头与需求挖掘的故事 +# 木头与研究员的故事 7月份到了,微软一年一度的 Hackathon(黑客马拉松)又要开始了!虽然前几年做的项目一个奖都没拿到,但是木头还是跃跃欲试地琢磨今年要做什么有趣的项目了。 -MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的论文在纸上,边阅读边用笔在上面写写画画做标记。而且在很多情况下,写一篇论文要阅读十几篇论文。研究员们是如何做这些论文管理的呢?能否做一个工具帮助到大家呢? +MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的论文在纸上,边阅读边用笔在上面写写画画做标记。在很多情况下,写一篇论文要阅读十几篇论文。研究员们是如何做这些论文管理的呢?能否做一个工具帮助到大家呢? 怀着好奇的心情,木头和几个同事进行了简单的访谈。 ## 工程师军儿哥 +军儿哥,北京人,经常一起和木头打台球,爱听摇滚,走路晃晃悠悠的。左侧的耳朵受过伤,所以他一般坐在你的左侧,以便用右侧的耳朵听对方说话。如果面对面的谈话,他经常会偏过头来听,很认真的样子,这就是所谓的“侧耳倾听”。 + 木头:我想做一个辅助读论文的工具,你觉得咋样? 军儿哥:哥们儿你问错人了吧,我哪儿懂论文那玩意儿呀? @@ -18,7 +20,7 @@ MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的 ## 实习生小皮 -小皮,来研究院实习一年多了,满头蓬松杂乱的头发,总是一副睡不醒的样子。 +小皮,武汉人,来研究院实习一年多了,满头蓬松杂乱的头发,总是一副睡不醒的样子。 木头:还在为你的第一篇论文而努力吗? @@ -44,7 +46,7 @@ MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的 ## 研究员小雨 -小雨,南方妹子,说话声音很好听,橙色的短款上衣加一条旗袍式的长裙,生活和工作的态度可以用“精致”来形容。 +小雨,上海人,五官小巧,说话声音很好听。兼顾的项目很多,所以经常会丢三落四,有时候也会因为早晨找不到袜子而穿凉鞋出门,但仍然从骨子里透出一股优雅的气质。 木头:我要做个阅读论文的辅助工具,你希望做成什么样子? @@ -66,7 +68,7 @@ MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的 ## 高级研究员大陈 -大陈是重庆人,为人诚恳热情,总是笑眯眯的表情。他和木头是老朋友了,谈话直接了当。 +大陈是重庆人,为人诚恳热情,总是笑眯眯的表情。经常拿着一个 iPAD 看论文,按他自己的话说是“假装看论文”,我总说他是“看假论文”。他和木头是老朋友了,谈话直接了当。 木头:我要做个论文阅读辅助工具,你老实交代读论文时有什么痛点? @@ -88,7 +90,7 @@ MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的 ## 主管级研究员老张 -老张是老炮儿了,在机器学习领域十多年耕耘,硕果累累,如今带了十几个研究员工作。老张语速超快,木头只得全神贯注地倾听,不敢落下节奏,否则就跟不上。 +老张是老炮儿了,在机器学习领域十多年耕耘,硕果累累,如今带了十几个研究员工作。老张语速超快,木头只得全神贯注地倾听,不敢落下节奏,否则就跟不上了。 木头:张老师,我想做一个读论文的辅助工具,您阅“文”无数,是否可以提供一些经验技巧,能分享给大家的? @@ -114,20 +116,26 @@ MSRA 的研究员很多,木头经常看到有人打印了一些已经发表的 最不可思议的是,木头还得到了和大佬 Harry Shum(沈向洋)1:1(读做one on one,二人面对面谈话)的机会。 -Harry:听说你要做个工具,很好呀!我正好在教一门课,训练实习生们如何阅读论文。我觉得读论文要分三个阶段: +Harry:“听说你要做个工具,很好呀!先说几点自己读论文的现状吧: + +1. 每天坚持读论文,跟上最新研究成果; +2. 岁数大了,眼睛有些花,读纸上的论文很费劲了,字太小; +3. 想把读写论文的经验传授给年轻人。 + +“我正好在教一门课,训练实习生们如何阅读论文。我觉得读论文要分三个阶段: 1. Fast Reading(快速阅读) 2. Intensive Reading(精读) 3. Analyze Reading(研读) -每个阶段达到不同的目的。在读的时候,还要带着不同的态度,一遍一遍地重复读,比如: +“每个阶段达到不同的目的。在读的时候,还要带着不同的态度,一遍一遍地重复读,比如: 1. Passive Reading(被动地读) 2. Active Reading(主动地读) 3. Critical Reading(批判地读) 4. Creative Reading(有创造性地读) -这样才能真正领会一篇论文的精髓,好论文就要这样读。还有就是我总会想: +“这样才能真正领会一篇论文的精髓,好论文就要这样读。还有就是我总会想: 1. 如何才能和作者交流呢? 2. 我真的领会作者的原意了吗? @@ -138,4 +146,4 @@ Harry:听说你要做个工具,很好呀!我正好在教一门课,训练 Harry 的话条理清晰,木头听得频频点头,不时地发表一下自己微不足道的看法,但是总能得到 Harry 的肯定。 -最后 Harry 说:希望你能把它做出来,然后咱们再一起看一下! +最后 Harry 站起来,有力地和木头握手,说:“希望你能把它做出来,然后咱们再一起看一下!” diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.2 \346\225\205\344\272\213\350\247\243\350\257\273.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.6 \345\205\270\345\236\213\347\224\250\346\210\267\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" similarity index 92% rename from "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.2 \346\225\205\344\272\213\350\247\243\350\257\273.md" rename to "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.6 \345\205\270\345\236\213\347\224\250\346\210\267\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" index fba8fb730..4dd7b78cd 100644 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.2 \346\225\205\344\272\213\350\247\243\350\257\273.md" +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.6 \345\205\270\345\236\213\347\224\250\346\210\267\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" @@ -1,5 +1,6 @@ -# 故事分析 +# 典型用户的故事分析 +*这个图也许可以放在别的地方,这里已经很大信息量了* 我们先请出软件业界著名的秋千图: @@ -25,6 +26,8 @@ ## 用户画像 +(Persona模型) + 我们在需求讨论中,经常会说起“用户”如何如何,其实这是不准确的,因为你了解的“用户”也许只是一个个例,并不能代表真正的“用户群体”。 豌豆荚用户研究团队对全国9个城市143个样本进行深入访谈$^{[1]}$,收集了关于用户的生活和手机使用行为等的大量素材结合定量的数据挖掘,将内容消费用户定义成了五个角色,分别是:职业鉴赏家、专业发烧友、业余爱好者、匆忙路人、围观群众。 @@ -34,11 +37,11 @@ 抽象的结果是: |序号|角色|需求层次|举例| -|--|--|--|--|--| -|0|局外人|没需求|军儿哥| -|1|群众|非常基本的需求|实习生小皮| -|2|关注者|一些个人喜好|研究员小雨| -|3|粉丝|需求主要来源|高级研究员大陈| +|--|--|--|--| +|0|局外人|没有需求|军儿哥| +|1|群众|基本需求|实习生小皮| +|2|关注者|扩展需求|研究员小雨| +|3|粉丝|主流需求|高级研究员大陈| |4|职业|专业需求|主管级研究员老张| |5|专家|深度需求|大佬 Harry| @@ -46,7 +49,7 @@ 军儿哥根本不是我们这个软件的使用对象,所以就不要费力气了,和他聊聊天气就可以了。 -对于“局外人”应该如何看待呢?这个问题让笔者想起了那个卖鞋的故事:一个岛上的原住民都不穿鞋,商人甲很失望,说:“鞋在这里没有需求市场”,商人乙却说:“如果这些人培养出穿鞋的习惯,这里将会是一个很大的市场”。 +对于“局外人”应该如何对待呢?这个问题让笔者想起了那个卖鞋的故事:一个岛上的原住民都不穿鞋,商人甲很失望,说:“鞋在这里没有需求市场”,商人乙却说:“如果这些人培养出穿鞋的习惯,这里将会是一个很大的市场”。 所以,对于软件设计者来说,在照顾到已有用户的同时,不要放弃对“局外人”的吸纳,因为其潜力巨大。 @@ -74,7 +77,7 @@ 2. 多页阅读模式; 3. 交互友好。 -小雨显然已经不再纠结于基本的论文阅读技巧,而是更关注使用这个软件的愉悦程度。软件的“可用性”不是说“可以使用”的意思,而是尽量地“容易使用”。其中,用户界面和交互是非常重要的两个方面,也可以统称为“用户体验”。但是“用户体验”这个说法比较虚,通常用于说不出细节但是又想标榜自己很懂的时候,比如:你这个用户体验太差了,不好用。 +小雨显然已经不再纠结于基本的论文阅读技巧,而是更关注使用这个软件的愉悦程度。软件的“可用性”不是说“可以使用”的意思,而是尽量地“容易使用”。其中,用户界面和交互是非常重要的两个方面,也可以统称为“用户体验”。但是“用户体验”这个说法比较虚,通常用于说不出细节但是又想标榜自己很懂的时候,比如:“这个软件用户体验太差了,不好用。” 多页阅读模式是一个很好的建议。想象一下我们平时读纸质书时,由于书有厚度,我们知道自己读了多少,还有多少没读;而且我们在读左侧时,右侧的书页会给人一种莫名其妙的“安全感”。所以,在计算机上,虽然没有厚度的概念,但是左右页的排版方式会是一种很好的“用户体验”。 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.7 \346\234\250\345\244\264\344\270\216\347\245\236\347\273\217\347\275\221\347\273\234\350\257\276\347\250\213\347\232\204\346\225\205\344\272\213.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.7 \346\234\250\345\244\264\344\270\216\347\245\236\347\273\217\347\275\221\347\273\234\350\257\276\347\250\213\347\232\204\346\225\205\344\272\213.md" new file mode 100644 index 000000000..20a31f850 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.7 \346\234\250\345\244\264\344\270\216\347\245\236\347\273\217\347\275\221\347\273\234\350\257\276\347\250\213\347\232\204\346\225\205\344\272\213.md" @@ -0,0 +1,39 @@ +# 木头与神经网络课程的故事 + +(还要再讲讲什么是scenario) + +人物: +- 毛毛作为一个大三的学生,正在学习深度学习的相关知识。 +- 木头是一名老师,讲授神经网络基本原理课程。 + +## 2019/10/13 晚 + +毛毛已经上了10节关于神经网络入门的课程,明天该进入卷积网络的学习了。 + +在前面的深度学习基础中,循序渐进的课程设置,让毛毛感觉学习起来很轻松,似乎学习曲线没有那么陡峭。而示例代码和课后作业,由于代码的高度优化,他用自己的笔记本完全可以跑起来,很快地就跑出了实验数据。他打开了课程网站,用自己的学号和密码登录后,进入提交作业的页面,填写了自己的实验数据,点击“提交”按钮,看到“提交成功”的信息后,毛毛猜想着自己的作业成绩,会不会像以往那样名列前茅。 + +果真,一会儿毛毛的微信收到了作业系统通知消息,自动评分系统已经统计了全班同学的作业成绩,由于毛毛的模型预测数据的准确率为98.1%,名列第二名,仅比第一名低0.1个百分点。毛毛不满意地摇摇头,暗下决心一定要在卷积网络这一部分的成绩超过那个名叫金二的但总得第一的家伙。 + +毛毛想预习一下卷积网络的知识,打开了课件。看了20分钟后,毛毛的觉得很沮丧,什么单入单核,多入单核,单入多核,多入多核……一大堆卷积类型,越看越晕。算了,明天上课好好听木头老师讲吧。 + +而木头老师此时也还没有休息,他先浏览了一下全班同学的作业成绩,在讨论区里回答了几个问题后,调出卷积神经网络的PPT课件,开始备课。在PPT的note中标记了几处需要重点说明的环节后,Office 365已经替他把文档自动保存到服务器上,这样其它老师也可以看到他的分享。 + +然后,木头又用教师账号在Azure上申请了两台带GPU卡的计算VM,选择了OpenPAI的镜像,5分钟后,两台服务器正常启动,他便关闭了服务器,避免在没人使用时发生不必要的费用。 + +## 2019/10/14 上午 + +第二天,木头准时来到电教室,同学们已经都到齐了,毛毛像往常一样坐在第一排,他想仔细听听老师如何讲解复杂的卷积神经网络。 + +木头没有带电脑,因为电教室的Surface Hub S2所连接的主机,早已经连接到了Azure上。他打开Edge浏览器,输入http://openaiedu.azure.microsoft.com网址,输入了自己的教职员工号码登录,电教系统已经自动开始录音录像他的讲课内容了。 + +木头打开了PPT,放在屏幕左侧,而右侧则是书写区,便于注释与重点讲解。45分钟之内,4种卷积类型在左侧依次一个个地被讲解,并最终做了比较,而右侧的白板区则写满了木头的Ink笔记,使得毛毛清晰地理解了它们的原理。木头把Ink笔记保存为文件后,上传到了服务器,便于同学们复习。 + +课间休息,木头在Azure上激活了昨天准备好的两台虚拟机,准备给同学在课堂上跑卷积神经网络的训练过程示例。此时OpenPAI已经严阵以待,就等Job的提交了。 + +木头先用交互式图形界面,在屏幕上妥妥拽拽,只用了5分钟就生成了一个神经网络,包括两层卷积、两层池化和两层全连接,最后又选择了Softmax分类函数和交叉熵损失函数后,把准备好的MNIST数据集输入,并点击“提交Job”按钮,OpenPAI瞬间活跃起来,数据流在K80 GPU中疯狂运转,10分钟后,50个epoch跑完了。与此同时,同学们也分组搭建自己的神经网络,在图形界面上设置了自己想试验的超参,然后点击“提交Job”按钮。 + +OpenPAI管理的两块GPU现在满负荷运行了,在任务区中有10组同学的排队请求,每隔1分钟,会有一个任务状态信息反馈到用户界面上。20分钟后,同学们的手机依次收到了任务结束通知,纷纷去看结果,有的高兴有的沉思,毛毛似乎又不太顺利,琢磨着为什么4个卷积核只能得到89%的准确率呢? + +正踌躇间,下课的铃声响了,木头老师提醒同学们保存好自己的model,便关闭了GPU服务器,看看Azure上的账单,一共只花费了2美元!(美国西2区当前价每小时0.9美元每台单卡K80服务器) + +故事讲完了,但毛毛还在郁闷中。 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.8 \345\272\224\347\224\250\345\234\272\346\231\257\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.8 \345\272\224\347\224\250\345\234\272\346\231\257\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" new file mode 100644 index 000000000..8ee3a980e --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/5.8 \345\272\224\347\224\250\345\234\272\346\231\257\347\232\204\346\225\205\344\272\213\345\210\206\346\236\220.md" @@ -0,0 +1,38 @@ +# 应用场景的故事分析 + +(找一下scenario的模型) + +## 学生场景 + +通过毛毛同学的故事场景,我们可以知道一个作业系统所需要的基本功能: + +1. 是一个网站,可以部署在校园网或者 Azure 上; +2. 要求 7x24 小时运行; +3. 支持并发用户数最大为在校学生数,但是考虑到忙时时段并发,可以用在校学生数除以 10 来配置; +4. 学生需要使用自己的用户名和密码登录; +5. 学生入校和离校,需要有用户注册、注销功能; +6. 学生可以提交自己的作业(代码或者模型); +7. 有一个自动评分系统辅助(而不是老师去判作业); +8. 对于机器学习模型类的作业,有非公开的测试数据; +9. 还必须有可以运行模型推理的环节,比如 Python + PyTorch; +10. 评分系统可以发送结果通知,到微信或者邮件或者短信; +11. 评分系统可以给出全班同学的作业成绩排名; +12. 作业系统是否可以运行二次提交作业,不确定 + +## 老师场景 + +通过木头老师的故事场景,我们可以知道一个教学实验系统所需要的基本功能: + +1. 是一个网站,可以部署在校园网或者 Azure 上; +2. 要求白天时段运行,即 5x8 小时; +3. 支持并发用户数最大为两个班的同学数量(因为这类系统比较贵,学校只能配备一两个电教教室); +4. 需要有可手写的宽屏幕,如 Surface Hub(微软的手写大屏幕硬件,配有定制的 Windows 10 操作系统); +5. 手写(笔)数据可以保存为矢量或者图像,作为板书记录; +6. 系统是 Windows 操作系统,可以安装 Office 办公套件; +7. 系统本身可以上网,或连接 Azure; +8. 有一个交互式软件可以支持使用拖拽方式搭建神经网络模型; +9. 后台连接有多任务训练系统(如OpenPAI); +10. 训练系统中最好配置有单块或多块 GPU +11. 训练系统可以做任务调度,如排队、训练、保存模型、输出状态信息和最终结果等等; +12. 系统搭建在 Azure 虚拟机上,按使用时长付费,非常便宜; +13. 电教室可以录像,录制整个教学过程,以便回顾。 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.1 \351\234\200\346\261\202\347\261\273\345\210\253\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.1 \351\234\200\346\261\202\347\261\273\345\210\253\345\210\206\346\236\220.md" new file mode 100644 index 000000000..1b48c77bb --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.1 \351\234\200\346\261\202\347\261\273\345\210\253\345\210\206\346\236\220.md" @@ -0,0 +1,112 @@ +# 需求类别分析 + +## 小组讨论 + +项目小组成员通过任何形式获得用户需求,回来后自己内部开会,对需求进行讨论,目的如下: +- 把抽象的需求具体化 + - 用户:“这么多论文乱七八糟的,根本没法找!” + - 木头:“需要论文分类管理功能,可能是根据类别、会议或者日期。” + + *解释:用户的需求有时是用情绪化的语言形式表达出来的。* + +- 用计算机专业词汇描述需求 + - 用户:“把这个论文好好的保管好,以后还要用。” + - 木头:“按日期保存论文到系统指定的存储位置,并可以根据日期和名称检索。” + + *解释:需求文档要明确指出存储、检索的功能。* + +- 避免需求理解偏差 + - 用户:“这个游戏软件主要是面对儿童的,比如我,希望家里的三个分别为7岁、10岁、12岁的孩子都可以玩。” + - 实习生毛毛:“用户希望如果一个家庭有三个孩子的话,可以同时玩这个游戏。” + - 木头:“别闹,用户是希望各个年龄段的孩子都可以玩。” + + *解释:用户的举例通常带有实例化性质,需求文档需要泛化这些需求。比如该用户家的三个孩子恰巧都是男孩儿,或者该用户家的孩子的身高比同龄人的平均身高要高,这些都需要广泛调查后再确定目标用户。其实在著名的秋千图的例子里,用户的原始想法是用一个橡胶轮胎挂在树上做秋千,这样他的三个孩子都可以玩儿。但是需求分析人员把“三个孩子都可以玩儿”理解为“三个孩子可以同时玩儿”,于是设计了一个三层的木板结构。* + +- 确定需求边界 + - 用户:“能不能加两个人手,在这个月就把那个云端同步的功能也一起做了?” + - 木头:“对不起,我们本期的需求已经确定了‘论文注释‘功能只在客户端保存,开发计划已经排满了。况且云端同步功能还需要购买 Azure 资源,这部分也不在预算内。” + + *解释:用户总希望少花钱多办事,而市场人员往往为了订单随口承诺一些事情,需求文档需要明确这些边界。做计划外的功能,会影响计划内的软件的质量,和一些不可预估的如预算、设备、部署等方面的麻烦。* + +- 识别错误需求 + - 用户:“这个论文最好还能保存成 Word 格式,便于修改。” + - 木头:“你......我......人家发表的论文你改哪门子改?” + + *解释:对用户的一些需求,需要分析它的背后的含义,再确定其正确性。* + +- 识别真实需求 + + - 用户:“我批改了这篇论文,我想把我的意见通过电子邮件转达给其它人。” + - 木头:“您实际上是想通过网络的方式把您的意见快速准确地转达给其它人,那不如我们后期考虑在 Azure 上搭建一个服务器吧,这样大家都可以分享自己的见解。” + + *解释:着就如同亨利福特遇到的情况,用户希望有一匹快马,但其实用户需要的只是“快”,而不是“马”,所以福特开始造汽车。所以要理解用户的真实意图,用自己的专业知识提供解决方案。* + +## 卡片分类 + +用户在述说需求时,一般是杂乱无章的,整理成体系会有些困难。此时,无论用何种需求调研方法,我们可以先把从用户那里听到的每个需求,都记录在一张小卡片上面。积攒了一定程度后,把这些小卡片根据内容或者来源进行分类,就形成了一些模块或子系统的雏形。 + +微软内部有一种做法类似于卡片分类,叫做 Backlog,就是使用软件把一些想法记录下来,在下一阶段的需求分析开始时,把这些想法拿出来分类整理,大家评估一下需求属性,再排一下优先级,成为真正的功能写到文档中等待开发。 + +【slide】 + +木头在做 Edge Mobile Browser 的需求分析时,使用了卡片分类法来归纳总结一些浏览器上的功能的分类,这样做的好处是: + +- 快速理解功能要点 + + - 从用户角度可以清楚这个软件可以提供什么类型的功能,而不是乱糟糟地堆砌一堆功能。 + + - 需求分析人员可以从已有分类中开拓思路,设计出一个惊喜型的功能。 + + 分类设定,其实对人类的思维是一个双刃剑。木头的感觉是,很容易陷入这些条条框框里,陷入其中不能自拔。另一方面,也可以帮助需求分析人员仔细研究每个类别里的功能,找出缺失的部分,或者找出缺失的类别,来开发出惊喜型功能。 + + - 开发人员可以快速学习领域知识,理解真正的需求。 + + 木头自己就通过这次分类整理,真正地认识到了浏览器功能的全貌,一旦有了“上帝视角”,会不由自主地感叹到:“原来如此,那么浏览器那个组的几百号儿人,这些年都做了什么,为什么 Edge 浏览器口碑越来越差?”。话音未落,浏览器组先是换了一个大老板,紧接着决定用 Chromium 做引擎,重新写 Edge 浏览器的 Shell,而这个大老板,就是以前在 Windows Team 负责 Shell 的。 + +- 模块功能整合 + + - 相近的功能可以共用底层模块,减少代码重复。 + + 比如浏览器里常用的两个功能:网页收藏,浏览历史。从外观上看,很明显都是一个列表,里面存放一些网页记录。最起码,那个列表控件就是可以重用的部分。 + + - 合理地分配开发资源,让一个人或小组负责一类功能。 + + 木头在 Edge Mobile Browser 项目中,担任的是质量管理任务,亲眼目睹了当时的 Dev Manager 是如何分配工作的:先给甲乙丙三个开发人员各分配一个任务模块A,看谁先做完了,就分配另外一个任务模块B,而A和B是两个不相关的模块。 + + 上面只假设了三个人,实际上当时有10几个人,每个人都是在功能类别之间跳来跳去,需要熟悉每一个功能模块的底层代码,造成资源上的浪费。 + +- 界面设计指导 + + - 同一类功能放在一个菜单入口里,用户容易找到。 + + 在京东、淘宝等软件里,作为软件从业人员的木头,可以明显感觉到界面菜单是经过精心设计的。但是在使用一些银行的手机软件时,就会觉得功能不容易找到,缺乏设计。 + + - 不同使用率的菜单入口在屏幕上的位置不一样,体现了重要程度。 + + 尤其是在手机上,屏幕小,寸土寸金,所以按钮的位置需要非常精细的设计: + - 是否需要在首页上显示 + - 如果需要显示,放在什么位置,方便用户单手操作 + - 按钮的尺寸多大,才能即明显,又不影响美观,又能很容易地点击 + +## 单据报表分析法 + + 传统行业中,往往存在一些手工填写的单据或报表,可以给流程控制提供很好的抽象信息,比如:银行的存款单、取款单,仓库的入库单、出库单,海关的报关单、提货单,企业的采购单、验货单,财务的资产负债表、损益表等等。 + + 这些单据其实就是数据流图中的数据/文件部分,也可以做为数据设计的依据,但是其中肯定有很多冗余的项,需要用范式知识来解决。 + +入库单示例 + +|品名|型号|单位|数量|生产日期|批号|入库日期|备注| +|--|--|--|--|--|--|--|-- +|鼠标|LG302|个|1000|2020/09/01|12|2020/09/22|限量版| +|键盘|C104|个|200|2020/09/02|9|2020/09/23|京东专供| + +如上面这个表单,作为一张纸质的原始表单来说,已经比较完善了。但是作为软件用的表单,还缺一个唯一的入库单号做主键,否则无法索引。 + +另外就是型号字段是个外键,需要设计另外一张表来描述 LG302 和 C104 的具体特性,如重量、体积、颜色、无线/有线、是否人体工程学设计等等。 + +对一些报表类的需求,软件除了可以做到比纸质报表更精美的格式、字体外,需求分析人员应该设计出对应的可视化数据图版(Dashboard),让数据展示更生动。 + +【slide】可以用azure的例子 + + diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.2 \351\234\200\346\261\202\346\212\200\346\234\257\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.2 \351\234\200\346\261\202\346\212\200\346\234\257\345\210\206\346\236\220.md" new file mode 100644 index 000000000..fc66fc40d --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.2 \351\234\200\346\261\202\346\212\200\346\234\257\345\210\206\346\236\220.md" @@ -0,0 +1,12 @@ +# 需求技术分析 + + + + +## 用例图 + + + + +## 数据流图 + diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.8 \351\234\200\346\261\202\350\247\204\346\240\274\350\257\264\346\230\216\344\271\246.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.8 \351\234\200\346\261\202\350\247\204\346\240\274\350\257\264\346\230\216\344\271\246.md" new file mode 100644 index 000000000..635aff908 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/6.8 \351\234\200\346\261\202\350\247\204\346\240\274\350\257\264\346\230\216\344\271\246.md" @@ -0,0 +1,95 @@ +# 需求规格说明书 + +在微软,通常把需求规格说明书称作Functional Spec(Specification,规格说明书)、Feature Spec。因为这是 PM 需要完成的工作,所以经常叫做 PM Spec。 + +需求规格说明书是需求分析的输出。 + +## Assumption/Background 假定和背景 + +在需求规格说明书中,首先要简单讲解一下项目或产品的大概背景。可以分成两种情况: + +1. 独立的软件,从零开始开发。这种情况可以简单说一下需求背景,比如: + + *我们发现大部分研究员都是用 Edge 浏览器和 OneNote(微软办公套件中的一个产品)进行阅读和做笔记,非常不方便,所以想开发一款二合一的软件产品,既能够浏览,也能够做笔记。* + +2. 在已有软件上增加功能。这种情况需要简单描述一下已有软件的大概情况,再说一下新增功能,比如: + + *我们发现大部分研究员都是用 Edge 浏览器和 OneNote 进行阅读和做笔记,非常不方便,所以想在 Edge 浏览器上开发一个扩展插件,来解决做笔记的需要。* + +## Goal/Non-Goal 目标和非目标 + +仍然沿用读论文工具的例子: + +*Goal:解决 PDF 的标记问题。* + +*Non-Goal:不准备支持 Word 文档格式,不支持触摸输入。* + +## Persona/Scenario 典型用户与场景 + +Persona 用户画像,古希腊罗马戏剧中的面具$^{[1]}$。 + +中国的传统戏剧如京剧中有所谓的脸谱,不同的人物性格就用不同的脸谱予以直观的表示。古代希腊、罗马的戏剧中也有类似的表现手法,不过不是脸谱,而是面具,不同角色戴不同面具。佩戴面具可以解决一人分饰多角的问题,还能克服剧场条件限制,使远处的观众辨别出角色的形象和表情。 + +这种面具,拉丁文就叫做 persona 。正因为如此,persona 渐渐成了戏剧中的“人物角色”的意思。由于每个人在社会生活中都要扮演一定的人格角色,所以 persona 就从戏剧中的“人物角色”延伸为表示人在社会生活中的人格角色,从而产生了英语单词 person 。 + +在用户界面设计领域,Alan Cooper 提出来的一种通过调研和问卷获得的典型用户模型,用于产品需求挖掘与交互设计的方法。把这个词分解为7个单词的词头,虽然略为勉强,但也起到了帮助人们记忆的目的。 + +|字头|单词|直译|从设计角度的解释$^{[2]}$| +|--|--|--|--| +|P|Primary|基本性|该用户角色是否基于对真实用户的情景访谈| +|E|Empathy|同理性|用户角色中包含姓名、照片和产品相关的描述,该用户角色是否引同理心| +|R|Realistic|真实性|对那些每天与顾客打交道的人来说,用户角色是否看起来像真实人物| +|S|Singular|独特性|每个用户是否是独特的,彼此很少有相似性| +|O|Objectives|目标性|该用户角色是否包含与产品相关的高层次目标,是否包含关键词来描述该目标| +|N|Number|数量性|用户角色的数量是否足够少,以便设计团队能记住每个用户角色的姓名,以及其中的一个主要用户角色| +|A|Applicable|应用性|设计团队是否能使用用户角色作为一种实用工具进行设计决策| + +有了典型用户后,就要把该用户“放进”具体的应用场景中。Scenario 的意思,就是要把用户放进一个真实的故事片段中,来检验其可行性。 + +比如前面所述的木头与神经网络课程的故事,用典型用户木头(老师)和小雨(学生)作为故事的主角,串连起了两个故事片段,在故事中提及了大量的电教课程细节,都可以使用微软提供的技术方案来解决。 + +反过来看,就是Surface Hub、Azure、OpenPAI 等设备、服务、软件,都应该提供什么功能,才能满足大学电教课程的需要。设计人员坐在办公室冥想是想不出来的,必须到教学现场观察一下上课的情况,才能够设计出相应的产品,然后再泛化。用故事场景(即Scenario)的形式来描述,就是还原现场的一种有效方法。 + +## Feature/Function list 特性与功能列表 + +Function 和 Feature 不是同一层意思: + +||Function 功能|Feature 特性| +|--|--|--| +|定义|产品或服务可以完成的任务、目标|可以实现某一功能的工具、方法| +|组成|产品、服务、任务、流程、计算、系统、应用、文档、组件、机器,等等|窗口、按钮、菜单、列表、图形、声音、视频、卷滚条,等等| +|举例1|该软件可以完成统计样本方差的任务|点击按钮 A 打开窗口后选择菜单 B 可以计算样本方差| +|举例2|使用微信可以与其它人通信|点击“发送”按钮可以发送信息| + +所以,Spec 既要有功能(Function)列表,又要有特性(Feature)列表。功能列表通常由用户指定,而特性列表则由 PM 在需求分析的基础上给出,要具体到软件界面元素,比如是选择菜单还是点击按钮,出现的是一个数据列表框还是条形图,等等。 + +## Condition/Performance 条件和性能 + +一般指运行环境的要求或者限制,以及在这一运行环境下的系统性能指标。比如: + +*本软件要求在 Windows 10 操作系统上运行,可以管理多达 32 个类别和每个类别中最多 1024 篇论文。要求显示屏物理分辨率至少为 1920x1080。* + +## UI/UX 用户界面与交互 + +复杂软件的用户界面和交互,是需要 Designer 参与的,会提供全套的界面元素设计和交互设计。如果是简单的功能,PM 可以根据以有的界面元素直接给定。 + +比如,软件在某一时刻要弹出一个消息,那么消息框的大小、颜色、文字、位置,都可以参考软件已有的消息框设计直接给出,就不用通过 Designer 了。 + +在需求阶段,可以给用户提供一个界面草稿,比如:这个 APP 的界面打算设计成左右分屏的,就像 Outlook 那种三级窗口的形式,功能按钮都在左边栏,阅读区在左侧主屏,辅助区在右侧小屏。一些细节的设置用对话框的形式展现。 + +## Schedule/Plan 计划和日期 + +给出项目的几个关键点,如: + +|时间|成果|解释| +|--|--|--| +|Week 2|Feature Spec|提交需求文档并评审| +|Week 4|Design Spec|提交设计文档并评审| +|Week 9|Code Complete|编写代码结束| +|Week 10|ZBB ( Zero Bug Bounce )|没有新Bug再出现| +|Week 12|Release|发布| + +### 参考资料 + +- [1] 英语词源 https://www.tjxz.cc/26456 +- [2] 用户画像 http://www.woshipm.com/operate/707658.html \ No newline at end of file diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.1 \351\234\200\346\261\202\345\210\206\346\236\220\344\270\255\347\232\204KANO\346\250\241\345\236\213.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.1 \351\234\200\346\261\202\345\210\206\346\236\220\344\270\255\347\232\204KANO\346\250\241\345\236\213.md" new file mode 100644 index 000000000..a593d1dee --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.1 \351\234\200\346\261\202\345\210\206\346\236\220\344\270\255\347\232\204KANO\346\250\241\345\236\213.md" @@ -0,0 +1,87 @@ +# 需求分析之KANO模型 + +需求分析中的“分析”有两类: + +1. 技术分析,即通过一些如用例、数据流图等手段从技术方面对功能进行归纳总结,分解出流程中的关键点,从战术上为系统设计做好准备,偏重系统实现。 + +2. 属性分析,即通过对功能集本身的一些分类,来区分不同类别的功能,并从战略上做好应对的准备,偏重用户分析。 + +在本节中我们要讲的是属性分析。 + +KANO$^{[1]}$ 模型是东京理工大学教授狩野纪昭(Noriaki Kano)发明的对用户功能分类和优先排序的有用工具,以分析用户功能对用户满意的影响为基础,体现了产品功能和用户满意之间的非线性关系。 + +【slide】 + +## 产品的五类功能 + +原文中使用了 Quality 这个词,即产品的品质。很多资料中都有不同的翻译,笔者认为翻译成“功能”比较符合软件行业的概念,当然 KANO 模型是通用的用户满意度模型,不是为软件行业定制的。 + +|类|原文|中文|用户要求| +|--|--|--|--| +|1|Attractive Quality|惊喜型功能,兴奋点|快上线,麻利儿的| +|2|One-dimensional Quality|期望型功能,痒点|点个赞,越多越好| +|3|Must-be Quality|基本型功能,痛点|别废话,必须可用| +|4|Indifferent Quality|无差异功能,冰点|无所谓,放那儿吧| +|5|Reverse Quality|反向型功能,吐槽点|窝心呀,赶紧撤掉| + +以上类别是从好到坏(对用户来说)排列的。 + +### 1. 惊喜型功能 + +又称兴奋型、魅力型功能,指不会被用户过分期望的,或者是用户没有想到的功能。 + +比如 Edge 浏览器在打开 PDF 格式的文件时,会自动在上方出现一个功能条,内含放大、缩小、旋转、全屏、朗读、画笔、高亮、删除、打印、保存等一系列操作 PDF 文档的功能,相当于内置一个基本的 PDF 浏览器软件,这是一个非常好的功能。 + +再比如 Windows 10 的人脸识别登录功能,不用记密码了,安全性也更高了,防止密码泄露。 + +【slide】 + +对于惊喜型功能,随着满足用户期望程度的增加,用户满意度也会急剧上升,但一旦得到满足,即使表现并不完善,用户表现出的满意状况则也是非常高的。反之,即使在期望不满足时,用户也不会因而表现出明显的不满意。 + +比如,人脸识别功能可能会比较慢,十次里有一次不能正确识别,但这不会带来用户的不满,最多会自嘲地说“先进的技术还是不可靠呀”。 + +惊喜型功能往往是以技术导向为主的功能,即计算机科技水平的发展会实现以前人们不曾/不敢想到的功能。 + +### 2. 期望型功能 + +也称为意愿型功能,是指用户的满意状况与功能的满足程度成比例关系的功能,此类功能得到满足或表现良好的话,用户满意度会显著增加。当此类功能得不到满足或表现不好的话,用户的不满也会显著增加。 + +比如初期的 Power Point 中的图形绘制功能,让用户可以方便地绘制自己想要的图形,以丰富演示稿的视觉效果。不但基本图形数量众多,还有线型选择、颜色填充、平面旋转、立体化等多种效果。 + +随着版本迭代,Power Point 中又增加了 SmartArt 图形功能,提供了一系列的视觉表现形式,原本枯燥的文字信息列表,可以变成生动的结构化图形,让用户有耳目一新的体验,最关键的是它可以帮助用户传达给听众更准确的、容易记忆的信息,对商业演讲或者学校教学很有帮助。 + +【slide】 + +这些不断进化的功能,会持续地提高用户对 Power Point 的满意程度。相反,如果不提供这些功能,用户会转而选择其它产品。 + +### 3. 基本型功能 + +也称为必备型功能、理所当然功能,是用户对产品或服务的基本要求。是用户认为产品“必须有”的属性或功能。当其不满足用户功能时,用户很不满意;当其满足用户功能时,用户也可能不会因而表现出满意。 + +比如 Excel 中的表格数学计算,提供了非常多的公式、函数,这也是 Excel 当初占领市场的基础。假设它没有提供计算方差的函数,那么用户会抱怨,即使它提供了其它1000多个函数也没有用。反过来说,它提供了计算方差的函数,用户会认为这是应该具备的功能,并不会因为有了这个函数就给微软写感谢信。 + +### 4. 无差异功能 + +也称为无所谓型功能,不论提供与否,对用户体验无影响。 + +我们以 Word 为例,用三个例子来说明: + + - Word 中提供了一个 WIKIPEIDA 功能,其实就是 APP 内搜索,在不离开 Word 的情况下,可以在 WIKIPEDIA 上搜索名词并以友好格式返回; + - Word 支持了一个开放的 Blog 博客协议,可以把 Word 文档上传到 cnblogs.com 即时发布; + - Word 提供了一个 Transform 功能,可以把 Word 文档发布为一个网页。 + +在浏览器开发和使用如此便利的今天,这几个功能都显得有点儿多余了,即使没有它们的存在,用户还是会继续使用 Word 来写文档。 + +### 5. 反向型功能 + +又称逆向型功能,指引起强烈不满的功能,因为并非所有的消费者都有相似的喜好。许多用户根本都没有此功能,提供后用户满意度反而会下降,而且提供的程度与用户满意程度成反比。 + +例如:笔者乘城铁上下班,使用手机 APP 亿通行的二维码方式进出检票口。有那么一段时间,这个亿通行忽然做起广告来了,而且把广告做到了二维码前面,也就是用户必须先看广告,关闭它,再扫二维码。 + +于是检票口前面堆满了人:因为广告需要下载时间,城铁站里信号不好,半天下载不出来;然后还需要关闭广告,很多人是单手操作手机,手指头够不着关闭按钮。 + +笔者怒不可遏地在 APP 里提交了一条反馈,表达了强烈的不满。好在这种“逆天”的功能很快就取消了,不知道是不是因为 APP 的开发商收到了很多负面反馈。 + +### 参考资料 + +- [1] KANO用户满意度模型 https://en.wikipedia.org/wiki/Kano_model diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.2 \351\234\200\346\261\202\351\207\215\350\246\201\346\200\247\345\210\206\346\236\220.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.2 \351\234\200\346\261\202\351\207\215\350\246\201\346\200\247\345\210\206\346\236\220.md" new file mode 100644 index 000000000..f3ce3c6e7 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.2 \351\234\200\346\261\202\351\207\215\350\246\201\346\200\247\345\210\206\346\236\220.md" @@ -0,0 +1,129 @@ +# 需求重要性分析 + +## 用户满意度的五种级别 + +【slide】 + +由于笔者喜欢流行音乐(还在微软内部组建了一支乐队),所以经常看一些音乐节目,如《歌手》、《乐队的夏天》。节目组通常让普通观众选择“是否喜欢一个歌手或一支乐队”,其实这非常的不合理。观众并非总是理智的,往往凭借一些非常奇怪的原因决定“喜欢”还是“不喜欢”,比如“我不喜欢那个贝斯手的发型”,这就偏离了比赛的本来用意。 + +对待任何事物的好坏的判断,用户的态度一般不是非此即彼的0/1问题,而是有一个过渡。在微软面试中,要求面试官给“Hire”或“No hire”,但有时候太难选择了,所以会出现一个“Weak hire”的选择。 + +但是,在《乐队的夏天》中,节目组会给专业乐迷五分制的投票权力。同理,在调查用户的满意度时,一般也会使用五种级别作为一个平滑过渡的设计。下表就是五种级别和对应的口语化形象描述: + +|非常满意|满意|中间状态|不满意|很不满意| +|--|--|--|--|--| +|太激动了|比较不错|说不上来|不太满意|太差劲了| + +在使用 KANO 模型时,一般采用调查问卷的形式,即正反两个方向的问题: + +- A) 如果Word可以保存为PDF格式,用户的感觉是什么? +- B) 如果Word不能保存为PDF格式,用户的感觉是什么? + +|级别|描述|问题A|问题B| +|--|--|--|--| +|1|太激动了|| +|2|比较不错|$\sqrt{}$| +|3|说不上来|| +|4|不太满意|| +|5|太差劲了||$\sqrt{}$| + +于是我们在上图中的坐标(2,5)做一个标记,表示问题 A 和问题 B 的交点位置。 + +## 定性分析 + +再进一步,通过对问题 A 和 B 的分析,结合上一节所述的产品的五类功能,我们认为“Word可以保存为PDF格式”这个功能是一个期望型功能。这样,就可以得到一个功能的分类了。 + +为什么定位为“期望型”功能呢?我们看看“期望型”功能的定义: + +*也称为意愿型功能,是指用户的满意状况与功能的满足程度成比例关系的功能,此类功能得到满足或表现良好的话,用户满意度会显著增加。当此类功能得不到满足或表现不好的话,用户的不满也会显著增加。* + +再看一下: + +- 问题 A 的用户反馈是“比较不错”,即“此类功能得到满足或表现良好的话,用户满意度会显著增加”; + +- 问题 B 的用户反馈是“太差劲了”,即“当此类功能得不到满足或表现不好的话,用户的不满也会显著增加”。 + +正反两个方面的回答完全符合期望型功能的定义。 + +通过对不同的问题得到的交点位置做分析,我们可以得到所有25个交点所属的功能分类,如下图: + +【slide】 + +可以看到: +- 中间有两个红色的“惊喜型” +- 右上角是绿色的“期望型” +- 右侧有两个蓝色的“基本型” +- 对角线上有三个黄色的“无差异型” +- 左下角是一堆“反向型” + +以此方法,我们就得出了每个功能所属的分类。 + +还有几个问号所处的位置,是不可能出现的分类。比如左上角的那个问号,相当于问: +- A) 如果有功能F,用户满意吗?用户答“太激动了”; +- B) 如果没有功能F,用户满意吗?用户答“太激动了”。 + +从逻辑上分析,如果问题A得到肯定的回答,那么不可能也会对问题B有肯定的回答。其它几个问号都是类似的情况。 + +不同的人对图中交叉点的位置所属类型的持有不同的观点,图中只是笔者自己的观点。 + +## 定量分析 + +KANO 图还可以有定量分析,但是需要大量的调查问卷数据,比较难以实现,所以我们在此只是讲解一下定量分析的结论:四区域分类法。至于定量分析的过程,有兴趣的同学可以参考相应的资料$^{[1]}$。 + +关于“四区域分类法”,在很多资料中,包括笔者给的参考资料中,有的写四象限法,有的写四分位法,这都是错误的命名。我们先解释四区域法的分析过程,后面再说上面两种叫法为什么是错误的。 + +笔者发现,即使不计算 better-worse 系数$^{[1]}$,也可以得到同样的结果:在图??中,各个区域有明显的分割线: + +- 首先,我们不考虑问号的情况,因为它无意义; +- 其次,我们不考虑反向型的功能,因为它比较容易分辨; +- 在惊喜型和期望型之间,有一条竖的分割线; +- 在期望型和基本型之间,有一条横的分割线; +- 把无差异型的范围稍微缩小一些。 + +然后我们可以得到一个四部分的区域图: + +【slide】 + +四个图中的坐标轴的含义是相同的: + +- 横坐标:不提供某个功能时,用户会的不满意程度,从左到右增加,用线 B 的长度表示; +- 纵坐标:提供某个功能时,用户的满意程度,从下到上增加,用线 A 的长度表示。 + +### 惊喜型功能 + +处于左上角的区域。 + +- 当提供此功能时,A 的长度显著增加,表示满意度剧增; +- 当不提供此功能时,B 的长度没有显著增加,表示没有很大的不满意。 + +### 期望型功能 + +处于右上角的区域。 + +- 当提供此功能时,A 的长度显著增加,表示很满意; +- 当不提供此功能时,B 的长度显著增加,表示很不满意。 + +### 无差异功能 + +处于左下角的区域。 + +- 当提供此功能时,A 的长度没有显著增加,表示满意度不高; +- 当不提供此功能时,B 的长度没有显著增加,表示没有很大的不满意。 + +### 基础型功能 + +处于右下角的区域。 + +- 当提供此功能时,A 的长度没有显著增加,表示满意度不高; +- 当不提供此功能时,B 的显著增加,表示有很大的不满意。 + +我们再回过头说说上面提到的两种错误叫法: + +- 四象限法:象限是指平面直角坐标系上,由横纵坐标轴所分割的四个区域,以零点为中心。我们所面对的问题虽然是处于平面直角坐标系上,但是零点在左下角,四个区域都是在第一象限。 + +- 四分位法:四分位是统计学的一个名词,是指处于一维坐标上的数据中,处于25%分位和75%分位的数值。我们所面对的问题是一个二维平面上的分类问题,不能使用四分位的叫法。 + + +### 参考资料 + +- [1] KANO分析模型 https://baike.baidu.com/item/KANO%20%E6%A8%A1%E5%9E%8B/19907824 \ No newline at end of file diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.3 \351\234\200\346\261\202\347\253\236\344\272\211\347\255\226\347\225\245.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.3 \351\234\200\346\261\202\347\253\236\344\272\211\347\255\226\347\225\245.md" new file mode 100644 index 000000000..c7ca08bf4 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.3 \351\234\200\346\261\202\347\253\236\344\272\211\347\255\226\347\225\245.md" @@ -0,0 +1,102 @@ +# 需求竞争策略 + +根据 KANO 模型,我们得到了四个区域的功能划分,这其实和传统的“紧急/重要四象限法则”是同一个道理。 + +【slide】 + +### 无差异功能 + +人有我无或人无我无。 + +最简单的就是无差异功能了,属于不紧急不重要。 + +这类功能,如果已经存在了的话,就放在那里不要动了吧,两个原则: + +1. 只要它不影响新功能实现,或者说和新功能没有矛盾; +2. 它还能正常工作,不会被某一次的软件更新破坏掉。 + +这也是满足一些老用户的需要,向后(低版本)兼容。如果通过统计发现使用率太低了,那就可以干脆去掉了。使用率需要通过两方面来衡量: + +1. 百分比,比如低于0.01%,即万分之一; +2. 同时,低于一个绝对值,比如每个月仅有100次使用。 + +这二者缺一不可,因为用户群总数是未知的,千万级的总用户量,即使是万分之一,用户量也还是客观的。如果总用户量少,每个月100次造访使用量(unique user)也是客观的,我们不能丢失掉这100个用户。 + +在这类功能上的投入力度建议:小于5%。 + +### 基本型功能 + +人有我有。 + +基本型功能属于紧急不重要的。不重要不代表不做,而是说赶紧做完后,就不要再费心思考虑它们了。 + +不同的软件的基本功能都有不同的定义,这主要取决于“业界”的共识,即你的产品和其它竞争对手的产品所共有的功能。如果有新加入的竞争者,它也必须实现这些基础功能才能站稳脚跟。 + +对于这个类别的功能,我们主要以低成本维持为主,不需要超过竞争对手的品质。比如,Chrome 浏览器可以容纳4096个网页收藏,那么 Edge 浏览器非要容纳8192个网页收藏也没什么意义,因为没有用户需要那么多网页收藏。 + +在这类功能上的投入力度建议:10%~15%。 + +### 期望型功能 + +人有我优。 + +期望型功能属于紧急且重要的,这是软件产品的核心竞争力所在,需要花大力气来做,并保持行业领先。 + +在微软必应搜索产品的开发上,必应团队为了从谷歌的搜索市场中抢到份额,先是经历了痛苦的“基本型”功能的开发,当时讲的最多的一句话就是“fix the gap”,即弥补差距。到了后来,系统逐步完善,也积累了一定的用户量,产品团队改变了关注焦点,口号变成为“钢需、痛点、海量”,即解决用户的真正需求。 + +钢需、痛点,这两个衡量点都容易理解,“海量”的意思是用户量,由于必应搜索的用户量是千万级别的,所以如果一个功能不能满足百万级别以上的用户,这个功能就不要考虑花资源去做了。 + +在这类功能上的投入力度建议:55%~60%。 + +### 惊喜型功能 + +人无我有。 + +惊喜型功能属于不紧急但重要的。“不紧急”指的是在商业利益上,该类功能目前还不是主力创收来源,但是放眼未来的赢利点,实现差异化优势,它们却是最重要的。 + +佛教中有个说法叫做“顿悟”,就是忽然发明/发现了一个新功能,但实际上是不可能有顿悟的事件发生的,都是水滴石穿、集腋成裘的结果。宋词中的“崆峒访道至湘湖,万卷诗书看转愚。踏破铁鞋无觅处,得来全不费功夫。”很多人只看到了“不费功夫”,却没有看到“踏破铁鞋”。 + +惊喜型功能,是建立在对产品的熟悉、对技术的追求基础上的,厚积薄发,才有可能出现一个案例。比如 Windows Hello face(人脸识别)登录技术,是建立在以下技术基础上的: + +- 高分辨率摄像头,并且是双通道,可以识别景深; +- 人脸数字化特征提取技术; +- CPU 的高速计算能力。 + +可以看到,其中有硬件、软件、算法的多方面结合,才能实现这个功能。 + +在这类功能上的投入力度建议:15%~20%。 + +## 需求的变化 + +需要注意的是:需求总在持续变化。正因为需求在持续变化,所以产品经理需要持续调研功能、产品需要持续迭代,与时俱进才能取得成绩。 + +变化主要包括如下因素: + +### 1. 需求会因人而异 + +由于教育水平、工作性质、年龄阶段等的差别,人们的需求各不不同。 + +比如我们上面举的例子中,关于Word的三个看似无用的功能,也许有的人没有浏览器使用基础(比如一些老人),这些功能对他们来说就是很大的一个帮助。 + +### 2. 需求会因为文化差别而不同 + +在中国的即时消息通信软件中,各种搞笑的表情包被广泛使用,有些甚至是付费购买的。表情包通常是漫画形式的,体现出创作者的别具匠心。 + +微软的 Teams 团队协作软件功能强大,其中的消息模块也有发送表情包的功能,但是由于是美国文化,表情包都是那种电影里截出来的人物表情片段,中国人使用起来觉得特别别扭,所以在日常通信中,笔者及其它同事们都很少使用表情包。 + +### 3. 需求会随着时间变化 + +昨天的期望型功能,甚至惊喜型功能,到今天可能已变成了必备型功能。 + +在上面举的 Power Point 的例子中,图形绘制已经变成基本型功能了,没有的话会带来极大的不满。SmartArt 功能在刚开始出现时,可能还是惊喜型功能,随着产品迭代,也会慢慢退化成期望型功能。 + +再比如上面的Word的三个例子,在当初也很可能是惊喜型功能,今天快成退化为无差异功能了。 + +### 4. 需求会随着产品地位而变化 + +SmartArt 对 Power Point 这个产品本身来说,开发者要持续对这个功能的维护,比如增加更多的组合图形,是一种期望型功能。但是对于其它竞争者来说,没有这个功能的话,就根本别想进入市场了,那么这个功能就会变成基本型功能。 + +所以对于后来者、竞争者来说,用户对它们的要求是必须提供惊喜型功能,或者提供很多期望型功能,才有可能后来居上。 + +### 参考资料 + diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.6 \351\234\200\346\261\202\346\214\226\346\216\230.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.6 \351\234\200\346\261\202\346\214\226\346\216\230.md" new file mode 100644 index 000000000..d09fe448a --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/7.6 \351\234\200\346\261\202\346\214\226\346\216\230.md" @@ -0,0 +1,11 @@ +# 竞争与理性 + +NABCD + +需求挖掘 + +需求来源 + +避免非理性需求 + +需求的演进 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/Images/swing.png" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/Images/swing.png" similarity index 100% rename from "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/Images/swing.png" rename to "A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \347\224\250\346\210\267\344\270\216\351\234\200\346\261\202/Images/swing.png" diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.3 \351\234\200\346\261\202\345\261\202\346\254\241.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.3 \351\234\200\346\261\202\345\261\202\346\254\241.md" deleted file mode 100644 index dd576108a..000000000 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/5.3 \351\234\200\346\261\202\345\261\202\346\254\241.md" +++ /dev/null @@ -1,9 +0,0 @@ - - - -比如微信和 QQ,基本上是“全民皆兵”,因为个人即时通信是现代社会最基本的需求之一。在国内,第二个大需求是新闻、信息、娱乐类,如各种视频、新闻应用;第三类是购物,如淘宝、拼多多、京东、支付宝;第四类是微博、音乐、天气等。 - - - - -马斯洛需求层次理论 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/MSN.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/MSN.md" deleted file mode 100644 index 82174952b..000000000 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2543\351\203\250\345\210\206 \351\234\200\346\261\202\347\232\204\350\260\203\347\240\224\344\270\216\345\210\206\346\236\220/MSN.md" +++ /dev/null @@ -1,44 +0,0 @@ -# MSN是如何陨落的 - -即便是MSN Messenger的重度用户和“铁粉”,依旧可以轻而易举地列出当时这款软件的几大缺点: - -第一,传输文件非常不方便,大一点的文件在传输过程中很容易发生中断。以至于白领之间经常会出现一个滑稽的场景——用MSN聊天,让对方留下QQ号来传文件。 - -第二,“群”的功能非常弱,基本就是抓一些人进来聊天而已。而QQ在“建群”这件事上下了非常深的功夫,服务也做得非常好,成了黏住用户的一大法宝。 - -第三,相当长一段时间里没有隐身功能,没有离线留言功能,这些在QQ上都是最基本的功能。如果说MSN Messenger上“表情包”匮乏,没有“虚拟道具”,对此大家还有各自不同看法的话,那么有些核心功能的缺失是让人接受不了的。 - -第四,每一个人的对话框只能显示在下面的状态栏,无法像QQ那样收缩进屏幕右下角的一个闪烁图标。这个从技术上实现其实并不难,但MSN Messenger就是不改,让人使用起来非常不便。 - -类似的细节其实还是有非常多,MSN Messenger在给人“逼格”的同时,也给人在用户体验上一种高冷的感觉——你要适应我,不是我适应你。 - -2005年12月,一个更糟糕的消息传来: - -微软发布Live战略,MSN被整合到了Windows Live的平台下,而MSN Messenger从一个小巧独立的聊天工具,转变为一个大工具包——其中很多东西用户未必需要。 - - -这是MSN Messenger在即时通讯产品竞争道路上重要的一个转折点。 - -而这个转折点的背后,折射出的是这款产品由盛转衰的一个重要原因: - -站在背后的微软公司。 - -5 - -曾经有一首歌是这么唱的:“我有一个好爸爸,我有一个坏爸爸”。 - -对于MSN而言,微软公司就是这样一个“好爸爸”和“坏爸爸”的共生体。 - -毫无疑问,如果没有“微软”这棵大树,整个MSN的业务都不可能如此迅猛的发展,MSN Messenger也不可能自带“贵族”光环,让商务人士和白领产生一种天然的亲近感。 - -但问题也出在这里:“微软”的这棵树实在太大了,它根本没精力,也觉得没必要去特别照顾“MSN”这棵小树杈。对于微软而言,“Windows”系列和“Office”系列才是最大的根基,而其他的小树杈,都必须服从根基的整体发展战略。 - -由此,MSN Messenger身上各种毛病,也都找到了根源: - -传输文件太慢且容易中断?那是因为微软长期不肯把MSN的服务器放到中国。甚至有一次因为海底光缆断裂,造成了中国MSN用户的集体断网,使得用户体验大打折扣。 - -缺少各种看似简单的细节功能?其实MSN中国的内部对很多细节改进打过各种报告,但一系列的邮件经过抄送和转发,层层审批,周游全球,最终要么被拒绝,要么等批下来时,黄花菜都凉了。 - -始终给人一种不肯改进的印象?那是MSN在中国的市场长期被忽视。举个很简单的例子:MSN Messenger的更新是在中国白领白天的工作时间进行的,为什么?因为那是欧美用户的非工作时间。那能分区域更新吗?不行,必须全球同步更新。 - -https://mini.eastday.com/a/190821074638925-8.html diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2544\351\203\250\345\210\206 \347\224\250\346\210\267\347\225\214\351\235\242\344\270\216\344\272\244\344\272\222/1. UI" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2544\351\203\250\345\210\206 \347\224\250\346\210\267\347\225\214\351\235\242\344\270\216\344\272\244\344\272\222/1. UI" index e69de29bb..194d82c6f 100644 --- "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2544\351\203\250\345\210\206 \347\224\250\346\210\267\347\225\214\351\235\242\344\270\216\344\272\244\344\272\222/1. UI" +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2544\351\203\250\345\210\206 \347\224\250\346\210\267\347\225\214\351\235\242\344\270\216\344\272\244\344\272\222/1. UI" @@ -0,0 +1 @@ +https://baike.baidu.com/item/Alan%20cooper/3435842 diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2545\351\203\250\345\210\206 \350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/1 \345\276\256\350\275\257\345\260\217\345\250\234\346\230\257\345\246\202\344\275\225\345\244\261\350\264\245\347\232\204.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2545\351\203\250\345\210\206 \350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/1 \345\276\256\350\275\257\345\260\217\345\250\234\346\230\257\345\246\202\344\275\225\345\244\261\350\264\245\347\232\204.md" new file mode 100644 index 000000000..e69de29bb diff --git "a/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2546\351\203\250\345\210\206 \346\265\213\350\257\225\344\270\216\350\264\250\351\207\217/intro.md" "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2546\351\203\250\345\210\206 \346\265\213\350\257\225\344\270\216\350\264\250\351\207\217/intro.md" new file mode 100644 index 000000000..6079ebb83 --- /dev/null +++ "b/A-\345\237\272\347\241\200\346\225\231\347\250\213/A5-\347\216\260\344\273\243\350\275\257\344\273\266\345\267\245\347\250\213\357\274\210\346\233\264\346\226\260\344\270\255\357\274\211/\347\254\2546\351\203\250\345\210\206 \346\265\213\350\257\225\344\270\216\350\264\250\351\207\217/intro.md" @@ -0,0 +1,2 @@ +面试测试人员 +mobile edge testing