软件过程的改进计划(上)

发表于:2008-04-02来源:作者:点击数: 标签:改进计划
1:软件过程思想 1.1:什么是过程 过程的定义很多书上都给出了不同的答案。可能是这些给出的定义所关注的方向不同,因此会忽视一些其他方面,造成很难给过程一个明确的定义。在这里引用一个比较全面的定义来阐述过程。“过程事实上有三方面的特性:首先,过程
1:软件过程思想

  1.1:什么是过程

  过程的定义很多书上都给出了不同的答案。可能是这些给出的定义所关注的方向不同,因此会忽视一些其他方面,造成很难给过程一个明确的定义。在这里引用一个比较全面的定义来阐述过程。“过程事实上有三方面的特性:首先,过程应被定义,因此过程的第一个方面就是过程的定义,通常是将过程所包含的活动及程序文档化;第二,应将关于过程的知识传授给需要执行过程的每一个人,所以第二个方面就是过程的学习。也就是说应让过程的知识深入到每个过程执行者的头脑中去,并以此驱动他们的行为与活动;就像产品的形成是经过一系列的工序处理后的结果一样,通过执行过程中的活动才能获得最终的过程结果,这就是过程的第三方面。”***[引用自《软件过程改进 Sami Zahran著》第一章1.2.2]

  其实简单的理解,过程的定义可以描述为:什么人正在做什么事情,什么时候去完成这件事,并且如何去完成这件事的一个特定目标。

  1.2:软件过程

  1.2.1:软件过程定义

  软件过程广义来将就是指:不仅仅包括软件开发和管理的过程,并且还包括软件合同的管理,软件维护,软件支持及整个软件组织的管理等的全部活动。而狭义的软件过程则指:软件开发过程,包括软件开发过程中的全部活动:需求分析,设计,编码,测试。这些过程可以是增量的交替的开发,或者可以采用迭代的开发。

  我们这里所要讨论的软件过程可以定义为:对软件开发过程的管理,软件生命周期的管理与工程化过程支持的规范说明。而此软件过程的使用者为公司的软件工程师和项目经理,最终的结果就是软件程序,系统及文档。

  1.2.2:为何要使用高效的软件过程

  什么是高效的、好的软件过程?要回答这个问题,我们就必须说一说低效的、差的软件过程有些什么症状。

  对于一些企业可能存在着如下的问题:

  1. 软件开发过程中执行的任务比较模糊。开发项目组中成员的职责说明不明确。文档不完善,无指导意义。

  2. 软件开发过程的执行缺乏监控,无法保证与企业管理目标的一致。开发项目中的每个成员喜欢用自己的过程去完成开发,极大的削弱了团队的能力。

  3. 整个企业崇尚技术为主,认为只要技术高了就能提高开发效益。极大忽略了过程的管理。

  4. 缺乏软件开发过程的规范化文档,进来的新人无法得到规范的指导和培训

  5. 企业原本有自己的一套规范的软件过程,但时间久了缺乏改进,也不花精力去研究新的过程,造成旧过程逐渐失效。同时这样的过程也失去了对新技术和新趋势的支持。

  6. 上级领导只关心结果,不重视过程的使用和管理。整个企业的运作环境也无法支持过程的使用或改进,造成过程成为企业的负担,无法和企业目标相一致。

  以上这些问题都是低效的软件过程的一些特征,低效的软件过程可能拖慢企业的开发效率,同时也无法很好的支持企业的运作,无法给企业带来更多的效益。

  在理解了一些低效过程的特点后,就更加肯定了软件企业必须有个高效的软件过程支持才能为企业本身带来更多的效益,也能更快的提高项目的开发效率,保证项目的质量。因为对于软件开发项目来说,在整个开发生命周期中能保证有一个高效的过程机制去支持开发,那对于整个项目的管理是很重要的。高效的过程能够让企业的开发项目组的职责明确化,便于管理。过程目标与企业目标一致,这样可以对项目成员实行激励。高效的过程结果是规范的制度,规范的文档。这些都可以很方便的运用到对新进员工的培训中去,使新成员能更快的融入到项目组中,提高团队合作能力。

  1.3:小结

  一个好的软件过程只有被定义、培训、遵守、职责明确、有足够的支持去执行才能成为真正有效的过程。

  软件过程不仅仅是我们所看到的一堆文档,这些文档所包含的内容才是真正的过程产品。通过这些规范的文档可以有效的,快速的指导整个软件开发,给项目管理一个指导性的大纲。在有了正确的管理,高效的开发过程后才能为企业和组织带来更多,更快的效益。

原文转自:http://www.ltesting.net