什么是敏捷开发?

敏捷开发(Aglie Development)不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。

理解

敏捷并不是一门具体的技术,而是一种理念或者说是一种思想,他可以指导我们更加高效的开发。

再有,敏捷开发都具有以下几点的共同特征,如:

  1. 迭代式开发
  2. 增量交付
  3. 开发团队和用户反馈推动产品开发
  4. 持续集成
  5. 开发团队自我管理等。

最后,相比于传统研发模式,如:”瀑布“,敏捷开发是一种“现代”的开发模式。

以往的软件工程已瀑布开发模式居多,瀑布开发模式比较适用于传统企业,如开发周期以年计的大型软件系统项目,任何环节都是基于上一个环节的输出后,才能往下顺序进行。

随着互联网的兴起,信息变得透明,而且传播速度之快,导致市场变化加速,用户需求加速变化,如果用软件工程的开发模式,做出来的软件,没有面世就被淘汰了,毕竟是存在竞争的。

敏捷开发追求的是快速迭代,灵活应对变化,弱工具、弱流程的管理方式,注重实效快速响应市场需求。

在敏捷开发中,软件项目在构建初期就被切分成多个子项目,各个子项目的成果都可分别经过测试,验收通过后,具备可视、可用、可集成的特征。

简单来说,就是把一个很大的项目分为多个相互联系且可独立运行的小项目,然后按照优先级分别完成,在此过程中项目产品是一直处于可使用的状态。

具体敏捷开发实践

我们一直说敏捷开发是一种指导思想或开发方式,但经过20多年的发展,具体的软件项目中敏捷开发有哪些呢?

  • Scrum,极限编程(XP)
  • 精益软件开发(Lean Software Development)
  • 动态系统开发方法(DSDM)
  • 特征驱动开发(Feature Driver Development)
  • 水晶开发(Crystal Clear)等等

我所比较了解的是Scrum,极限编程(XP)。区别是scrum有一套标准的流程规范,xp注重实践。二者结合使用起来效果是最佳的。

敏捷宣言

通过身体力行和帮助他人来揭示更好的软件开发方式。
经由这项工作,形成了如下价值观:
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。

敏捷开发十二原则

1.我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2.欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
3.要不断交付可用的软件,周期从几周到几个月不等,且越短越好
4.项目过程中,业务人员与开发人员必须在一起工作。
5.要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
6.无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
7.可用的软件是衡量进度的主要指标。
8.敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
9.对技术的精益求精以及对设计的不断完善将提升敏捷性。
10.要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
11.最佳的架构、需求和设计出自于自组织的团队。
12.团队要定期反省如何能够做到更有效,并相应地调整团队的行为。

敏捷开发宣言比较抽象,但敏捷开发十二原则就非常具体,上面的十二条原则开发过程的经验总结

具体执行流程

1、产品负责人将整个产品设计成产品backlog。产品backlog就是一个个需求列表。(backlog可以理解为需求或者要做的事情)
2、召开产品backlog计划会议预估每个backlog的时间,确定哪些backlog是需要在第一个sprint中完成的,即sprint的backlog。(sprint可以理解为一个团队一起开发的一个任务集合)
3、把sprint的backlog写在纸条上贴在任务墙,让大家认领分配。(任务墙就是把 未完成、正在做、已完成 的工作状态贴到一个墙上,这样大家都可以看得到任务的状态 )
4、举行每日站立会议,让大家在每日会议上总结昨天做的事情、遇到什么困难,今天开展什么任务。(每日站立会议,是在每天早上定时和大家在任务墙前站立讨论,时间控制在15分钟内)
5、绘制燃尽图,保证任务的概况能够清晰看到。(燃尽图把当前的任务总数和日期一起绘制,每天记录一下,可以看到每天还剩多少个任务,直到任务数为0 ,这个sprint就完成了)
6、sprint评审会议是在sprint完成时举行,要向客户演示自己完成的软件产品 。
7、最后是sprint总结会议,以轮流发言方式进行,每个人都要发言,总结上一次sprint中遇到的问题、改进和大家分享讨论。

