探究软件开发进程中项目管理与软件工程的结合

2020-07-22 09:54赵俊石春
电脑知识与技术 2020年11期
关键词:软件开发软件工程项目管理

赵俊 石春

摘要:软件工程是软件产品开发进程中的工程化方法,而项目管理是针对一个项目的管理方法。不论是软件工程还是项目管理在软件开发进程中都占据着重要的位置,项目管理与软件工程的有效结合,能够进一步促进企业软件开发的效率,促使企业效益最大化。因此,本文基于项目管理与软件工程的含义与二者之间的关系,探究软件开发进程中项目管理与软件工程的结合及应用。

关键词:软件开发;项目管理;软件工程

中图分类号:TP399 文献标识码:A

随着电脑、移动终端等设备的普及,软件成为必不可少的一部分,改变着人们的日常生活与工作。然而近年来,软件规模不断扩大,其复杂程度也随之加深,这对企业软件开发进程中的效率、质量以及成本控制提出了新的要求,在此背景下传统的仅遵循软件工程规律缺乏项目管理的软件开发模式逐渐不再适用于新时代需求。20世纪70年代中期,美国在调查软件开发进程中出现不能按时交付、成本过高以及质量低下等问题时发现,绝大部分的问题都是由于管理不善所导致,由此,软件开发者意识到软件开发进程不仅仅是软件工程还是项目管理的一个过程。企业应当以通用的项目管理知识体系为基础,结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,从而把控好软件开发进程中的方方面面,促使效益最大化。

1软件工程与项目管理

1.1软件工程

软件工程目前并没有一个明确的定义,但说起软件工程就会说到20世纪60年代的软件危机。20世纪60年代以前,计算机刚刚投入实际应用中,软件也并非现代社会中具有丰富界面与功能的软件,而是功能单一的小规模软件。60年代中期,计算机技术的进步使得软件规模越来越大、复杂程度越来越高,由此导致软件生产率与质量大幅下降,软件危机开始爆发。1968年,北大西洋公约组织的计算机科学家在联邦德国召开國际会议,就软件危机的问题展开讨论,并首次提出“软件工程”这一概念,软件工程学也由此诞生。目前,软件工程仍旧缺乏一个统一的定义,学者们对此众说纷纭。BarryBoehm在发表的文章中指出软件工程是借助于现代科学技术知识去对计算机程序进行设计与构造的必要的资料;电子与电子工程协会则将软件工程定义为是一种能够应用于软件开发、运维进程中的系统化的严格约束的可量化的方法;《计算机科学技术百科全书》则认为软件工程是借鉴了传统工程原则与方法,集数学、计算机科学等原理用于开发软件的工程;IS09000将软件工程定义为是输入转化为输出的一组彼此相关的资源和活动。综上所述,软件工程实际上是结合数学、工程等学科用以软件开发的规范化、可量化的一种过程化方法。

1.2项目管理

在早期软件开发进程中,根据调查,发现软件研发的情况中仅有百分之十的开发项目能够在原本约定的时间与成本下完成,由此软件开发者开始重视项目管理的作用。项目管理通常由项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目团队管理、项目风险管理等方面所构成,项目管理在实际的应用中是一个循环的过程,开始——计划——执行——控制——结束,这一系列的过程一步步促进项目的实现。

软件项目管理也是项目管理的一种,在软件开发进程中为实现软件项目在整个软件生命周期中能够按照预定的时间、成本以及质量中完成开发从而对软件项目中的软件需求分析、软件产品设计、软件产品维护等方面进行把控与管理的工程活动。

1.3软件工程与项目管理之间的关系

软件工程与项目管理之间息息相关且相辅相成,软件工程关注软件的生命周期,为软件生命周期中的各个阶段提供工程化方法。项目管理则关注项目生命周期,针对项目生命周期中各个阶段进行管理。软件工程侧重于软件,而项目管理侧重于项目过程。二者之间的关系主要为:

1)软件本身具有一定的科学规律,在上述关于软件工程的定义中BarryBoehm等人对于软件工程总结了许多具有规律性的内容,并且将其整合成一系列的工程化方法。软件项目管理究其根本是依托于软件工程,离开了软件工程那么软件项目管理也就失去了基本意义,项目管理的本质是为了能够提交符合要求的软件产品,而软件产品的开发亦离不开软件工程。因此,要做好软件项目的管理就必须能够对软件工程有个深刻的认知与理解。

