调试部署和安装过程经常推迟到项目快结束时。在一些项目中会写好安装工具并委派给发布工程师,他们会视这个“烫手山芋”。评估和演示在手工制造的环境中完成以确保一切正常。结果就是团队无法通过部署过程和部署坏境中获得经验,每当做出改变时已经太晚了。
安装/部署过程是业主最先看到的过程,安装/部署过程应该是生产环境中最可靠的第一步(或者至少很容易调试)。部署软件是给业主用的。用不靠谱的部署想把应用程序正确安装,在他们完整地使用你的软件之前,你将收到你客户的各种问题。
通过安装程序启动你的项目,将让你有时间在产品开发周期内改进流程,并有机会修改程序代码让其更容易安装。定期在干净的环境中运行和测试安装程序也能够验证代码是否在开发和测试环境中存在依然的假设。
将部署放到最后意味着可能需要更复杂地解决代码中的预估。在IDE中你能完全掌控环境,这看起来是个好主意,但也可能使部署过程变得更加复杂。早点了解全局利弊总比晚点知道好。
相比于还跑在开发者笔记本中的程序,“具备可部署性”似乎没有很多早期的商业价值,直到你可以在目标环境中演示你的程序这都是事实,在你提供商业价值前还有很多工作要做。如果你推迟部署是因为它微不足道,那就更是要做(提前部署),因为它低成本。如果它非常复杂,或者有很大的不确定性,你应该对应用程序代码进行:随时试验、评估、以及重构部署过程。
安装/部署过程是对你客户和专业服务团队在生产效率方面至关重要,所有你要随时测试和重构这个过程。我们测试和重构遍布整个项目的源码。部署也不能少。