浅析软件过程改进中的人力因素
摘 要:随着软件行业的发展,本文通过对软件过程的了解并提出了影响软件过程改进的人力因素,并对其在软件过程中的软件开发人员的团队协作,以及当前对软件人才的需求及相关的教育和培养进行了分析。
关键词:软件过程;软件过程改进;软件人才;P-CMM
一、 软件过程的改进
软件过程,是指实施于软件开发和维护中的阶段、方法、技术、实践及相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。
80年代,在美国国防部资助下,由卡内基梅隆大学软件工程研究所(S E I)建立了一个用于评价软件开发组织的软件过程能力成熟度的软件过程模型,称之为CMM(MCapability Maturity Model)。CMM提供了一个框架,将这些进化步骤组织成5个成熟度等级,它为过程不断改进奠定了顺序渐近的基础。这5个成熟度等级定义了一个有序的尺度,用以测量组织软件过程成熟度和评价其软件过程能力。许多软件企业过分重视技术,强调技术统领一切,盲目扩大开发队伍,不断压缩管理成本,项目的开发过程处于无序的混乱中。而项目的成功往往依赖于一个杰出的管理人员或一个有经验的、有战斗力的软件开发队伍,对于产品的性能和质量依赖于个人的能力和行为,而软件项目常常严重超期或超出预算,无法体现新方法、新技术带来的优势;经验未被积累,无法为以后开发过程中提供有效的经验;无法开发高可靠性和可用性软件;只是永无休止的产品维护;承担用户拒收的风险。这些导致了企业形象受损,市场份额缩减,造成企业发展不具有稳定的态势。
上述问题自然引出了软件过程改进的重大意义所在——软件过程改进要使人员、技术和工具在企业内部得到合理的分配和利用,就要优化软件过程,同时提高效率、质量、人员技能、团队士气和凝聚力,从人力因素去降低风险和成本,是软件企业走向成熟的必由之路,应该得到高度重视。
二、 影响软件过程改进的人力因素
任何一个软件的开发,都是以提高软件质量和降低软件开发成本这两个目标,去追求最大效率,只要是软件企业要开发产品,就是一个软件过程。如果这个开发过程不能很好的适应开发工作的要求,就需要进行过程改进。软件过程面对的是一种含有大量管理成分的工程技术,并不容易把它做好。软件过程本身是对项目管理中的成本、进度、组间协作等一些与软件质量本身有较直接的关系的因素起作用。如何提高软件的质量将是所有软件企业所要面对及需要解决的问题。
一个项目被迫取消、不能按时交付使用。失败的原因之一就是人的因素。
人力因素――很少有项目管理人既能100%地满足项目的业务需求又能解决问题。软件行业的特点是以软件产品来决定该软件企业的主导地位。当某种软件产品拥有了较高的市场占有率,具有主导性,那么该企业也会理所当然地成为该行业的主导者。这种特点导致企业重视软件产品质量和开发技术,而缺乏“主动”发展人力方面的文化氛围。
我国软件企业一般把重点都放在软件过程改进上。而在改进中出现了几个主要困难:员工有抵触情绪并持怀疑态度,以及领导支持力不够。在过程改进的环境中需要对人力方面的改进,那么精力和工作安排上必定会产生矛盾。每个员工承担不同角色就面临着不同的问题。从软件开发处于不同职位来看,项目经理、质量保证人员和高级经理都承担着各自的工作任务;而从软件过程改进的角度又定义了相应的角色和职责,其中最重要的两个角色即软件过程改进的负责人以及软件工程过程组。在实施人力方面改进中,每个员工又是改进的参与者和管理者。随着企业综合能力的提高,每个员工的职责和任务都在增多,这难免会出现一些偏差。所以组织员工如何平衡处理这些关系也是一个比较重要的问题。
三、软件人才的教育和培养
1、软件产业所需的技术人才
大体处于三个不同层次:(1)、系统规划层次,其任务是提出软件系统设计的思路和项目;(2)、设计层次,其任务是根据思路和项目将其细化成各个子系统;(3)编程层次,其任务是将各个子系统编写为相应的程序并通过调试合成为一项软件产品。同时软件产业还需要相应的管理及营销人才。由于软件产业人才层次的需求不同,所以软件产业人才的培养不可能在高校某一个专业范围内一次完成,而是根据不同的人才培养目标由不同层次、不同专业的学校和培养机构去各自承担。
目前,在软件人才培养过程中,学校培养只是基础和初步环节,更重要的是在实践中培养。因此,软件人才的继续教育发展很快,成为软件人才培养的—个重要发展趋势,潜在的市场需求很大。
软件产业虽已属成熟的产业,但软件产业或信息产业的人才仍然相当缺乏,就业前景相当乐观。
2、软件产业人才的培养
首先是基础教育,现在大多数高等院校和社区学院的计算机科学、电子工程、信息技术系和有关的继续教育系都设有软件工程、网络设计等软件基础课程,为本科生提供软件理论与工程方面的入门知识,为软件公司培养从事软件开发与设计方面的人才;
再次就是一般大的软件公司都设有自己的培训部门或中心,它们主要是利用市场和公司的需求培养各个层面的动手能力强的制作和编程人员,不仅可以获得专业证书而且可以获得学位。
此外,一些大的软件公司为推销本公司产品还与高校和社区学院合办培训项目或委托社区学院代办培训项目。社会上名目繁多的私人培训公司、培训中心、咨询公司等比比皆是,它们主要利用业余时间培训在岗人员。
四、小结
软件业的发展需要软件过程的不断改进,而软件过程的改进其中不可缺少的因素依靠于软件人才的质量,可以说软件人才的质量是软件业能否顺利发展的决定因素、第一位因素,如何培养软件人才,如何做好这个培养软件各种层次人才大系统的工作不是哪一个公司,哪一个部门单独能成功的,它需要软件企业、教育部门、市场IT教育根据中国的国情认真摸索与思索。
参考文献:
[1] 驻美国使馆教育处:美国软件人才培养, 《中国高等教育》半月刊2000年第21 期 48页
下一篇:C语言程序设计教学探讨