敏捷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 ...
随机推荐
- python 创建动态类
一般情况下多数是预先定义类 而少数特殊情况就需要去动态创建类了,直接贴代码. class BaseModel(Model): class Meta: database = _tb class_new ...
- Windows11补丁更新后无法使用Wifi和蓝牙
最近在我的ThinkPAD T14上更新了Windows 11补丁,重启后Wifi和蓝牙鼠标都不能使用了,无法连接Wifi网络,也无法添加蓝牙设备. 使用厂家自带的管理工具查看驱动都是最新的,一度不知 ...
- 万字Java进阶笔记总结
JavaApi 字符串 String 注意:Java中"=="操作符的作用: 基本数据类型:比较的是内容. 引用数据类型比较的是对象的内存地址. StringBuffer/Stri ...
- 问题:AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
分析 在使用支付宝沙箱时,报了这个错误,该问题是没有安装openssl包 解决 pip3 install pyOpenSSL 安装后再次运行如果还是报错,请降低加密库 pip install cryp ...
- ASP.NET Core MVC应用模型的构建[3]: Controller的收集
从编程的角度来看,一个MVC应用是由一系列Controller类型构建而成的,所以对于一个代表应用模型的ApplicationModel对象来说,它的核心就是Controllers属性返回的一组Con ...
- 大众点评-CAT监控平台
前言 我们禀着发现问题,解决问题的方针,针对后台诸多的服务,如何实时监控接口性能和访问频率,还要统计大盘信息?CAT作为大众点评开源的系统监控平台项目,下面就介绍一下CAT平台的搭建步骤. CAT作为 ...
- javascript浮点数相减、相乘出现一长串小数
149.7 * 100 = 14969.999999999998 3.57 - 2.33 = 1.2399999999999998 这是JavaScript浮点运算采用IEEE 754标准导致的Bug ...
- Codeforces Round 914 (Div. 2)A~C
A 反过来考虑,由皇后和国王的位置去寻找骑士的位置,当一个点既可以被皇后找到,也可以被国王找到时就说明这个点是满足条件的 #include <bits/stdc++.h> #define ...
- Kubernetes: kube-controller-manager 源码分析
0. 前言 在 Kubernetes 架构中,controller manager 是一个永不休止的控制回路组件,其负责控制集群资源的状态.通过监控 kube-apiserver 的资源状态,比较当前 ...
- Java中关键字-instanceof-的真实应用场景-2022新项目
instanceof关键字主要用来判断两个对象是否为同一种类型,举个例子如果有猫类.动物类,猫类继承自动物类: 判断某个类是否为动物类,就可以使用instanceof关键字.下面简单介绍几种真实的应用 ...