11
20
2009
0

商业软件开发工作流程

本站文章,皆为原创,如需转载,请注明出处,违者必究

商业软件概述

与网上随手便拿来的开源软件相比,商业软件的开发无论是品质定义,还是工作流程上都有着质的差别:

  • 首先,商业软件有着明确的目标群体、软件在一开发出来的时候就明确了使用功能和用户对象
  • 第二,商业软件开发者向用户收取了费用,因而有责任的需要提供技术支持和服务
  • 第三,商业软件有着很高的品质要求,至少在正常的使用功能上必须保证没有bug,一旦出现某次失误就将导致用户的工作损失,这是不能允许出现的。

由于商业软件的特殊定位和用途,使用商业软件的用户可以对该软件有足够的信赖,并基于它完成一些正式场合的工作而不会出现遇到问题的情况。商业软件是当今真实产品世界中的重要工具,支撑着主流软件业的发展。

商业软件开发阶段

为了实现较高的品质,商业软件的开发往往分为两个主要阶段,每个阶段有几个重要的质量保障步骤。通常情况下,商业软件开发团队的工作中有着如下的开发流程定义:

  1. 概念验证产品试制阶段
  2. 最终产品代码开发阶段

其中第一个阶段也就是试制阶段,该软件开发的初衷将导致团队集体讨论出一系列的具体功能需求,提出各种丰富功能的想法和辅助工具的思路,然后大家基于这些明确的需求编写一些快速但是效率低下的代码,最后组成一个具有所有需求的功能的但是bug很多,也不能用于正式场合的验证产品。当验证产品已经证明所有需求的功能都是可以实现的,那些部分是多余的,哪些是很重要的以及哪些是无法实现的,各种妥协之后,这个试制阶段的代码就寿终正寝了,经过了严格的项目考评之后,如果开发过程顺利则将进入最终产品开发阶段。

概念验证产品也并不完全是从一开始就由团队集合起来这样商业化有组织的开发起来,往往许多产品的原型都是由一些对一些领域有兴趣的个别程序员或者私下的团队,出于个人的爱好和兴趣来一起写了一个能用,但是并不商业化的代码,最后形成真正的商业产品的。

第二阶段,最终产品开发阶段的工作,与概念试制阶段相类似,但是拥有着很紧的时间表,明确的人力、资源与阶段定义。最终产品的开发中,不能再考虑各种快速但是问题很大的代码实现方式,而要兼顾可靠性和开发进度,使用较成熟的算法来实现各个模块,最后为了一致的目的结合到一起,完成最初定义的功能。最终产品开发阶段往往分为如下开发步骤:

  1. Alpha Stage,初步框架的实现,完成最主要的功能内容
  2. Beta Stage,功能的完善阶段,所有需求功能的完成
  3. Release Check,质量检测阶段、用户试用与错误报告、除bug、用户界面友好性的完善等。
  4. Release阶段,正式推上市场

虽然第三个阶段中强调了错误报告、用户界面友好性,但是往往这两点始终贯穿着整个最终产品开发阶段,并真正决定着商业软件的品质。最终的商业软件与原型不同,功能列表已经完全固定下来,在这些功能之外一般不会再考虑添加其他新功能,直到下一代产品的试制阶段的开始,因而这些代码往往很难于扩充,也很难于继续发展,一切都只是为了高效的完成最初制定的目的而构建的,这一点与开源软件、原型软件有着本质的区别。

开源软件现状

现在的开源软件往往是一些爱好者自主发出的开发,往往只有原型制作的第一个阶段,后面的商业化阶段都不会拥有,因而这样形成的代码体系非常利于功能的扩展,但是由于内部各种实现算法都是追求快速实现的方法,问题可能会很多,而且因为积累而不断的恶化。

但是开源软件也有着品质保证的部分,虽然不像商业软件团队中所使用的那么明确,但是通过大量的用户提交的错误报告也能将其中许多明显的bug消除掉,因而大多数非正式场合的使用是可以达到要求的。

往往一些比较实力派的开源软件工程,虽然1.0系列的产品只有商业软件原型开发阶段的品质,但是他们会按照1.0的实现经验彻底推翻原有的1.0代码体系,重新从0开始基于原有的实现经验构建全新的2.0产品,这个时候在这种开源软件中会创造出商业软件一般品质的代码和程序,这也正是现在许多开源软件也被用于一些正式场合的原因。但是开源软件对于资金的匮乏和开发者后来的开发动力的慢慢丧失,也会导致软件最后发展成为许多许多人集体在开发的过程,作者本人不再强调代码的一致性,因而导致软件代码质量的下降。

Category: 程序开发 | Tags: | Read Count: 2603

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com