今天的主角是下面这张图,它全景式展现了敏捷开发在不同粒度上的关注点。(看不清可以看最后的Slideshare)
这张图主体上是要给敏捷在不同粒度上下一个定义,并且告诉我们它的产出是“Working software”
从最内部的环开始看,什么是持续要做的呢?测试驱动开发(TDD),编译构建,集成,代码重构,协作开发,这些事情仿佛是心跳一样,不仅不能停还要保持一定的节奏。《Continuous Integration》一文对此做了很好的注解。《Continuous Integration》源文档 <http://martinfowler.com/articles/continuousIntegration.html>
外一层要描述的就是敏捷开发每天要做的事情了:站立会议和验收测试。站立式会议在团队范围内实现信息共享,简单,直接,有效。
较之每天的行为,一个粗粒度的概念就是迭代,我个人认为这里是最能体现敏捷精神的地方。我们先看一下迭代需要做的工作:检查,回顾,制定迭代计划。检查是对已完成工作的质量保证的手段,回顾是对之前项目进行中的得失进行反思,而制定计划是在一个有更多参考参数的情况下安排下一步工作。现在敏捷社区在提倡“精益”思想,即根据历史数据动态的调整优化。敏捷开发是一套活理论,不是一堆死方法,这一点我深信不疑。
发布处于迭代外层,可以看到这阶段会制定发布计划,梳理积压未完成的事情,做出评估。
处于最外层的是策略层,这一层我们看到了目标、视角等等元素。虽然身处开发第一线的我们往往感受不到这些东西的存在,但是这些方面如果没有人考虑或者考虑错了的影响远大于一段糟糕的代码。
圆圈两侧我们可以看到敏捷开发的倡导的价值观和代表了其可量化的指标。
从传统的或者习惯的开发模型迁移到敏捷会有种种困难,需要有形式和行为上的真正变化。如果抛开这种想法呢,换一个角度呢?不搞大变革,大动作,我们能否从敏捷开发中取经来改善我们现有的情况呢?比如我们加快了构建的效率,我们坚持做代码检查和站立会议,见缝插针对糟糕的代码进行重构… …实践了这些之后或许我们还不是敏捷开发,但是我们已经拥有了“敏捷态度”。
总结
敏捷:不动摇,不懈怠,不折腾
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2008-10-14 回头再说Unity