互联网时代对于创新者来说, 既是一个伟大的时代, 又是一个糟糕的时代。 你有很多机会做出影响世界的产品,  但是, 似乎任何想法都被别人想到过了, 做出来了, 上市了, 移植到各种平台上去了…  那么我们后来人除了羡慕别人生得早, 还有什么机会呢?  但是往往不经意间, 在同学们热衷于偷菜, 三国杀, 玩朋友圈的时候,  又一批新的想法, 新的技术蜂拥而至, 别人又想出了新的点子, 新的商业模式.  我们的菜偷了不少, 三国杀玩了好几个通宵,  但是想法还是没有 …

在《现代软件工程》 这门课里, 同学们不能穿新鞋, 走老路 - 学习了很多新技术, 新的开发模式, 新的团队管理方法, 却做一个毫无新意, 没人使用, 演示后就扔掉的东西 (例如: 虚拟的学籍管理系统, 图书馆管理系统…)。  我们要做实用并且创新的项目。

那我们怎么提出新的创意, 怎么说服别人我的创意是靠谱的?  有些同学会通过“二拍”的办法来解决:

- 拍脑袋: 嘿, 咱们做一个图书拍卖网站怎么样?

- 拍胸脯: 没问题的, 市面上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 竞争)

竞争对手也没有闲着, 这个市场有多大, 目前有多少竞争者在瓜分, 你了解么? 竞争者是单独的,还是存在一个行业链,各个阶段的竞争者都一样么?  你如果不是最先进入某个市场的产品, 你还能赢么?

大家可以看看有关 First Mover Advantage (FMA),  Second Mover Advantage (SMA) 的描述。

关于更多NABC 以及相关的案例, 论述, 大家可以看这本很厚的书 -

Innovation: The Five Disciplines for Creating What Customers Want

5) D (Delivery 交付)

在练习了多次的 NABC 之后, 我意识到也许还应该加一个D: Delivery。 怎样把你的创新产品交到用户的手中?

例1, 你想到了一个好主意, 建一个比 hao123 更好的导航页面!  我们姑且认为NABC 都没问题,  那如何把这么好, 这么简单的产品交到 (Deliver) 用户手中呢?   用户怎么能知道你的产品?你如何利用互联网(或者其他途径)把这一福音传遍你的目标用户?  这一方面在早期的软件开发者的角度来看,应该是 “市场部门” 该做的事。  但是,现在网络已经成为绝大多数软件产品一一部分,对社交网络的应用不会发生在产品开发完毕之后,而是在早期就会成为产品规划和功能的一部分。

例2, 你想到了一个手机的应用, NABC 都不错,  那如何把产品交到千万个用户手中呢?

【作业】请同学们把自己项目的NABCD 都写出来。

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

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

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

注意,“创新”可以分为改良性的创新 incremental innovation - (软件中增加几个功能,  把某个程序变得更快一点,  把程序移植到新的平台), 和颠覆性的创新 (disruptive innovation).   这两种类型各有其重要性, 颠覆性的创新往往还没有明确定义的市场或竞争对手,但并不能说此类创新的威力不大, 创新者要锻炼表达能力,把自己项目真正的独特之处展现出来。

本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html,如需转载请自行联系原作者

