现代软件工程课件 需求分析 如何提出靠谱的项目建议 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 都写出来。

  1. 用具体的事实和分析说明你项目的特点。特别是要说明自己找到了至少 10 个潜在用户,他们会试用你的产品。 例如你们班的同学, 请把他们的名字写出来。 
  2. 把这些要点都组合成为一段话  --  当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚?  请用你产品中实际的元素代替 <> 中的抽象概念。

全新的产品:

各位领导/投资人/合作伙伴: 我们的 <产品> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>, 但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>,  它能给用户带来好处 <Benefit>, 远远超过竞争对手 <Competitor>, 让潜在的用户成为我们的用户。 同时,我们有高效率的 <Delivery> 方法,能很快地让大部分用户知道我们的产品,并进一步传播。  

增量改进的功能:

各位领导/合作伙伴: 我们的 <功能改进> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>, 但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>,  它能给用户带来好处 <Benefit>, 远远超过竞争对手 <Competitor>,包括我们以前的版本。我们有数据 <Data> (用户调查)支持这一个结论。 我们相信新的改进能给我们带来 <Data> 的业绩改善 (用户量,使用时间,评价,收入)。   

 3. 把上面的这段话录制为视频,上传到视频网站,并把链接发到个人/团队博客上。 

 

 【作业2】 以终为始,假设一切顺利,产品发布了,你怎么宣传这个产品呢?请写一个新闻稿,描述你的新产品在新闻发布会上的情况

标题
  用读者(你的目标客户)能理解的方式给产品起个名字。
副标题
  描述产品的目标客户群,他们将会得到什么好处。在标题下用一句话说清楚。
总结
  总结产品和带来的好处,核心内容。设想你读者只关注这一段,不会再往下看了。
问题
  描述你产品解决的问题。
解决方案
  描述产品如何优雅地解决问题。
你的引证
  引用一位你团队领导所说的话。
如何开始
  描述开始使用我们的产品是多么的简单。
客户评述
  假想一个客户的评价,描述他们如何体验到你产品带来的好处。(这个时候要用到 典型用户和典型场景了)
收尾和号召
  收尾然后为读者指明下一步的方向。

 

 

posted @ 2010-12-01 13:51  SoftwareTeacher  阅读(17355)  评论(11编辑  收藏  举报