第三章 敏捷开发(Agile Development )
3.1 敏捷是什么?(Agile)
最简而言之:快速、增量(迭代)
- 快速交付产品
- 对变化的有效响应
- 客户加入团队,所有利益相关者之间的有效沟通
- 项目计划必须灵活
- 一个自组织团队,便于沟通
如何创建敏捷流程来管理不可预测性?
- 软件增量必须在短时间内交付
- 软件流程必须逐步适应变化
用户故事是敏捷开发中最小的工作单元。(包括角色,活动,价值三个方面)
3.2 敏捷宣言(Manifesto for Agile)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tF9euvwV-1692688660570)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/da73b25d0bc2459f9bec84024391bb23~tplv-k3u1fbpfcp-zoom-1.image)]
3.3 极限编程(eXtreme Programming, XP)
3.3.1 极限编程框架活动
-
极限编程是敏捷软件开发中的使用最广泛的一种方法。
-
XP使用面向对象方法作为推荐的开发泛型。
-
XP包含了策划、设计、编码和测试4个框架活动的规则和实践:
- 策划:策划活动开始于建立一系列描述待开发软件必要特征与功能的“故事”。每个故事由客户书写并置于一张索引卡上,客户根据对应特征或功能的全局业务价值度标明权值。
- 设计:XP设计严格遵循保持简洁原则,即使用简单而不是复杂的表述。另外,设计为故事提供不多也不少的实现原则,不鼓励额外功能性设计。
- 编码:XP推荐的故事开发和基本设计完成之后,团队不应直接开始编码,而实开发一系列用于检测本次(软件增量)发布的包括所有故事的单元测试。XP编码活动中的关键概念之一是结对编程。
- 测试:在编码开始之前建立单元测试是XP方法的关键因素。所建立的单元测试应当使用一个可以自动实施的框架,这种方式支持代码修改之后及时的回归测试策略。
- 一旦将个人的单元测试组织到一个“通用测试集”,每天都可以进行系统的集成和确认测试。
- XP验收测试,也称为客户测试,则客户规定技术条件,并且着眼于客户可见的、可评审的系统级的特征和功能。
3.3.2 极限编程的关键(价值观)
五个要素:
- 沟通(紧密的非正式口头协作,避免大量文档)
- 简单(只为眼前的需要而设计,不考虑未来的需要)
- 反馈(来自实施的软件本身、客户、其他软件团队成员)
- 勇气(今天的设计意味着未来的需求可能会发生巨大的变化,因此需要大量的返工)
- 尊重(IT成员之间、利益相关者之间)
3.3.3 工业极限编程(IXP)
-
IXP是XP的一种有机进化。
-
它由XP的最低限要求、以客户为中心、测试驱动精神组成。
-
与原来XP最大差别在于管理具有更大的包容性。
-
合并了六个新实践:
- 准备评估
- 项目社区
- 项目承租
- 测试驱动管理
- 回顾
- 持续学习
3.4 其他敏捷过程
- Scrum
- 动态系统开发方法(DSDM)
- 敏捷建模(AM)
- 敏捷统一过程(AUP)
3.4.1 迭代式增量软件开发过程(Scrum)
- Scrum原则和敏捷宣言一致
- 组织小型团队达到“沟通最大化,负担最小化,非语言描述、非形式化知识”。
- 过程对技术和业务变化必须具有适应性,以“保证制造具有最好可能的产品”。
- 过程生产频繁发布“可检查、可调整、可测试、可文档化、可构建”的软件增量。
- 开发工作和开发人员划分为“清晰的、低耦合的部分或包”。
- 坚持在产品构建过程中进行测试和文档化。
- Scrum过程提供“在任何需要的情况下都能完成产品的能力“ 。
- Scrum强调使用一组”软件过程模式“,这些过程模式被证实在时间紧张的需求变化的和业务关键的项目中是有效的。
- 待定项(backlog) :一个能为用户提供商业价值的项目需求或特征的优先级列表。
- 冲刺(sprint) :由一些工作单元组成,这些工作单元是达到待定项中定义的需求所必须的,并且必须在预定的时间段内完成。冲刺过程不允许有变更。
- Scrum例会:Scrum团队每天召开的短会。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uNuMCqaG-1692688660571)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a00f3b618b5c4499b242a7a5eaea85f6~tplv-k3u1fbpfcp-zoom-1.image)]
3.4.2 动态系统开发方法(DSDM)
-
DSDM是一种提供”通过在可控项目环境中使用增量原型开发模式完全满足对时间有约束的系统的构建和维护“的敏捷软件开发方法。
-
DSDM协会定义了一个称为DSDM生命周期的敏捷过程模型。
-
该声明周期定义了3个不同的迭代循环,前面还加了2个生命周期活动:
- 业务需求和约束的可行性研究
- 业务研究
- 功能模型迭代
- 设计和构建迭代
- 实现
3.4.3 敏捷建模(AM)
- AM是一种用于对软件系统有效建模和文档化的实践方法学。
- AM是可以有效和以轻量级方式用于软件开发项目的软件建模价值、原则和实践的集合。
- 由于敏捷模型只是大致完善,而不要求完美,因此敏捷模型比传统的模型还要有效。
AM独具特色的建模原则:
- 有目的建模
- 使用多个模型
- 轻装上阵
- 内容重于表述形式
- 理解模型及工具
- 适应团队需要
3.4.4 敏捷统一过程AUP
-
敏捷统一过程采用了一个“全局串行”以及“局部迭代”的原理来构建系统。
-
采用经典UP阶段性活动(起始、细化、构建、转换),AUP提供一系列活动能够使团队为软件项目构想出一个全面的过程流。
-
然后,在每一个活动里,团队迭代使用敏捷,并且将有意义的软件增量尽可能快地交付给最终用户。
-
每个AUP迭代执行以下活动:
- 建模
- 实现
- 测试
- 部署
- 配置及项目管理
- 环境管理
3.4.5 注意
- 前面讲了很多软件过程模型,我们必须认识到每一个软件过程模型都有缺陷
- 尽管许多软件集构已经成功使用了敏捷,敏捷也是有缺点的,如:不规范、难量化、缺乏需求和设计的正规表示等等
- 实践中,关键是认识到一个过程的弱点在哪里,然后使其适应于组织集构的特定要求。
题外话
在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。
Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多
”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。
在下个十年的剩余时间里,Python 还能如此重要以及保持完整性吗?今天,我们将对事实进行分析,破除一些误解。
CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁
学习资源推荐
除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。
这里给大家展示一下我进的兼职群和最近接单的截图
😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
### 1.Python学习路线
2.Python基础学习
01.开发工具
02.学习笔记
03.学习视频
3.Python小白必备手册
4.数据分析全套资源
5.Python面试集锦
01.面试资料
02.简历模板
因篇幅有限,仅展示部分资料,添加上方即可获取👆
------ 🙇♂️ 本文转自网络,如有侵权,请联系删除 🙇♂️ ------