现代软件工程讲义 如何提出靠谱的项目建议 NABCD的更多相关文章

  1. 用NABCD法提出靠谱的项目建议

    在项目中提出靠谱的建议,一方面能提高项目成功的概率,另一方面锻炼自己能力提升自己在项目中的影响力,所以我们要尽可能抓住机会在项目中提建议.那要如何提出靠谱的建议呢?从需求出发,明确做法和好处,分析竞争 ...

  2. 邹欣,现代软件工程讲义:单元测试&回归测试

    http://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html 邹欣, 现代软件工程讲义 2 开发技术 - 单元测试 & 回归测试

  3. 高级软件工程2017第6次作业--团队项目:Alpha阶段综合报告

    高级软件工程2017第6次作业--团队项目:Alpha阶段综合报告 Deadline:2017-10-30(周一)21:00pm (注:以下内容参考集大作业4,集大作业5,集大作业6,集大作业7 一. ...

  4. 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

    软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...

  5. 201771030121-王国伟 实验一 软件工程准备—<问题提出与博客首秀>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 本次作业要求链接 https://www.cnblogs.com/nwnu- ...

  6. KB奇遇记(7):不靠谱的项目实施计划

    在ERP项目启动前期,项目组两方项目经理和我等几个人单独跟总裁开会,讨论了初步的ERP实施计划,本来第一期上线只是考虑上其中一家工厂而已,结果临时加入了深加工的工厂.本来项目组预定计划是2017年1月 ...

  7. 高级软件工程2017第7次作业--团队项目:Beta阶段综合报告

    Deadline:2017-11-06(周一) 21:00pm (注:以下内容参考集大作业8 集大作业9 集大作业10 ) 0.评分规则: 按时交 - 有分,内容包括以下5个方面: Beta阶段敏捷冲 ...

  8. 高级软件工程2017第6次作业——团队项目:Alpha阶段综合报告

    1.版本测试报告 1.1在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? Bug分类 Bug内容 Fixed 编辑博文时改变文字格式会刷新界面 Can't reproduced 无 N ...

  9. 高级软件工程2017第5次作业—— 团队项目:需求改进&系统设计

    Deadline:2017-10-23(周一) 21:00pm 注:以下内容参考 集大作业 1.评分规则: 按时交 - 有分,检查的项目包括后文的四个方面 需求&原型改进 - 20分 系统设计 ...

随机推荐

  1. Hadoop(九):Shuffle组件

    重温MR整体流程 工作流程 开始执行输入(InputFormat),先对文件进行分片,然后读取数据输入到Map中. Mapper读取输入内容,解析成键值对,1行内容解析成1个键值对,每个键值对调用一次 ...

  2. 谁给你说的 Ubuntu 不可以输入中文

    文章更新于:2020-04-04 按照惯例,需要的文件附上链接放在文首 文件名:sogoupinyin_2.3.1.0112_amd64.deb 文件大小:25.5 MB 下载链接:https://w ...

  3. Linux网络安全篇,FTP服务器的架设

    一.FTP简介 FTP基于TCP协议.而且FTP服务器使用了命令通道和数据流通道两个连接.两个连接都会分别进行三次握手.在命令通道中客户端会随机取一个大于1024的端口与FTP服务器的21端口建立连接 ...

  4. JAVA中Calendar 类的应用

    转自:https://www.imooc.com/code/2340 侵删! Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法 ...

  5. 数据结构-Python 字典

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示 d = ...

  6. Struts2-学习笔记系列(13)-类型转换异常和校验器

    Struts2框架有默认的类型转换错误拦截机制,该配置在struts-default.xml中,名叫conversionError,但是想使用需要继承ActionSupport. 默认的错误提示信息是 ...

  7. winform怎么实现财务上凭证录入和打印

    序言 现如今存在的财务软件层出不穷,怎么样让自己的业务系统与财务系统相结合,往往是很多公司头痛的问题.大多数公司也没有这个能力都去开发一套属于自己的财务软件,所以只有对接像金蝶用友这类的财务软件,花费 ...

  8. 【Tool】IDEA配置Maven依赖管理

    IDEA配置Maven 打开IDEA,在项目界面打开[File] — [Settings] 找到构建工具,下面第一个就是Maven 主选项更换我们自己的主目录和设置目录与本地仓库 勾选[打印异常捕获信 ...

  9. Python爬取抖音高颜值小视频

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 有趣的python PS:如有需要Python学习资料的小伙伴可以加 ...

  10. Spring Cloud 系列之 Gateway 服务网关(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Gateway 服务网关(一) 本篇文章讲解 Gateway 网关的多种路由规则.动态路由规则(配合服务发现的路由规则 ...