5月15日参加持续交付、敏捷、DevOps的理念实践讲座,其中一些内容非常有启发作用。整理了几个观点(理念、原则)进行分享。
- 敏捷迭代中开发的连续性,不应与明显的迭代分界(开始或结束)
- 自动化测试策略: http://lzhted.iteye.com/blog/2212646
- 部署模式:http://lzhted.iteye.com/blog/2213844
本文介绍第一个观点(原则):敏捷迭代中开发的连续性,不应以明显的迭代分界(开始或结束)。
在介绍新的原则之前,先简单介绍我们当前的情况与挑战。
我们的现状:以每周为一个迭代,迭代前安排好开发任务(story),开发人员在一周的时间内完成开发、测试、出版本。
实际的挑战:1、因为需求和方案的工作量不总是理想(大小差距多)的,需要花费较多的工作量将方案划分成合适工作量、且可验证的story。这可以认为是一种浪费。 2、每个迭代只计划和实现本迭代的开发任务,当某个story超出迭代的工作量或依赖关系复杂时,会完整地安排在下一个迭代,出现当前迭代闲,后续迭代忙,甚至超期的问题。参考下图示例:存在依赖关系的6个story被安排在3个迭代完成,其中第一个和第三个迭代都存在浪费。
下面介绍本文整理的观点:如果我们做出改变,确保敏捷迭代中开发的连续性,不以迭代来限制任务的开发过程,整个迭代过程就会如下图所示:
在新的迭代计划中,第一个迭代仍然只交付了A和1两个开发任务,但是第二个迭代可以交付所有的开发任务。这里可以认为,迭代对于外部(交付)是阶段性的,而对于内部(开发)是连续的。连续的开发任务使得开发人员的开发节奏更稳定、效率更高。
但是,这也带来了新的挑战:1、迭代一结束时是否需要提交未完成的工作B? 2、如何发布未完成的工作。即第一个迭代结束时,只做了一半的任务B应该如何交付?
第一个问题的答案是肯定的,任何开发工作都要及时提交。那么如何提交和发布未完成的工作?有以下两点可以实践:
- 设计公共的特性开关。未完成的工作将通过特性开关进行过滤。注意:a. 只有当没有其它方法时才使用特性开关,否则优先通过特性隐藏来过滤。 b. 当工作完成(特性激活)时,移除开关。
- 基于抽象(接口)的程序设计。即使未实现依赖的逻辑,系统也能正常编译运行。
相关推荐
DevOps是一种文化和实践,它鼓励...总的来说,DevOps和持续交付是现代软件开发中不可或缺的部分,它们通过文化和工具的结合,优化了软件开发、测试和运维的流程,从而加快了产品上市的速度,提高了产品的质量和可靠性。
持续交付与DevOps
该概念强调了自动化和标准化在DevOps中的重要性。 7. 企业DevOps实践:企业DevOps实践是指将DevOps理念和实践应用于企业实际中,以提高软件开发和交付的效率和质量。企业DevOps实践需要结合企业的具体情况,制定...
敏捷交付则是DevOps理念的核心之一,它要求组织能够在短时间内完成产品的迭代升级,并确保每次迭代都能够稳定地发布到生产环境。 #### 三、技术架构优化的重要性 技术架构的设计对于实现敏捷交付至关重要。一个...
【持续交付报告DevOps-Report-2021.pdf】是由Puppet发布的2021年最新DevOps研究报告。这份报告深入探讨了DevOps领域的关键趋势、挑战以及最佳实践,旨在帮助组织理解如何通过DevOps提升效率、质量和创新速度。 在...
《持续交付2.0+业务引领的DevOps精要》一书中,乔梁探讨了如何在DevOps实践中选择合适的分支策略来支持持续集成和持续交付。本章主要围绕两种常见的分支策略:项目制发布和发布火车模式。 1. **项目制发布**: ...
《持续交付2.0(DevOps)-乔梁》最新版梳理结构脑图,详尽的DevOps各个环节关注要点及最佳实践
在推动企业向客户导向性企业转型的过程中,徐毅所倡导的设计思维、敏捷和DevOps成为助力企业创新交付的重要方法。这些方法帮助团队更快地产生价值,提升创新能力,缩短客户反馈周期,并改善客户体验。在这个过程中,...
### DevOps与持续交付 #### 引言 随着软件行业的快速发展,如何提高软件开发效率、降低维护成本成为了众多企业关注的...未来,随着更多组织意识到持续交付的重要性,DevOps将在软件开发领域扮演越来越重要的角色。
- **持续集成/持续交付/持续部署**:简称CI/CD,是DevOps中的核心实践之一,旨在频繁地自动将代码集成到主分支,并进行自动化测试和部署。 - **最小可用产品(MVP)**:以最快的速度推出最小功能集的产品,通过用户...
如何快速向用户交付可靠的产品,是近年来持续交付研究和应用的热点问题,传统的软件敏捷方法在交付过程中缺乏团队协作和标准化的构建流程,大公司DevOps框架因体系复杂在中小规模企业应用时会产生迭代速度和产品质量...
没有足够的自动化测试保证质量,服务部署过程中可能出现问题,影响业务连续性。另外,团队规模可能对微服务的实施产生影响,过大的团队规模可能会对通信和管理带来障碍。 为了克服这些挑战,开发团队需要实现包括但...
前言可能还提到了华为云DevCloud平台在敏捷开发中的作用,它作为一个综合性的开发云平台,提供了从项目规划到交付的一系列工具和服务。 在持续规划与设计章节中,重点讲解了敏捷项目规划。1.1节中,实验介绍部分...
这个规范涵盖了三个主要部分:总体架构、敏捷开发管理过程和持续交付过程,通过这些内容来构建和衡量企业的DevOps成熟度。 首先,我们来看第一部分——总体架构。这部分主要阐述了DevOps的基本理念和核心价值,即...
DevOps强调的是一种持续迭代的开发流程,通过自动化的软件交付和架构变更流程,打通了从开发、构建、测试、部署、运维到修复的各个软件开发生命周期环节。 文档还提到了华为FusionStage,这可能是一个支持DevOps...
DevOps与持续交付
DevOps是一种将软件开发(Dev)和信息技术运维(Ops)结合起来的工作方式,它的核心目标是提高组织...DevOps强调在软件交付全生命周期中,从需求收集、开发、测试到部署和运维的每一个环节都应该进行持续的优化和改进。
在 DevOps 的实施过程中,需要解决一些实践问题,如代码分支管理、环境获取、自动化、微服务化、持续交付等。为此,我们需要整合软件研发工具、容器化技术、运营监控工具等,实现敏捷和 DevOps 的转型。 DevOps 的...
3. **敏捷开发管理**:敏捷方法是DevOps中的重要组成部分,它强调快速迭代、用户反馈和灵活适应变化。敏捷实践如Scrum或Kanban可以帮助团队更有效地管理项目,提高工作效率。敏捷开发中常见的工具有Jira、Trello等,...
【DevOps开发运维一体化平台建设】是现代信息技术发展下的重要实践,旨在提升IT服务的效率、质量和稳定性。随着数字城市的发展,大数据、互联网和人工智能等技术的广泛应用,城市信息化程度不断提升,同时也带来了...