敏捷MVP面面观
在过去的十年中,软件开发经历了许多阶段。从使流程敏捷高效到使用DevOps简化IT服务,已经有了许多突破,MVP是对软件开发过程产生了根本性影响的进步之一。本文将深入探讨MVP在软件开发中怎样起作用、以及如何发挥作用。
什么是MVP
MVP,Minimum
Viable Product即最小化可行产品,是由Eric Ries
在《精益创业》里提出的一种软件开发方法。简单地说,就是指开发团队通过提供最小化可行产品获取用户反馈,并在这个最小化可行产品上持续快速迭代,直到产品到达一个相对稳定的阶段。它涉及到前期开发项目的基本框架,并使用最少的功能和用例,以提前降低成本,识别设计中的缺陷,同时减少上市时间。
为什么要使用MVP开发?
原始形式的软件开发是一个有缺陷的过程,开发人员一度花费大量时间和金钱,最后却发现了错误和问题。因此,MVP开发有助于提前确定主要目标用户需求,最终确定技术堆栈和功能,以及确定价值主张。特别是对于那些有严格预算指导方针的组织来说,重点应该是利用最简单的技术堆栈开发一个有意义的功能列表。
以下步骤对于确定功能并确定其优先级至关重要。
衡量市场需求
检查自己的软件在市场上提供的功能是否存在供应缺口。产品的需求可以基于满足消费者确切期望的消费者反馈。为了确定需求,我们需要分析竞争对手及其在市场上的现有产品。
识别产品的局限性
通过开发,产品的局限有助于利益相关者为未来问题做好准备,并实施适当的规划和替代方案。所有这些限制都带来了市场机会,这将带来有效的敏捷开发和用以区分市场现有产品的差异化。
跳出思维定势
下面这些步骤会让你更接近你的最终目标:
- 为高级功能设置和使用构思
- 确定项目范围
- 列出应用程序的功能和非功能特性
- 执行线框图,然后再做想法原型
完成技术堆栈
技术栈由一堆工具和技术组成,可以部署这些工具和技术来创建和发布产品。这些堆栈包含第三方、库、模块、包和工程工具,与所选择的编程语言兼容。堆栈还必须满足交付相关方所期望的业务价值的需要。
设计原型图
一个前端技术栈以及框架,为开发人员提供了使用完成组件的能力,比应用程序的自定义解决方案部署更快。这些元素可以与思想的主要后端算法联系起来,从而得到一个可测量的MVP。这可以进一步与需求、正确的客户和客户反馈相匹配。
因此,必须制定初始路线图,并与适当的企业应用程序开发服务提供商创建风险登记册。
其实MVP的本质就是在做实验,每个MVP都可以帮助回答一个针对某个假设的问题。之所以要尽可能的低成本去设计MVP,是因为MVP的本质是做实验,是试错,并不是在制造最终的产品,所以要尽可能用现有产品或者人工服务的方式来替代产品开发,尽可能地降低试错的成本。这也符合敏捷开发的“小步快跑、快速迭代”,而二者关系可以用一句话说清:敏捷开发是知道“方向”验证“方法”,最小可行产品是知道“方法”验证“方向”。
敏捷MVP面面观的更多相关文章
- 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM
刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...
- 我大中华微软MVP中国区人才库
刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的Asp.net从业经验,微软MSDN特约讲师.Teched讲师.ImagineCup大赛评委.人大出版社研修班特约讲师,曾多次受邀访问美 ...
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...
- js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?
你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...
- 我大中华微软MVP中国区人才库(转)
出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师 ...
- MVP社区巡讲 12月5日北京站| 12月12日上海站
2015年底的社区巡讲Powered MVP Roadshow正式启动啦!12月5日周六下午北京场,12月12日周六下午上海场. 欢迎各位邀请您的同事朋友来参加MVP的社区活动,也邀请您发送活动信息( ...
- MVC,MVVM,MVP等设计模式的分析
从Script到Code Blocks.Code Behind到MVC.MVP.MVVM 三个模式按照大致的历史进程将这些概念进行划分: Script Code Blocks.Code Behind ...
- 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM(转载)
http://www.cnblogs.com/indream/p/3602348.html 刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code ...
- 敏捷软件开发_实例2<四>
敏捷软件开发_实例2 上一章中对薪水支付案例的用例和类做了详细的阐述,在本篇会介绍薪水支付案例包的划分和数据库,UI的设计. 包的划分 一个错误包的划分 为什么这个包是错误的: 如果对classifi ...
随机推荐
- SpringCloud SpringBoot 组件使用:SpringBoot Actuator
基础篇 一.什么是Spring Actuator? spring-boot-starter-actuator模块是一个spring提供的监控模块.我们在开运行发过程中,需要实时和定时监控服务的各项状态 ...
- 【Android逆向】脱壳项目 frida-dexdump 原理分析
1. 项目代码地址 https://github.com/hluwa/frida-dexdump 2. 核心逻辑为 def dump(self): logger.info("[+] Sear ...
- 具备有效期的localStorage存储
具备有效期的localStorage存储 类方式 // 具备有效期的localStorage存储-类方式. class LocalStorageWrapper { // 存储数据到localStora ...
- 从零开始写 Docker(二)---优化:使用匿名管道传递参数
本文为从零开始写 Docker 系列第二篇,主要在 mydocker run 命令基础上优化参数传递方式,改为使用 runC 同款的匿名管道传递参数. 如果你对云原生技术充满好奇,想要深入了解更多相关 ...
- 【LeetCode哈希表#4】梦开始的地方:两数之和(map),以及关于容器map的一些代码技巧
两数之和 力扣题目链接(opens new window) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种 ...
- 【App Service】遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的调试小工具
问题描述 当应用部署到微软云 Azure后,如果遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的时候,有什么好的调试方法呢? 来判断具体时那一段请求耗时呢? 问题解答 当然 ...
- mysql视图详细笔记
1 #视图 2 /* 3 含义:虚拟表,和普通表一样使用 4 mysql5.1版本出现的新特性,是通过表动态生成的数据 5 6 比如:舞蹈班和普通班级的对比 7 创建语法的关键字 是否实际占用物理空间 ...
- 开源好用的所见即所得(WYSIWYG)编辑器:Editor.js
@ 目录 特点 基于区块 干净的数据 界面与交互 插件 标题和文本 图片 列表 Todo 表格 使用 安装 创建编辑器实例 配置工具 本地化 自定义样式 今天介绍一个开源好用的Web所见即所得(WYS ...
- 视觉slam十四讲CH5 ---相机与图像
视觉slam十四讲 ---CH5 相机与图像 视觉slam中,作为主要传感器的相机自然起到着重要的作用,而相机拍摄的图像及其处理也是我们要做的工作之一. 1. 相机模型 单目相机的针孔模型 上图中的模 ...
- ENVI为遥感影像设置空间坐标系的方法
本文介绍基于ENVI软件,对不含有任何地理参考信息的栅格遥感影像添加地理坐标系或投影坐标系等地理参考信息的方法. 我们先来看一下本文需要实现的需求.现有以下两景遥感影像,其位于不同的空间位置: ...