炼金术(1): 识别项目开发中的ProtoType、Demo、MVP
软件开发是很分裂的,只有不断使用原则和规律,才能带来质量。
只要不是玩具性质的项目,项目应该可以大概划分为0-1,1-10,10-100,100-1000四个种重要阶段。其中,0-1是原型验证性的;1-10是Demo展示性的;而10-100是项目的最小功能集,可以让产品初步达到可以第一次发布的阶段;最后100-1000则需要对项目做持续的迭代,完善项目的完整功能,达成完整发布。
项目立项的时候,可以为一个项目做出原型(ProtoType)。项目原型是内部用的,使用的开发工具也可以是内部的。原型的核心目的是验证项目的核心能力,以及这个核心能力是有价值的,值得我们为之发起一个团队项目去设计、实现、测试、发布产品。原型对应的是项目的0-1阶段。
项目立项之后,可以为一个项目做出Demo。项目Demo是对外的,Demo要至少能看能用能展示核心功能。Demo的核心目的是展示项目的核心功能,让外部看到产品能提供的一些关键和核心能力,作为项目可以达成目标的初步证明。Demo对应的是项目的1-10阶段。
Demo阶段过后,需要立即对项目整体功能做功能规约,找出项目完整功能的最小子集,也就是所谓的MVP(Minimum Viable Product),如下图中,从项目的大金字塔中切出一个产品真正的MVP部分,也就是如下的阴影部分。并且在这个基础上控制需求、人力、时间、金钱等成本优先做好这些阴影部分,以达到第1个产品可用功能发布。MVP发布是一个核心功能完备的可用的产品,它不是Demo、更不是ProtoType。在MVP阶段,如果需求、人力、时间、金钱没有做好严格控制,就会导致MVP膨胀,从而大概率就会延期,并且无法形成项目的良性的短周期设计-开发-测试-发布-反馈循环。

识别项目开发中的ProtoType、Demo、MVP,对于项目初期控制是有用的,这三者应该被识别出来。
参考资料:
[1] Demos, Prototypes, and MVPs
--end--
炼金术(1): 识别项目开发中的ProtoType、Demo、MVP的更多相关文章
- 团队项目开发中,常见的版本控制有svn,git
团队项目开发中,常见的版本控制有svn,git
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- Angular 项目开发中父子组件传参
在项目开发中经常会遇到 组件之间传参的问题.今天总结下在使用angular的项目中父子组件传参的问题: 1.父组件向子组件传参: 然后在父组件中 然后在父组件的html中 然后就可以在子组件中使用了 ...
- 《Maven在Java项目开发中的应用》论文笔记(十七)
标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...
- 项目开发中的git简单使用
原文地址: https://www.zhuyilong.fun/tech/the-blog-git.html 示例远程仓库地址: https://github.com/zhu-longge/gitWo ...
- MyBatis 项目开发中是基于 XML 还是注解?
只要你对 MyBatis 有所认识和了解,想必知道 MyBatis 有两种 SQL 语句映射模式,一种是基于注解,一种是基于XML. 基于 XML <mapper namespace=" ...
- Java项目开发中实现分页的三种方式一篇包会
前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...
- 项目开发中Maven的单向依赖-2022新项目
一.业务场景 工作多年,在真实的项目开发中经常会遇到将一个项目拆分成多个工程的情况,比如将一个真实的项目拆分成controller层,service层, dao层,common公共服务层等等.这样拆分 ...
- iOS项目开发中的知识点与问题收集整理①(Part 一)
前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在 ...
随机推荐
- HTML学习(15)框架
通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. <iframe src="//www.taobao.com" name="iframe_a" ...
- vue工程 使用滚动组件 vue2-better-scroll 实现上拉加载 下拉刷新
vue2-better-scroll 关于具体安装&使用过程 请移步api文档 已经很详细了 而且超清晰明了. https://cnpmjs.org/package/vue2-better-s ...
- Python核心编程:8个实践性建议
前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...
- 【StarUML】组件图
架构设计中可视化地表达各个组件之间依赖关系以及组件的接口调用情况 1.元素 a.组件 b.接口 b1.组件暴露接口 暴露接口,需要先画一个接口 然后建立组件和接口的联系,这里是暴露接口,那么这个连线就 ...
- 2.4 【配置环境】TestNG安装
两种方法可以安装TestNG Eclipse插件: (来源:http://blog.csdn.net/hongchangfirst/article/details/7679849/) 第一种,离线安 ...
- zookeeper and kafka
kafka安装前期准备: 1,准备三个节点(根据自己需求决定) 2,三个节点上安装好zookeeper(也可以使用kafka自带的zookeeper) 3,关闭防火墙 chkconfig iptab ...
- PHP array_chunk() 妙用
定义和用法 array_chunk()函数把一个数组分割为新的数组块. array_chunk(array,size,preserve_keys); 参数 描述 array 必需.规定要使用的数组. ...
- knn 数字识别
#knn介绍 更多参考百度介绍 算法思想:给定一个带标检的训练数据集(就是带分类结果的样本),对于一个新的输入实例,我们在训练数据集中以某种距离度量方式找出与该输入实例距离最近邻的k个实例.找出这k个 ...
- http://localhost:8080/sockjs-node/info?t=1556418283950 net:: ERR_CONNECTION_REFUSED(亲测有效~!)
如果你的项目没有用到sockjs,vuecli3 运行npm run serve 之后network里面一直调用一个接口:http://localhost:8080/sockjs-node/info? ...
- python函数编程闯关总结
文件处理相关 1,编码问题 (1)请问python2与python3中的默认编码是什么? python .x默认的字符编码是ASCII,默认的文件编码也是ASCII python .x默认的字符编码是 ...