潜鱼在渊

Concentrating on Architectures.

posts - 77, comments - 309, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

软件发行管理(上)

Posted on 2005-12-14 23:05 非鱼 阅读(1827) 评论(6)  编辑  收藏 所属分类: 管理
    发行是产品开发完成并交付客户安装、配置、使用的过程。软件发行做为生产完成或阶段性完成时刻的活动,不仅是一个短时期的任务,它和开发过程中的其他活动密切相关。

    在整个软件的生命周期中,开发活动总是迭代进行的。即使对于传统的软件开发方法(结构化设计),在维护阶段一个用户的需求变更,将导致软件的新版本发行, 这时候不得不进行被动的迭代——在原软件的基础上改进并发行改进的补丁或者完整版本。但人们在面向对象的开发方法中,更加倾向于主动的迭代过程,以提高软 件产品的质量。

    我们也用更现代的视角来观察整个过程和软件发行这个活动。开发计划在最初时刻定义了发行版本的内容,正常情况下,未来的发行将包含计划中的所有开发内容。 开发过程中的各种活动如评审、测试等保证了发行的质量。版本管理是一个好的发行成功的根本保证。发行活动记录软件版本和发行的目标客户,以进行后期的维护 如补丁发行、版本更新。

    软件的发行是有节奏、有内容、有质量的。节奏保证了开发人员和最终客户的一致,所有人都知道版本将在何时发行。内容满足最终客户的期望。质量保证产品即满足用户的需求,又能够提高后续版本发行能力。

release.bmp

    软件发行中主要存在的问题有三种:短路的发行、内容膨胀和缺陷积累。

    短路的发行

    短路的发行是指为了保证发行的节奏,或者因为设定了DEADLINE而导致在开发过程中缩减活动,如不经评审、粗略测试等。这导致了发行质量的下降,并影 响到后续的发行版本。这在国内的软件企业中非常严重,我们常常看到连续的加班和最终的低质量的产品并存。

    解决这个问题的方法是使用严密可行的、可变更的版本计划。严密可行的计划可以直接保证版本及时发行;当发现不能及时发行版本时缩减版本计划中的内容可以在保证及时发行的基础上同时保证版本的质量,毕竟质量才是最重要的。

    内容的膨胀

    内容的膨胀是指在版本开发过程中,不断的增加计划外的内容。这必然导致两个结果之一:要么降低版本质量,要么拖延版本发行时间。任何一项都不是我们想看到 的。这和项目经理/需求人员的控制能力有关,很多时候,顶住客户的压力不是一件容易的事情。

    所以这个问题的最终解决方案是提高项目经理/需求人员的能力,提高客户对软件开发的理解。除此之外,我们能够做的就是在增加内容的同时缩减低优先等级的内容,来保证发行的质量和节奏。

    缺陷的积累

    这个问题大家都已经注意到了,在发行前期,匆忙的构建过程中发现大量的缺陷,最终导致发行的拖延。

    解决这个问题的手段也比较简单,就是进行有效的日构建,尽早发现并解决缺陷,争取在发行时刻的主动权。

    最后,我们来看一个例子:

    我本来想在今晚12:00以前写完整个发行管理的,但现在看来我是不能完成了。我不想拖到12:00以后再发这篇文章,也不能敷衍的随便写写了事。所以我 砍掉后面的发行管理的细节内容,这些内容将在后续版本中发行。这样我即保证了本篇的质量,也赶上了我给自己定义的时间线。

    软件发行管理(下)

评论

# re: 软件发行管理(上)  回复  更多评论   

2005-12-14 23:18 by david.turing
该文提到“软件的发行是有节奏、有内容、有质量的。”,这一点是主观的美好愿望,
在中国,客户通常是无理头的,所以,“节奏保证了开发人员和最终客户的一致”这个事情很难发生,我见到更多的是,开发人员和最终客户在扯皮。

# re: 软件发行管理(上)  回复  更多评论   

2005-12-14 23:22 by 非鱼
在客户基础好的情况下还是可能实现的。关键是客户基础好的时候,你已经一堆垃圾了,是重做,还是凑合?不过不管怎么样,这是我们努力的目标吧。

# re: 软件发行管理(上)  回复  更多评论   

2005-12-15 09:26 by leondu
呵呵,同意 david,在中国,开发方始终是弱势群体。
开发计划常常被客户打乱。
主要是目前国内的信息化水平还太低了。
客户往往认为加一个新功能是一件非常容易的事情。
“不就是改几个页面嘛”
尤其是一些政府机关的客户
更是这样。

# re: 软件发行管理(上)  回复  更多评论   

2005-12-15 10:26 by 非鱼
“不就是改几个页面嘛”

客户完全可以这样说。因为他们不懂技术,也不能要求他们懂的技术。在修改请求合理的前提下,开发人员有责任向客户说明为什么修改工作量巨大,至少要达到认识上的统一。如果无法说明,则软件质量多半有问题(可修改性?可扩展性?)。无法说服客户吗?客户并不都是不讲道理的,尤其做久了,比较熟的客户,完全可以说服的。

大家都知道中国的官本位,政府如何如何。但这能成为我们推卸责任的理由吗?

# re: 软件发行管理(上)  回复  更多评论   

2005-12-16 17:00 by weide
“不就是改几个页面嘛”

这个我看是需求的改进速度和技术水平的实现能力之间的差距造成的;从需求来看,就是改几个页面,结果跑到后台怎么就那么多工作要做,要是跟其它模块还有耦合,就更要命了。良好的架构和设计,能够预见可能的变化和调整,并在架构上给以支持;自动化的测试、打包、发布机制等会有所帮助吧?探索中…

# re: 软件发行管理(上)  回复  更多评论   

2007-09-17 16:00 by 同声传译
您好,我们公司是一家中国境内的专业翻译公司,从事各专业翻译服务,包括笔译、口译、同声传译和同声传译设备租赁等。我们需要招聘兼职翻译、同传译员和外籍英文校对人员。
希望有机会合作.
郭先生


只有注册用户登录后才能发表评论。


网站导航: