上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4 软件交付不是按时间阶段或角色划分出来的
软件交付,无法限定于按时间阶段划分出来的一段时间内。并不是说,先进行两天需求拆分,再进行五天设计开发,然后进入三天的软件交付阶段,最后是发布上线之后的持续运维。在实际工作中,没有这样明确的时间阶段。
在为一个特性编写代码时,随时可以执行构建和单元测试。在集成某几个特性时,其他特性还正在开发中。而与此同时,技术运维和运营活动也一直在进行,毕竟在新版本发布前,也要保证当前线上版本的稳定运行。
所以,尽管从具体代码改动的角度来看,在逻辑和时间先后上,是先确定需求,再设计和开发,再交付,再运维的,但从宏观上看,在项目排期上,并没有软件交付这个阶段,软件交付也不构成和其他阶段之间的串联关系。这些不同的活动是随时在不同“脉络”上并行开展的。
软件交付,也不是按角色划分出来的一堆工作。并不是说,开发人员做的质量相关工作就属于软件开发过程,测试人员做的质量相关工作就属于软件交付过程。只要是质量相关工作,那就属于软件交付过程。同样地,并不是说,运维人员做的生产环境上的部署等操作就属于运维过程,要是换成开发人员来做生产环境上的部署就属于交付过程。不论是哪个角色做,只要是做生产环境上的部署,完成软件的发布,那就属于软件交付过程。
为什么这么划分呢?为什么不是按照时间阶段或角色来划分的呢?因为我们要研究的是这样一些事情,这些事情不论什么时候做,不论哪个角色做,它们都在那里。而具体什么时候做,具体由什么角色做,具体怎么做,正是我们要讨论的内容。所以,既然要讨论,那么就让它们始终在讨论范围之内,这样讨论起来更方便。