去年一年主要做的就是推持续交付思想,今年也将持续,将去年工作中的一些想法记录一下。
一些想法
持续交付其实是敏捷思想的一部分,强调小频快,将可交付物切分到最小粒度,通过频繁的提交可供客户验证的交付物频繁接受反馈,从而快速响应做出相应反馈。
持续交付与持续集成的区别在于,持续集成关注的是过程产物的合格与否,而持续交付只关注最终的可交付物,过程只是为了提升最终可交付物合格率的手段而已。
持续交付有一个关键的前提是过程自动化程度要很高,比如自动化单元测试,自动化静态代码扫描,自动化功能测试,自动化性能测试,自动化安全测试,环境自动部署,自动投产等等。
持续交付的最佳实践之一TDD成功开展的前提是单元测试得先推行且需要让项目组成员真正理解单元测试的意义以及具体如何写有效的单元测试,否则很难开展。
单元测试与功能测试虽然都是测试,但是对于最终可交付物质量的影响不大相同,个人理解单元测试更多的是确保代码没问题,功能测试则是希望找出问题,这与软件测试理论里所说的软件测试的目标是一致的。
持续交付实践过程中,快速反馈非常重要,持续交付管道的各个环节,不管是编译,扫描,测试还是部署,投产等等,其实都是“反馈”手段,通过各环节的高度自动化,快速提供反馈,从而降低成本(缺陷修复成本理论)。
自动化测试策略需要根据项目类型确定,不一定都适合金字塔策略,UI对于做自动化冒烟是很合适的。
持续交付思想的落地有多种平台可供选择,但是不管哪种平台,实现的机制基本都类似,需要项目团队共同制订交付标准以及交付流程,并将交付流程尽量自动化,再加上适当的反馈就可以了。