Posted on 2005-12-14 23:05
非鱼 阅读(1831)
评论(6) 编辑 收藏 所属分类:
管理
发行是产品开发完成并交付客户安装、配置、使用的过程。软件发行做为生产完成或阶段性完成时刻的活动,不仅是一个短时期的任务,它和开发过程中的其他活动密切相关。
在整个软件的生命周期中,开发活动总是迭代进行的。即使对于传统的软件开发方法(结构化设计),在维护阶段一个用户的需求变更,将导致软件的新版本发行,
这时候不得不进行被动的迭代——在原软件的基础上改进并发行改进的补丁或者完整版本。但人们在面向对象的开发方法中,更加倾向于主动的迭代过程,以提高软
件产品的质量。
我们也用更现代的视角来观察整个过程和软件发行这个活动。开发计划在最初时刻定义了发行版本的内容,正常情况下,未来的发行将包含计划中的所有开发内容。
开发过程中的各种活动如评审、测试等保证了发行的质量。版本管理是一个好的发行成功的根本保证。发行活动记录软件版本和发行的目标客户,以进行后期的维护
如补丁发行、版本更新。
软件的发行是有节奏、有内容、有质量的。节奏保证了开发人员和最终客户的一致,所有人都知道版本将在何时发行。内容满足最终客户的期望。质量保证产品即满足用户的需求,又能够提高后续版本发行能力。
软件发行中主要存在的问题有三种:短路的发行、内容膨胀和缺陷积累。
短路的发行
短路的发行是指为了保证发行的节奏,或者因为设定了DEADLINE而导致在开发过程中缩减活动,如不经评审、粗略测试等。这导致了发行质量的下降,并影
响到后续的发行版本。这在国内的软件企业中非常严重,我们常常看到连续的加班和最终的低质量的产品并存。
解决这个问题的方法是使用严密可行的、可变更的版本计划。严密可行的计划可以直接保证版本及时发行;当发现不能及时发行版本时
缩减版本计划中的内容可以在保证及时发行的基础上同时保证版本的质量,毕竟质量才是最重要的。
内容的膨胀
内容的膨胀是指在版本开发过程中,不断的增加计划外的内容。这必然导致两个结果之一:要么降低版本质量,要么拖延版本发行时间。任何一项都不是我们想看到
的。这和项目经理/需求人员的控制能力有关,很多时候,顶住客户的压力不是一件容易的事情。
所以这个问题的最终解决方案是提高项目经理/需求人员的能力,提高客户对软件开发的理解。除此之外,我们能够做的就是在增加内容的同时缩减低优先等级的内容,来保证发行的质量和节奏。
缺陷的积累
这个问题大家都已经注意到了,在发行前期,匆忙的构建过程中发现大量的缺陷,最终导致发行的拖延。
解决这个问题的手段也比较简单,就是进行有效的日构建,尽早发现并解决缺陷,争取在发行时刻的主动权。
最后,我们来看一个例子:
我本来想在今晚12:00以前写完整个发行管理的,但现在看来我是不能完成了。我不想拖到12:00以后再发这篇文章,也不能敷衍的随便写写了事。所以我
砍掉后面的发行管理的细节内容,这些内容将在后续版本中发行。这样我即保证了本篇的质量,也赶上了我给自己定义的时间线。
软件发行管理(下)