现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD
互联网时代对于创新者来说, 既是一个伟大的时代, 又是一个糟糕的时代。 你有很多机会做出影响世界的产品, 但是, 似乎任何想法都被别人想到过了, 做出来了, 上市了, 移植到各种平台上去了… 那么我们后来人除了羡慕别人生得早, 还有什么机会呢? 但是往往不经意间, 在同学们热衷于偷菜, 三国杀, 玩朋友圈的时候, 又一批新的想法, 新的技术蜂拥而至, 别人又想出了新的点子, 新的商业模式. 我们的菜偷了不少, 三国杀玩了好几个通宵, 但是想法还是没有 …
在《现代软件工程》 这门课里, 同学们不能穿新鞋, 走老路 - 学习了很多新技术, 新的开发模式, 新的团队管理方法, 却做一个毫无新意, 没人使用, 演示后就扔掉的东西 (例如: 虚拟的学籍管理系统, 图书馆管理系统…)。 我们要做实用并且创新的项目。
那我们怎么提出新的创意, 怎么说服别人我的创意是靠谱的? 有些同学会通过“二拍”的办法来解决:
- 拍脑袋: 嘿, 咱们做一个图书拍卖网站怎么样?
- 拍胸脯: 没问题的, 市面上Asp.net 的书很多, 我看两个晚上就能写出一个购物网站。
这些事情光靠拍脑袋和拍胸脯是不够的, “二拍" 的后果往往是第三拍 - 拍屁股走人. 有些同学可能还会遭到脑袋被砖头拍, 或者被胸袭的后果。 如果不能拍脑袋, 胸脯, 屁股, 那我们怎么才能想出靠谱的想法, 然后有条理地说服别人? 在宿舍里睡觉, 聚餐, 喝酒, 搞头脑风暴?
下面是一个比较系统的框架 - NABCD 模型, 可供大家参考:
1) N (Need 需求)
你的创意解决了用户的什么需求? 这个需求可以是明确的, 公开的 (例如: 希望能上网玩三国杀). 也可能是说不清道不明的, 例如 - 以前没人说: 嗯, 如果我能找到这样一个网站, 我可以去偷菜, 就好了…
我们要充分了解用户的痛苦, 他们对已有软件, 服务不满意的地方。但是用户往往也不知道颠覆型的创新。 例如亨利 · 福特 当年发明汽车之前, 如果他深入用户之中, 了解他们的需求, 用户会告诉他 - 我希望我的马车更快一些!
需求可以进一步分析:
这是刚性需求,或辅助性需求?需求的量有多大? 需求会一直存在么? 很多同学想象力非常丰富,觉得一定会成千上万的用户来使用我想出来的软件。那么可以实践一下,找到10个潜在用户,他们表示“一定会试用你的软件”, 那么就算你找到了合适的需求 (Need).
2) A (Approach 做法)
好, 你找到了用户的痛苦, 下一步, 得看看你有什么招数, 特别是独特的招数, 来解决用户的痛苦。 你不能说我会C++, Java,所以我一定可以写好这个软件. 你得有独特的办法, 例如, 有人脸识别技术, 会做超大规模的数据处理。 那你 (你的团队) 会什么呢? 只会冒泡排序?
这些招数不光是技术上的, 也可以是商业模式上的, 地域的, 人脉的, 行业的.
招数也可以进一步分析:
基本的招数, 独特的招数, 招数的可行性, 技术可行性,法律法规可行性。
一个刚成立的团队,他们对自己的实际能力往往不太了解。 例如有学生说 - 我懂 Java,其实他只是上过一个讲Java 的课,开卷考试通过而已,和在实际中能用 Java 语言和相关的框架按时按量地完成任务还差得很远。 那么,团队会碰到什么困难,团队成员有什么能力和办法来解决这些困难呢? 请讲一讲。
3) B (Benefit 好处)
这时候你已经弄清了需求,有了独特的解决问题的办法, 那你这个产品/服务会给客户/用户带来什么具体好处呢? 如果用户已经有一个解决方案 (例如用户已经在用 QQ 聊天), 那你的产品具体有哪些好处, 能让用户离开现有产品, 使用你的产品来聊天呢? 另外这还有一个 Benefit/Cost (成本) 的问题。 如果你要用户必须有8G 内存, 最好的视频驱动, 20M 宽带连接, 才能使用你的 “更好的”视频聊天工具, 那会有多少用户愿意支付这个成本呢?
Benefit 还可以指对自己团队/公司的好处。
4) C (Competitors 竞争)
竞争对手也没有闲着, 这个市场有多大, 目前有多少竞争者在瓜分, 你了解么? 竞争者是单独的,还是存在一个行业链,各个阶段的竞争者都一样么? 你如果不是最先进入某个市场的产品, 你还能赢么? 我们的新想法可能要和已有的产品竞争,说服用户放弃一个已经使用了一段时间的产品,来用我们的产品,是有不少困难。
请注意:我们的NABCD中的 N (Need)需求,要经得起考验。 例如:问:你希望有一个帮你记得事情的程序么? 答:需要!好! 但是问题就不能这样简单地解决了(太肤浅)。 项目组还要再问:现在市场上已经有很多这样的程序,为何它们没有帮助到你? 为何我这个程序就一定能帮到你? 为何你一定会坚持用这个程序? 要说明项目组的程序为何能成为用户较长时间使用的产品,优于现有产品(列出具体理由)。
例如:项目小组问用户:“你希望有一个帮你记得事情的程序么?” 答:需要!项目组说:“好!说明我们会有很多用户。调查圆满成功!”
且慢! 问题就不能这样简单地解决了(太肤浅)。 项目组还要再问:现在市场上已经有很多这样的程序,为何它们没有帮助到你? 为何我这个程序就一定能帮到你? 为何你一定会坚持用这个程序? 要说明项目组的程序为何能成为用户较长时间使用的产品,优于现有产品(列出具体理由)
我们还要想到, 还有一个隐藏着的竞争对手是 “不消费” -- 很多用户根本就不用这个领域的任何产品, 你怎么能让他们完成从 0 到 1 的转变? 如果你成为他们的第一个产品,那你就是 First Mover, 有很多优势。 大家可以看看有关 First Mover Advantage (FMA), Second Mover Advantage (SMA) 的描述。
关于更多NABC 以及相关的案例, 论述, 大家可以看这本很厚的书 - Innovation: The Five Disciplines for Creating What Customers Want
5) D (Delivery 交付, Data 数据)
在练习了多次的 NABC 之后, 我意识到也许还应该加一个D: Delivery。 怎样把你的创新产品交到用户的手中?
例1, 你想到了一个好主意, 建一个比 hao123 更好的导航页面! 我们姑且认为NABC 都没问题, 那如何把这么好, 这么简单的产品交到 (Deliver) 用户手中呢? 用户怎么能知道你的产品?你如何利用互联网(或者其他途径)把这一福音传遍你的目标用户? 这一方面在早期的软件开发者的角度来看,应该是 “市场部门” 该做的事。 但是,现在网络已经成为绝大多数软件产品一一部分,对社交网络的应用不会发生在产品开发完毕之后,而是在早期就会成为产品规划和功能的一部分。
例2, 你想到了一个手机的应用, NABC 都不错, 那如何把产品交到千万个用户手中呢? 你怎么去找到你的目标用户?光靠在几个App 市场去投放么,谁会看见这个App 呢?这是远远不够的!
除了交付给用户的手段,你还要了解你的应用到底产生了什么效果。 我们还要看 D: Data 你有什么数据来证明新的功能带来的好处? 团队做了用户调查么? 有什么量化的指标, 例如 NPS(净推荐值)?
注意,“创新”可以分为改良性的创新 incremental innovation - (软件中增加几个功能, 把某个程序变得更快一点, 把程序移植到新的平台), 和颠覆性的创新 (disruptive innovation). 这两种类型各有其重要性, 颠覆性的创新往往还没有明确定义的市场或竞争对手,但并不能说此类创新的威力不大, 创新者要锻炼表达能力,把自己项目真正的独特之处展现出来。
【作业】请同学们把自己项目的NABCD 都写出来。
- 用具体的事实和分析说明你项目的特点。特别是要说明自己找到了至少 10 个潜在用户,他们会试用你的产品。 例如你们班的同学, 请把他们的名字写出来。
- 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
全新的产品:
各位领导/投资人/合作伙伴: 我们的 <产品> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>, 但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>, 它能给用户带来好处 <Benefit>, 远远超过竞争对手 <Competitor>, 让潜在的用户成为我们的用户。 同时,我们有高效率的 <Delivery> 方法,能很快地让大部分用户知道我们的产品,并进一步传播。
增量改进的功能:
各位领导/合作伙伴: 我们的 <功能改进> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>, 但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>, 它能给用户带来好处 <Benefit>, 远远超过竞争对手 <Competitor>,包括我们以前的版本。我们有数据 <Data> (用户调查)支持这一个结论。 我们相信新的改进能给我们带来 <Data> 的业绩改善 (用户量,使用时间,评价,收入)。
3. 把上面的这段话录制为视频,上传到视频网站,并把链接发到个人/团队博客上。
【作业2】 以终为始,假设一切顺利,产品发布了,你怎么宣传这个产品呢?请写一个新闻稿,描述你的新产品在新闻发布会上的情况
标题
用读者(你的目标客户)能理解的方式给产品起个名字。
副标题
描述产品的目标客户群,他们将会得到什么好处。在标题下用一句话说清楚。
总结
总结产品和带来的好处,核心内容。设想你读者只关注这一段,不会再往下看了。
问题
描述你产品解决的问题。
解决方案
描述产品如何优雅地解决问题。
你的引证
引用一位你团队领导所说的话。
如何开始
描述开始使用我们的产品是多么的简单。
客户评述
假想一个客户的评价,描述他们如何体验到你产品带来的好处。(这个时候要用到 典型用户和典型场景了)
收尾和号召
收尾然后为读者指明下一步的方向。