2)不论是软件工程还是项目管理,都涉及一些重叠的部分。在软件工程中包含着一些管理方面的问题,而在项目管理中亦包含着软件工程的工程方法。二者之间,内容有重叠却又不完全相同,存在相互补充相互依赖的关系。例如在项目管理知识体系中强调人力资源管理的有关管理方法,而在软件工程中则强调系统分析人员、编程人员、测试人员等不同角色在不同阶段的责任。在软件项目管理中,应充分注意这两者的有机结合。

2软件开发现状

由于我国软件开发技术起步较晚,导致我国软件开发中软件工程技术以及项目管理的应用存在许多弊端。

2.1缺乏合适的软件开发管理模式

目前来说,企业大部分都能够树立工程理念,采用现代软件工程方法,即分析—设计——编码——测试——维护这五个方面,然而对于每个企业来说,业务与制度各不相同。然而很多企业都没有一个根据企业特点制定的软件开发管理模式,在不合理的软件开发管理模式下进行软件开发会导致效率与质量的下降。

2.2软件开发缺少规范性

目前,我国大部分的软件公司的规模较小,在技术上和管理存在很多不足,相对来说更加重视软件工程技术,而忽视项目管理对软件开发的作用,缺乏对软件开发项目的统筹协调,没有一个规范性的制度体系,导致人员疲软,无法发挥最大效益。虽然,有一部分的企业正对该问题采取了一些措施,建立关于软件工程技术以及项目管理的规范,但是由于检查监督不力,导致可执行力不强,对软件开发进程中的项目周期依旧存在无法把控的问题。

2.2.3缺乏软件工程与项目管理的结合

当下,越来越多的企业逐渐重视起项目管理工作的重要性,认为在软件开发过程中项目经理的位置最为关键,接下来才是程序员、网站开发人员、设计师等职位。然而,片面的注重项目管理会导致背离软件工程方法的基本规律,使得软件开发进度滞后、质量脱节等问题出现。

3软件工程与项目管理相结合的对策

3.1建立完善的软件工程与项目管理体制

完善的软件工程与项目管理体制能够促使企业规范化管理,为软件开发提供一个大致的流程与框架,提高开发效率与质量。软件开发所涉及的内容繁杂,建立完善的软件工程与项目管理体制是一项道阻且长的任务。笔者认为首先,企业应当完善员工培训机制,树立以人为核心的观念,加强关于软件工程技术的培训;加强软件项目管理方法的培训;加强沟通技巧与能力的培训。并且,能够将理论用于实践,培养软件开发人员的实际操作能力,构建理论、实践、经验三方位一体的培训机制,致力于能够为软件工程项目配备专业的开发与管理人员,从而达到促进工作效率的目的。另外,企业需要进一步完善奖惩机制。科学有效的奖惩措施能够为软件开发人员提供晋升空间,最大限度上激发开发人员的工作热情与积极性,使其更好地遵循软件工程规律与项目管理的要求。

3.2加强对软件生命周期的细化管理

传统的基于软件工程规律的项目管理属于粗放式的项目管理,并没有对每个阶段的管理进行细分,因此仍旧会出现软件项目无法按照预计的时间、质量交付的情况出现。因此,针对这一问题,企业应当对项目管理进行细分,采用精细化的管理方式。具体来说应当加强管理者对软件生命周期的每个环节的认知,然后将任务具体化到每个开发人员,再设置相应的管理人员对任务的进度流程进行监督并构建评估报告,实现精细化的监督管理,全面把控软件开发进程。另外,管理人员之间也应当通过例会进行沟通交流,一旦发现某个环节出现错误能够及时的进行补救,确保整个软件项目能够按照利益相关者的需求与预期逐步开发。

3.3项目管理结合软件工程自身科学规律

B.W.Boehm一位著名的軟件工程师曾在80年代初总结出用分阶段的生命周期计划严格管理、严格的产品控制、阶段评审、开发团队少而精等相关规律。同样,我们在进行软件开发项目管理的同时也用当遵循软件工程自身的科学规律或原则。从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。因此,企业应当以通用的项目管理知识体系为基础,结合软件工程自身的科学规律,采用适用于该阶段特点的管理方式方法,做好项目阶段评估与风险规避。

4结束语

总而言之,在软件产业蓬勃发展且竞争激烈的当下,互联网企业与机构都应当把握住时代的步伐,推陈出新,进一步加强对软件工程的重视与管理,在正确认知软件项目管理的基础上结合软件工程自身的规律与原则做好软件开发项目管理工作,一方面,加强对开发人员关于软件工程与项目管理的培训,另一方面,有效监督软件开发进程,从而推进开发效率效益的逐步提升。

猜你喜欢
软件开发软件工程项目管理
关于如何创新和完善计算机软件工程管理的探讨