什么是“持续交付”?“持续交付”就是让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁。
为实现快速、频繁交付目标,就需要集成一系列的最佳实践,包括持续集成、持续部署、自动化测试等。相信大多数软件研发企业都在或多或少实施持续交付,但要说实施效果有多好、有多彻底,估计很多人都会面面相觑。
做好“持续交付”是一件比较难的事情,为什么说难?应该如何去做呢?
最近,学习携程系统研发总监王潇俊对持续交付的系统讲解(需要深入了解的可以去极客时间购买王潇俊老师的持续交付课程),觉得分析透彻,直击问题本质,这里做一些总结,分享给大家。
1.“持续交付”为什么难做好?
第一,实施“持续交付”,将会影响整个的研发生命周期,包括团队、流程、工具等方面。实施需要领导层的支持和推动,因为持续交付会带来工作方式的变革,打破大家之前的一些习惯。事情推进难。
第二,实施“持续交付”,对实施者和参与者要求很高,需要了解开发、流程、测试、运维等,甚至需要一些架构和管理知识。人才寻找难。
第三,实施”持续交付“,大家都希望能快速见效,立竿见影。但持续交付本身就是一个持续迭代的过程,需要多次循环才能看到效果,而且在初期,需要改变原有的工作流程和习惯,团队需要一段适应期,这期间,效率可能会有一定的下降。实施效果度量难。
第四,实施“持续交付”,常有的三个误区:过度强调自动化、过度强调流程化、过度强调特殊化。
2.“持续交付”如何去做呢?
第一,“持续交付”必须以平台化的思想去看待,单点突破是无力的;
第二,“持续交付”的实施,要顺应技术的变迁,善于利用技术红利,整合开源工具;
第三,“持续交付”与系统架构、运维体系息息相关,已经不分彼此。
实施“持续交付”是一件痛苦的事,因为要实施好,需要你比架构师懂得多、比开发人员动作快、比QA团队眼睛尖、比运营人员承压能力强等,经历了这些痛,你就将自己锤炼成了别人眼里的“牛人”。