在过去的十年中,软件开发经历了许多阶段。从使流程敏捷高效到使用DevOps简化IT服务,已经有了许多突破,MVP是对软件开发过程产生了根本性影响的进步之一。本文将深入探讨MVP在软件开发中怎样起作用、以及如何发挥作用。

什么是MVP

MVP,Minimum
Viable Product即最小化可行产品,是由Eric Ries
在《精益创业》里提出的一种软件开发方法。简单地说,就是指开发团队通过提供最小化可行产品获取用户反馈,并在这个最小化可行产品上持续快速迭代,直到产品到达一个相对稳定的阶段。它涉及到前期开发项目的基本框架,并使用最少的功能和用例,以提前降低成本,识别设计中的缺陷,同时减少上市时间。

为什么要使用MVP开发?

原始形式的软件开发是一个有缺陷的过程,开发人员一度花费大量时间和金钱,最后却发现了错误和问题。因此,MVP开发有助于提前确定主要目标用户需求,最终确定技术堆栈和功能,以及确定价值主张。特别是对于那些有严格预算指导方针的组织来说,重点应该是利用最简单的技术堆栈开发一个有意义的功能列表。

以下步骤对于确定功能并确定其优先级至关重要。

衡量市场需求

检查自己的软件在市场上提供的功能是否存在供应缺口。产品的需求可以基于满足消费者确切期望的消费者反馈。为了确定需求,我们需要分析竞争对手及其在市场上的现有产品。

识别产品的局限性

通过开发,产品的局限有助于利益相关者为未来问题做好准备,并实施适当的规划和替代方案。所有这些限制都带来了市场机会,这将带来有效的敏捷开发和用以区分市场现有产品的差异化。

跳出思维定势

下面这些步骤会让你更接近你的最终目标:

  • 为高级功能设置和使用构思
  • 确定项目范围
  • 列出应用程序的功能和非功能特性
  • 执行线框图,然后再做想法原型

完成技术堆栈

技术栈由一堆工具和技术组成,可以部署这些工具和技术来创建和发布产品。这些堆栈包含第三方、库、模块、包和工程工具,与所选择的编程语言兼容。堆栈还必须满足交付相关方所期望的业务价值的需要。

设计原型图

一个前端技术栈以及框架,为开发人员提供了使用完成组件的能力,比应用程序的自定义解决方案部署更快。这些元素可以与思想的主要后端算法联系起来,从而得到一个可测量的MVP。这可以进一步与需求、正确的客户和客户反馈相匹配。

因此,必须制定初始路线图,并与适当的企业应用程序开发服务提供商创建风险登记册。

其实MVP的本质就是在做实验,每个MVP都可以帮助回答一个针对某个假设的问题。之所以要尽可能的低成本去设计MVP,是因为MVP的本质是做实验,是试错,并不是在制造最终的产品,所以要尽可能用现有产品或者人工服务的方式来替代产品开发,尽可能地降低试错的成本。这也符合敏捷开发的“小步快跑、快速迭代”,而二者关系可以用一句话说清:敏捷开发是知道“方向”验证“方法”,最小可行产品是知道“方法”验证“方向”。

敏捷MVP面面观的更多相关文章

  1. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM

    刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...

  2. 我大中华微软MVP中国区人才库

    刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的Asp.net从业经验,微软MSDN特约讲师.Teched讲师.ImagineCup大赛评委.人大出版社研修班特约讲师,曾多次受邀访问美 ...

  3. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲

    又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...

  4. js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?

    你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...

  5. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲

    又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...

  6. 我大中华微软MVP中国区人才库(转)

    出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师 ...

  7. MVP社区巡讲 12月5日北京站| 12月12日上海站

    2015年底的社区巡讲Powered MVP Roadshow正式启动啦!12月5日周六下午北京场,12月12日周六下午上海场. 欢迎各位邀请您的同事朋友来参加MVP的社区活动,也邀请您发送活动信息( ...

  8. MVC,MVVM,MVP等设计模式的分析

    从Script到Code Blocks.Code Behind到MVC.MVP.MVVM 三个模式按照大致的历史进程将这些概念进行划分: Script Code Blocks.Code Behind ...

  9. 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM(转载)

    http://www.cnblogs.com/indream/p/3602348.html 刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code ...

  10. 敏捷软件开发_实例2<四>

    敏捷软件开发_实例2 上一章中对薪水支付案例的用例和类做了详细的阐述,在本篇会介绍薪水支付案例包的划分和数据库,UI的设计. 包的划分 一个错误包的划分 为什么这个包是错误的: 如果对classifi ...

随机推荐

  1. 从零开始学Spring Boot系列-前言

    从零开始学Spring Boot系列-前言 在数字化和信息化的时代,Java作为一种成熟.稳定且广泛应用的编程语言,已经成为构建企业级应用的首选.而在Java生态系统中,Spring框架无疑是其中最为 ...

  2. python调用namp.py进行扫描,调用go编译的so文件

    #!/usr/bin/env python # -*- coding: utf-8 -*- import json import os import platform from ctypes impo ...

  3. swagger 文档优化 knife4j 增强 Swagger

    swagger 省去了程序员开发过程中拟写接口文档的时间,是团队开发必不可少的工具,原生的swagger 界面功能比较少,也不支持文档导出,业界也有不少针对swagger 文档界面优化的插件,良莠不齐 ...

  4. 如何创建自己的Spring Boot Starter并为其编写单元测试

    当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式.如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个 ...

  5. error LNK2019: unresolved external symbol _CrtDbgReport referenced in function xxxx

    现象 在用C++调试dll动态库的时候汇报上述错误,我用VS2015编译的DEBUG版本动态库,实际在VS2019中调试 解决方法 在工程属性中做出如下选择,代码生成->多线程调试DLL ,出现 ...

  6. 一分钟带你了解mySql执行SQL的内部原理

    1.把MySQL当个黑盒子一样执行SQL语句 我们知道执行了insert语句之后,在表里会多出来一条数据:执行了update语句之后,会对表里的数据进行更改:执行了delete语句之后,会把表里的一条 ...

  7. 【Azure Storage Account Table】询问批量将存储账户中的表嵌入另一个账户中的办法

    问题描述 询问批量将存储账户中的表嵌入另一个账户中的办法? 问题解答 方式一:使用 AzCopy 使用Az copy做表格的导入导出,注意您需要使用Azcopy 7.3版本来实现对Table的操作,可 ...

  8. 基于 Nebula Graph 构建图学习能力

    本文首发于 Nebula Graph Community 公众号 经常看技术文章的小伙伴可能会留意到除了正在阅读的那篇文章,在文章页面的正文下方或者右侧区域会有若干同主题.同作者的文章等你阅读:经常逛 ...

  9. 从0开始入门智能知识库和星火大模型,打造AI客服。

    介绍FastWiki FastWiki是一个高性能.基于最新技术栈的知识库系统,旨在为大规模信息检索和智能搜索提供解决方案.它采用微软Semantic Kernel进行深度学习和自然语言处理,在后端使 ...

  10. docker 系列

    docker 系列 目录 docker 系列 一. docker 定义 1 nameSpnce 命名空间 2 cgroup 控制组 3 为什么使用容器 二. docker 安装 三 .docker 初 ...