关闭

人与软件工程

标签: 项目管理产品文档测试工作email
599人阅读 评论(0) 收藏 举报
分类:
        软件开发工程化可以看作是确定一个软件过程,并确保软件过程正确执行的行为。从产品的角度来看,规范软件过程的目的是为了提高产品的质量,降低个体的不确定因素对软件质量的影响。而软件产品不同于传统产品的特点在于,软件开发是一项智力密集、创造性成分较高的劳动,天然存在着开发者个人水平、思维方式与喜好等方面对产品不可避免的影响。因此,任何软件开发标准规范的贯彻执行在实际中都会碰到这样的困难:

* 开发人员对由规范引入的额外负担的抵制
大部分程序员对写需求分析文档、模块规格文档不会有什么兴趣,因此有可能造成敷衍、应付的局面,从而产生大量无用的垃圾文档,反而浪费开发者和管理者的时间;

* 项目中资源的缺乏与执行规范所必须的管理代价之间的矛盾
很多情况下要求完成项目的时间和资金有限,因此开发人员为了完成任务有可能无法保持相关文档的更新,项目管理者迫于按期完工的压力不得不放弃很多QA工作,或者由于资金有限根本无法分配QA力量;

* 执行规范本身引入的个体不确定性因素
QA人员在对项目情况和软件技术没有十分深入了解的情况下,如何断定一份需求规格说明是完整的、无二义性的?如何判断开发人员提交的规格说明是符合要求的?软件过程中的验证与审核手段很多情况下依赖于个人判断,其本身又造成了个体因素对产品质量可能造成的影响,这与传统产品的制造是很不相同的。

* 管理指标量化在软件开发中的困难
对软件过程进行管理的前提是能够看到实施情况与实施目标之间的差异,但对软件开发进行度量并不是一件容易的事情。项目管理者希望能在审核报告中能看到这样的明确说明:“该模块提供的功能与需求规格说明之间存在16~18%的差异,测试用例的覆盖率仅达到82.6%……”但对于发部分人员水平有限的组织来说,这并不是选择一个优秀的过程模型就能办到的。

* ……,等等

因此,在贯彻执行软件过程规范时,如果仅仅依靠文件规定的约束和行政管理手段,可能不会收到好的效果,甚至可能造成生产率的降低,这与引入软件过程规范的初衷是矛盾的。在这些问题中,有一些是软件开发行为自身的深层矛盾,是当前水平无法有效解决的,但也有一些是可以通过努力克服的。在实施软件过程中,应该注意以下两点:

1、坚持管理以人为本的原则
管理本身的目的不是对人进行限制,而是帮助人解决问题。举例来说,开发过程中创建文档的目的是为了加强开发者及用户之间的交流,为了使得产品更加易于理解和开发,而不是为了满足规范规定的文档必须如何齐全本身。如果开发者能够从详尽的需求说明中获取对模块彻底把握的安全感,从测试过程获取对最终产生优质产品的信心,那么他们对这样的规范体系就会很容易接受并自觉执行。确保软件过程的实施,对于开发者而言,应该是起到降低开发难度,减少开发工作量的作用,而不仅仅是有利于项目管理者。


2、适当地以法治手段取代人治手段
相对于依赖人的决策判断来实施管理的“人治”来说,“法制”手段就是不需要个体主观判断参与的管理方法。对于软件开发来说,就是建立CASE支持环境,使得软件过程实施的管理自动化、可度量化、可实施化(在下节将另行陈述)。例如,如果CASE系统发现本周用户对某些功能需求规范的更改频度超过60%,而其中80%属于某一个特定用例,那么CASE系统将判定此用例的定义与用户实际需求有较大偏差,并通过email提醒相关需求工程师。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:416563次
    • 积分:4607
    • 等级:
    • 排名:第7020名
    • 原创:72篇
    • 转载:121篇
    • 译文:2篇
    • 评论:39条
    最新评论
    友情链接