浅探计算机软件工程管理工作
摘要:通过对软件产品特点的分析,讨论软件工程管理可能涉及的人员、组织机构、用户、控制、文档资料等内容.
关键词:软件工程管理 开发人员 组织结构用户
一、引言
软件工程管理目前还没有引起人们的足够重视。究其原因:首先是人的传统观念,工程管理不为人们所重视;另一方面软件工程是一个新兴的学科领域,软件工程管理的问题也是刚被提出的。同时,由于软件产品的特殊性,使软件工程管理涉及到很多学科。因此.对软件工程管理,人们还缺乏经验和技术。但事实证明,由管理失误造成的后果要比程序错误造成的后果更为严重。很少有软件项目的实施进程能准确地符合预定目标、进度和预算的,这也就足以说明软件工程管理的重要。
二、软件工租,理的内容
目前软件生产自动化程度很低,在开发过程中人是起决定性的因素,因此,软件工程管理很大程度上是对人的管理。我们可根据软件产品的特点.分析软件下程管理的具体内容,它包括对开发人员、组织机构、用户、文档资料等方而的管理。
(一)开发人员
软件开发人员一般分为:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员.根据项目的规模人小,有可能一人身兼数职,但职责必须明确。不同职责的人,要求的素质不同。如项目负责人需要有组织能力、判断能力和对重大问题能做出决策的能力;系统分析员则要有概括能力、分析能力和社交活动能力;程序员需要有熟练的编程能力等。人员要少而精,选人要慎重。软件生命期各个价段的活动有分工又互相联系。因此,要求选择各类人员既能胜任工作,又要能相互很好地配合.没有一个和谐的工作气氛很难完成个复杂的软件项目。
(二)组织机构
组织机构不等于开发人员的简单集合。这里的组织机构要求:好的组织结构、合理的人员分工和有效的通讯。软件开发的组织机构没有统一的模式。下面简单介绍三种组织机构。
1.主程序员组织机。IBM公司提出的主程序员组是软件系统结构化思想在组织上的体现。它的目的是为了保证全组的协调和统一。一位高级工程师(主程序员)主持计划、协调和复审组的全部技术活动。技术人员(一般25人)负责分析和开发活动,一位后援工程师支持高级工程师的工作,并且在该项目继续进行时,可以代替高级工程师工作,以减少可能的损失.
2.专家组。专家组强调每个人的才能,把每个人都看作是某一方面的专家,由这些专家组成一个开发机构。这种组织结构虽然能发挥所有工作人员的积极性,但往往有可能出现协调上的困难,选择这种方式要慎重.
3.民主组织.民主组织由从事各方面工作的人员轮流担任组长。很显然,这种组织结构对调动积极性和个人的创造性是很值得称道的。但是由于过多地进行组长信息“转移”不符合软件工程化的方向。
(三)用户
我们是为用户开发软件的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态.防止来自用户的各种干找和阻力。
1.用户不积极,不配合。这种表现通常来自对采用先进技术持怀疑态度的用户,他们心理上的抵触情绪会在行动上表现为消极、漠不关心。在需求阶段,做好这部分人的工作很重要,通过他们中的业务骨千,才能真正了解到用户的要求。要使他们认识到:计算机的发展和应用是现代化的必然趋势,使用计算机将会带来巨大的经济效益:让他们掌握新的技术和方法去取代某些可能过时的或淘汰的专长。
2.用户求快求全.这种表现来自对使用计算机持积极态度的人.他们中一部分人希望一个早上就能用上计算机,并且全能用上计算机。要他们认识到;开发一个软件项目不是一朝一夕就能完成的,软件工程不是靠人海战术就能加快的工期。另外,即使计算机能够处理的事情,系统也不能下于包罗万象,贪大求全。要根据现有的条件量力而行。如果系统大而全,必然会很复杂,开发时间就拖得很长,因此可能会导致一个系统的失败或性能太差.
3.用户需求变化.在软件开发过程中,用户可能会不断提出新的要求和修改以前提出的要求。从软件工程的角度不希望有这种变化。但实际上,不允许用户提出变动的要求是不可能的.因为一方面每个人对新事物有一个认识过程,不可能