Agile敏捷开发与MVP(Agile Software Development And MVP)
Posted 艾博唯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Agile敏捷开发与MVP(Agile Software Development And MVP)相关的知识,希望对你有一定的参考价值。
个体和互动高于流程和工具(Individuals and interactions over processes and tools)
工作软件高于详尽的文档(Working software over comprehensive documentation)
客户合作高于合同谈判(Customer collaboration over contract negotiation)
响应变化高于遵循计划(Responding to change over following a plan)
敏捷开发十二原则(Twelve Principles of Agile Software)
最重要的是通过尽早和不断交付有价值的软件满足客户需要。
我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
可以工作的软件是进度的主要度量标准。
敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
对卓越技术与良好设计的不断追求将有助于提高敏捷性。
简单——尽可能减少工作量的艺术至关重要。
最好的架构、需求和设计都源自自我组织的团队。
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
1、Product Backlog源自于Scrum方法,是指产品待办事项的集合,其中事务有优先级判断,先处理优先级高的事项。
2、Use Case(用例图)、User Story(用户故事)和Task(任务)说明要开发的软件完成什么事情,促进相关者的交流和合作。
3、Sprint:一个时间周期(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组开发项(Product Backlog)。
1、最快的方法是一次性将需求搞清楚,最快的实现,那么为什么要强调迭代?
回答:在实际工作中,往往很多需求是不清楚的,或者,以为清楚,在实现的时候发现逻辑问题,此时等待问题全部解决后再开发,还是先开发确认的需求,就是一种选择。
2、一个任务来了,我们都要分解任务,比如从功能出发,分解任务模块,敏捷开发的不同是什么?
回答:一般非敏捷开发,是按照功能划分的,而敏捷是通过类似与MVP的方法来画分的开发项(Product Backlog)的。
3、有的项目提的需求很多,或很详细,是否一定会做到更加敏捷?
回答:一些项目虽然需求很详细,但是,很有可能这个需求,并没有在用户哪里得到实际的价值验证。如果开发出来,最终客户发现不是自己所要的,那么,这样的开发可能会推倒重来,反而是问题了。
4、项目开发的时候,有的开发人员不能很好理解整个User Story,怎么办?
回答:在敏捷开发中,Scrum Master必须有能力画分开发项(Product Backlog)并描述User Story,然后将User Story通过Use Case等方式描述Task和Sub-Task,让开发人员从Task入手理解Story会更好。
5、Scrum、极限、精益(Lean)开发模式的区别?
Scrum是一种敏捷方法,着眼于有价值,通过迭代,规避风险,实现有用的产品;
精益是和敏捷对于的另外一种制造和开发方法,着眼于JIT(Just in time),旨在需要的时候,按需要的量,生产所需的产品;
极限(ExtremeProgramming)是一种敏捷方法,比Scrum的管理粒度更细,迭代速度更快,开发团队中包含客户,每个开发人员都可以参与任何开发等。
1、敏捷开发表现是灵活和快速,其核心是规避风险,通过抓住真正有价值的需求,通过迭代不断获取反馈和改进,来规避可能的风险;
2、敏捷开发区别与其他方法的表现是类似与PDCA(Plan-Do-Check-Act)迭代,关键点是找到类似MVP式的User Story,快速为客户呈现软件价值,并验证需求的有效性,规避识别的风险;
3、敏捷开发的基础是开放和自学习的团队,以及项目平台的搭建、共享和不断创新,还需要深入行业,学习一些相关的专业,真正了解客户的需求。
以上是关于Agile敏捷开发与MVP(Agile Software Development And MVP)的主要内容,如果未能解决你的问题,请参考以下文章
敏捷软件开发(Agile Software Development)的上位史