持续交付的读书笔记

这是一篇关于持续集成的一些读书笔记,内容可能有些散乱,但是希望能尽可能保持内容的完整性。

关于迭代开发

读书笔记的开头写迭代开发而不是关于持续交付,是因为迭代开发是持续交付的最基本的条件,很多公司都声称自己做的是迭代开发,但实际上完全不是那么回事。迭代过程的最基本要求可以用如下几个规则来表述。

  • 软件应该一直处于可工作状态,因为每次签入代码时,都回自动运行自动化测试套件,包括单元测试,组件测试以及端到端的验收测试。

  • 每次迭代都能将软件部署到一个类生产环境中,并向用户演示(这样可以确保整个过程不但是迭代式的,而且是增量的)。

*迭代长度不超过两周。

使用迭代过程的理由有如下几个。

*如果按照业务价值来排功能优先级,你会发现,远在项目结束之前,软件就已经生效了。当然,即使我们已经完成了一些功能,也经常有一些很好的理由不发布新软件。但是,使用新功能的兴奋替代对项目成功的担忧,更能鼓舞士气,难道不是吗?

  • 可以从客户或者出资人那里得到关于软件的反馈,比如什么需求被满足了,什么需求还需澄清或者修改。这也意味着,正在开发的功能的确是有价值的。可在项目开始时,没有人知道,他们真正要的是什么。

  • 只有客户签收(sign off)后,需求才算真正完成了。定期给客户做软件演示是跟踪进度唯一的可靠方式。

  • 保持软件随时可工作(因为你不得不做演示),这会让团队更有纪律性,以避免集成阶段时间太长,破坏原有功能的重构和失去焦点及方向感。

  • 可能最重要的是,强调每次迭代结束后都能得到可部署到生产环境的代码。在软件项目中,这唯一真正有用的过程度量项,也只有迭代方法能提供这种方式。

Published: March 27 2015

blog comments powered by Disqus