今天的主角是下面这张图,它全景式展现了敏捷开发在不同粒度上的关注点。(看不清可以看最后的Slideshare)
这张图主体上是要给敏捷在不同粒度上下一个定义,并且告诉我们它的产出是“Working software”
从最内部的环开始看,什么是持续要做的呢?测试驱动开发(TDD),编译构建,集成,代码重构,协作开发,这些事情仿佛是心跳一样,不仅不能停还要保持一定的节奏。《Continuous Integration》一文对此做了很好的注解。《Continuous Integration》源文档 <http://martinfowler.com/articles/continuousIntegration.html>
外一层要描述的就是敏捷开发每天要做的事情了:站立会议和验收测试。站立式会议在团队范围内实现信息共享,简单,直接,有效。
较之每天的行为,一个粗粒度的概念就是迭代,我个人认为这里是最能体现敏捷精神的地方。我们先看一下迭代需要做的工作:检查,回顾,制定迭代计划。检查是对已完成工作的质量保证的手段,回顾是对之前项目进行中的得失进行反思,而制定计划是在一个有更多参考参数的情况下安排下一步工作。现在敏捷社区在提倡“精益”思想,即根据历史数据动态的调整优化。敏捷开发是一套活理论,不是一堆死方法,这一点我深信不疑。
发布处于迭代外层,可以看到这阶段会制定发布计划,梳理积压未完成的事情,做出评估。
处于最外层的是策略层,这一层我们看到了目标、视角等等元素。虽然身处开发第一线的我们往往感受不到这些东西的存在,但是这些方面如果没有人考虑或者考虑错了的影响远大于一段糟糕的代码。
圆圈两侧我们可以看到敏捷开发的倡导的价值观和代表了其可量化的指标。
从传统的或者习惯的开发模型迁移到敏捷会有种种困难,需要有形式和行为上的真正变化。如果抛开这种想法呢,换一个角度呢?不搞大变革,大动作,我们能否从敏捷开发中取经来改善我们现有的情况呢?比如我们加快了构建的效率,我们坚持做代码检查和站立会议,见缝插针对糟糕的代码进行重构… …实践了这些之后或许我们还不是敏捷开发,但是我们已经拥有了“敏捷态度”。
总结
敏捷:不动摇,不懈怠,不折腾
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2008-10-14 回头再说Unity