敏捷开发相关(四大价值观+十二原则)

● 为什么需要敏捷?
● 敏捷怎么做?
● 敏捷做些什么?

![
在这里插入图片描述](https://img-blog.csdnimg.cn/495f7164c242465d8fe5c9c041734381.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP5bCP6Zuq6Iqx5YS_,size_20,color_FFFFFF,t_70,g_se,x_16)

一、 什么是敏捷开发?
1. 对于需求方来说:
a. 小步快跑、快速迭代、拥抱变化:不追求一开始就尽善尽美,而是把最核心的东西先交付MVP,根据市场反馈来对需求进行验证和矫正,以灵活敏捷的改变调整去适应变化,在一次次持续迭代中达到最终目标。
(MVP:最小可行性产品: )
2. 对于产品来说:
a. 敏捷开发就是将项目拆分为多个子项目,独立开发、分别实现,尽快的产出交付给用户,收集用户反馈后立即调整优化,一直迭代到用户满意,最后集成为一个完整的极具用户价值的产品,且在此过程中产品一直处于可用状态。
3. 对于开发来说:
a. 敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,也是如今很流行的软件开发方法
二、 敏捷宣言-四大价值观
1. 个体和互动 高于 流程和工具
a. 项目是通过人来完成的,流程和工具可以帮助人,但绝不能自行完成工作。
虽然,过程和工具都是好东西,但是它们有时也会成为障碍。面对面的直接沟通,比一些流程性的文件和工具沟通,效率要高出很多。(经常沟通)
当然最好的是,在沟通后就多方达成的共识形成一个简要性的文档备录(做好记录)。
b. 沟通和交流:沟通的目的是进行思想碰撞。在沟通当中了解别人的思维方式,表达自己的思维方式,然后达到共同的目的
2. 工作的软件 高于 详尽的文档
a. 看文档是一件让人头疼的事,无论是需求或技术文档,撰写和维护都需要耗费大量的人力,文档的不灵活性让其地位在敏捷开发中地位降低,因此这里的文档要尽可能精简,能用软件替代文档的任务首选软件。(但是文档不是不写,而是写了之后留作记录)
3. 客户合作 高于 合同谈判
a. 这个价值观的核心是越接近你的客户越好。客户最清楚他想要什么,即使在需求明确过程中也会包含一些试验和错误。在合同谈判期间,试图避免所有的尝试和错误不发生是不现实的,也是徒劳的。(了解客户,让客户去使用,提问题,解决问题)
4. 响应变化 高于 遵循计划
a. 和瀑布流中将产品的功能完全规划好后集中开发不同,不断变化的需求让敏捷从业者制定计划时尽可能的简化
b. 每次迭代交付一个可用的最小功能,这个功能时是不完美的、简陋的,只能满足用户最基本的需求,然后通过后期客户的正反馈慢慢完善功能。这种方式试错成本低,能快速应对需求变化。
三、 敏捷宣言-十二原则
1. 我们最重要的目标,是通过持续不断地及早持续地交付有价值的软件来满足客户的需求。
2. 欣然面对需求变化,拥抱变化,即使在开发后期也一样。善于掌控变化,帮助客户获得竞争优势。
3. 要不断交付可用的软件,相隔几星期或一两个月,倾向于采取较短的周期。
4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
5. 激发个体的斗志,以他们为核心搭建项目。提供他们所需的环境和支持,相信他们能够达成目标。
6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
7. 可工作的软件是衡量进度的首要指标。
8. 敏捷过程倡导可持续开发。项目方、开发人员和用户要能够保持恒久,稳定的进展速度。
9. 对技术精益求精,对设计不断完善,将提高敏捷能力。
10. 以简洁为本,极力减少不必要工作量。
11. 最好的架构、需求和设计出自于自组织团队。
12. 团队定期回顾和反思如何能提高成效,并依此调整团队的行为。
四、 如何去做
在这里插入图片描述

1. 需求梳理会:
a. 头脑风暴
b. 简单文档
2. 每日站会:
a. 不超过15分钟
b. “过一下”任务看板板
c. 轮流说明问题
一、 昨天做了什么,完成度如何?
二、 如有拖延是因为什么原因,是否需要其他成员帮助?
三、 今天计划要完成的任务是什么?
d. 站会是为了发现问题,而不是解决问题
3. 迭代评审会:
a. 一般控制在4个小时以内
b. 优先级安排要开发的任务,描述每个任务要达到的目标,和设计、开发、测试确认,找到任务处理人并以工时为单位预估任务完成需要的时间。
c. 怎么做排期(三点估算)
一、 类比估算
1. 使用相似活动或项目的历史数据(总量)来估算当前活动
a. 成本较低,耗时较少,准确性较低
二、 参数估算
1. 需要施工的工作量*单位工作量所需工时(历史数据)
a. 准确性取决去参数模型的准确度
三、 三点估算
1. 贝塔分布(最乐观时间+4*最可能时间+最悲观时间)/6
2. 三角分布(最乐观时间+最可能时间+最悲观时间)/3
a. 参数不足时使用考虑到的风险
四、 自下而上估算
1. 从下到上逐层估算
a. 耗时长,最准确
4. 迭代回顾会:
a. 每个成员做总结,检查自身问题,在这一个迭代中有什么优缺点,在下次迭代中可以改进的点有哪些?
b. 找出做得好和潜在需要改进的主要方面,同时改进下一步的工作方式和计划

五、 优缺点
敏捷的特点,优点,缺点都是灵活。
1. 优点:
a. 应对需求的灵活性让功能的开发时间缩短,可尽早得到市场的反馈,提高规避风险的能力
b. 人与人之间的直接沟通能充分利用时间,工作效率提高
2. 缺点:
a. 面对面沟通让信息传递的质量随传递人数的增加而降低,从产品到设计到开发再到测试的信息传递会出现偏差,这让敏捷在大项目大团队中的实施变得困难
b. 较少的文档在团队人员过多,人员变动或项目持续时间较长时无法全面了解到产品的全貌,沟通成本增加
六、 总结
1. 最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2. 敏捷开发不只是开发和产品的事情,而是整个团队的事情,以客户为中心,形成产品快速迭代,快速推向市场,快速收集市场客户反馈,快速基于反馈来进行调整的闭环。
3. 实行敏捷的目的是为了帮助团队高效地合作沟通,过程中的去文档,去流程,面对面沟通都只是手段,最后还是以结果为导向。
4. 团队成员要有很强的主观能动性,能主动推进整个项目前进,当他人停滞不前时,PUSH他们。
5. 敏捷团队的建立需要时间和经验积累,当任务出现问题时主动承担责任优于互相推诿,要善于发现问题,解决问题。

猜你喜欢

转载自blog.csdn.net/qq_43671996/article/details/121497079
今日推荐