敏捷开发个人理解及简单执行流程相关推荐

  1. 【大数据开发】SparkCore——Spark作业执行流程、RDD编程的两种方式、简单算子

    文章目录 一.Spark作业执行流程(重点) 二.RDD编程 2.1创建RDD的⼆种⽅式: 2.2Transformation算⼦ 2.3Action算子 三.简单算子(必须掌握) 3.1 map.m ...

  2. 互联网公司「敏捷开发」,打造高效执行能力

    敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发. 敏捷项目管理作为新兴的项目管理模式,简化了传统项目管理的繁琐流程和文档.迭代过程中的需求变更会加入到项目继续迭代需求池,丰富项目 ...

  3. 软件工程(三)——敏捷开发和理解需求

    笔者正在学习<软件工程-实践者的研究方法>这本书,记录下一些读书笔记,共勉! 1.敏捷 市场条件变化十分迅速,客户和最终用户的需求在演变,从业者必须使软件工程工作保持敏捷,要限定过程应是灵 ...

  4. Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53939176 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  5. 从源码的角度理解Glide的执行流程

    转自:http://blog.csdn.net/guolin_blog/article/details/53939176 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架 ...

  6. 说说你对敏捷开发的理解(架构师必刷)

    分析&回答 敏捷开发(Agile Development)不是指某一种具体的方法论.过程或框架,而是一组价值观和原则. 敏捷并不是一门具体的技术,而是一种理念或者说是一种思想.它可以指导我们更 ...

  7. ios敏捷开发的理解

    一,根据以下几个问题来谈谈敏捷开发 1.什么是敏捷开发? 2.为什么使用敏捷开发? 3.如实使用敏捷开发? 4.采用敏捷开发的产品效果? 二.什么是敏捷开发? 敏捷开发是一种价值和原则,指导我们更加高 ...

  8. 敏捷开发基础篇(一)-流程与角色基本概念

    一.Agile开发模式 Agile开发模式包括四大部分:Product Backlog(产品用户故事).Sprint Backlog(迭代用户故事).Backlog tasks(用户故事开发任务,迭代 ...

  9. ThinkPHP框架开发的应用的标准执行流程

    用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内存开销 系统常量判断及定义 载入框架引导类(Think\Think ...

最新文章

  1. php和python区别-PHP与Python语言有哪些区别之处?选择哪一个好?
  2. 导入torchvision出现:AttributeError: module ‘torch.jit‘ has no attribute ‘unused‘错误
  3. 【Java】线程创建方式:Callable接口 / 使用线程池
  4. 「基于模型的系统工程」的发展历程
  5. 涉密文件检查工具_深圳龙华资料文件销毁粉碎销毁资料文件公司一览表
  6. 关于推送系统设计的一些总结与思考(一)
  7. 陕西电大学位英语计算机考试,2017年电大学位英语复习【呕心沥血整理、电大考试必过】.doc...
  8. 手机sstv解码软件_关于二维码扫描使用专业扫描设备和手机二维码扫描软件的区别?...
  9. HDU-1159-Common Subsequence
  10. python中string库_Python——string库
  11. 81192!请返航!
  12. win10计算机找不到家庭组,Win10 家庭版 没有家庭组 这个选项,如何设置局域网 - Microsoft Community...
  13. 夜暗方显万颗星,灯明始见一缕尘
  14. AStar 拐点 算法实现AI寻路
  15. Oracle 官网网址
  16. 计算机教师格言座右铭,教师奋斗励志格言座右铭100句
  17. KEUC首次落地中国,网易云深度剖析Kubernetes优化与实践
  18. CCI(Commodity Channel Index顺势指标)指标及其发明人Donald Lambert的前世今生
  19. svn外网打不开url地址怎么解决
  20. 大数据加持,医美行业“原来你可以更美”

热门文章

  1. adsl拨号php,Linux_Linux系统拨号上网方法, 在使用linux创建adsl拨号连 - phpStudy
  2. CNN实现剪刀石头布手势识别(python)
  3. python制作课程表提醒_使用python生成ical日历文件——将课程表导入到手机日历...
  4. 贵州省六盘水谷歌卫星地图下载
  5. 华云大咖说 | 一体机+云终端模式,何以打造媲美PC的桌面云极致体验?
  6. MAC-XXL_JOB学习踩坑记录-Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log
  7. 黑马—private关键字-封装
  8. 易飞erp怎么修改服务器ip,易飞连接失败处理方法
  9. [ROS2 Foxy]#1.1 ROS2安装
  10. 利用CVE-2021-40444漏洞钓鱼执法上线MSF