论文部分内容阅读
摘 要:软件研发是一项看似简单实则复杂的系统工程,研发过程中会牵涉到方方面面,会经常发现各种问题,问题解决不好的话,软件研发就可能面临失败。为了规范研发人员的日常工作,让每个研发人员按制定好的规范保质保量地完成自己的份内工作,使软件研发项目能够按照预定的生产进度、生产质量、研发成本顺利完成,从而对研发人员、生产进度、生产质量、研发成本、研发风险等进行分析和管理,这就是软件研发项目管理的意义。
关键词:项目管理 软件研发 风险管理
随着科学技术的高速发展和市場需求的不断扩大,软件研发的需求也越来越多,个人或少数人合作研发的方式已经很难适应未来发展的需要。各软件研发企业为了更好地对软件研发进行有效地管理,都积极将项目管理的思路引入到企业的软件研发中。从理论上讲,软件研发项目管理就是对研发人员、生产进度、生产质量、研发成本、研发风险等进行分析和管理,从而达到项目能够按照预定的生产进度、生产质量、研发成本顺利完成的活动。然而实际上,软件研发项目管理的意义不仅如此,我们进行软件研发项目管理是为了将单个研发人员或者少数人的个体研发能力整合成一个单位的综合研发能力,一个单位的综合研发能力越强,才能使单位的软件生产趋于成熟,单位的发展才能越趋于稳定,从而达到减小软件研发风险的目的。同时,随着一个单位软件研发规模的越来越大和研发人员队伍数量的逐渐增大,软件研发不再是个人或少数研发人员能解决的事情。迫切需要制定各种软件研发规范来规范所有研发人员的日常工作,每个研发人员按制定好的规范保质保量地完成自己的份内工作。同时通过规范化的管理,可降低对研发人员的素质要求,从而达到降低软件研发成本。
软件研发是一项看似简单实则复杂的系统工程,研发过程中会牵涉到方方面面,会经常发现各种问题,问题解决不好的话,软件研发就可能面临失败。如何科学分析软件研发失败的原因,得出真正有价值的启示,对一个软件研发单位来说,是在今后的研发项目中少走弯路、获得成功的关键。
当前,软件研发正逐步变得复杂多样,绝大多数软件研发单位都会存在同一软件不同版本、开发和维护并存、异地同时研发等情况,这给软件研发的管理带来了前所未有的挑战。如果在研发过程中管理不善,势必造成管理混乱,研发人员之间的工作互相干扰、冲突和交叉,这样就会使研发团队的工作混乱,将严重影响软件研发的生产进度和质量。
因此,随着随着技术水平的不断进步、软件研发的不断深入以及软件产业的扩大,人们逐渐意识到对软件研发过程进行管理的重要性,逐步将项目管理的思想应用到软件研发过程中,这样便于对软件研发项目进行资源管理、成本核算、进度管理等。
当前,软件研发过程中,常常会出现这样的现象:有时为了赶进度,在较短的时间内就研发出一套产品,但由于研发时间短,测试不够,投入运行后问题不断,后期程序只能是一改再改,程序试运行时间有时长达一两年,给后期维护带来了很大困难;有时在初期目标不明确的情况下就匆忙上马,导致后期拖延很长时间,甚至无法完成设计,导致项目失败。从软件研发项目管理的角度来看,出现这些问题的主要原因有以下几种:
一是缺乏项目管理知识的培训。项目管理就是以项目为对象的系统管理方法,通过一个临时性的、专门的柔性组织,对项目进行高效率的计划、组织、指导的控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。项目管理的核心特征就是优化组合、动态管理。如果项目组成员不了解项目管理的知识体系,那么在实际工作中就只能依靠个人的能力,那样工作就会很随意,软件研发的过程就很难控制,软件研发的目标就难以实现。
二是项目计划意识问题。一个成功的项目计划,离不开对项目范围的定义和规划,并根据项目可用资源和费用,制定费用管理计划、进度管理计划等项目分项计划。在项目计划执行过程中可根据实际情况提出变更请求,然后再修改项目计划。如果项目负责人总认为项目实施过程中不确定因素较多,一切都要根据当时的情况再确定,主计划、阶段计划的制定都流于形式,计划就会得不到有效执行,项目计划与项目实际执行就会严重脱节,项目的正常进度就得不到有效控制。
三是管理意识问题。项目负责人对整个软件研发项目负责,他不仅要负责具体的技术工作,而且要担负管理者的角色,从总体上对项目进行目标与范围描述、重大里程碑计划、组织设计、工作分解、责任分配、资源计划、费用分解、网络计划图绘制、成本累计曲线绘制、风险管理、进展状态控制、项目总结以及移交、项目后评价等。如果项目负责人不能从总体上把握整个项目,而是埋头于具体事务工作,势必会造成项目组成员任务不均,影响项目的顺利进行。对于一些技术好却不太服管理的技术人员缺乏有效的管理手段,不能充分调动这些人的积极性。另外由于工作分解结构设计的不合理,项目分项任务不能合理高效地分配给项目组成员,达不到任务的“负载均衡”。
四是沟通意识问题。成功项目管理的目标是“利益相关者的满意”,利益相关者就是参加和可能影响项目工作的所有个人和组织。现实情况是有些项目在研制过程中对利益相关人缺乏清醒的定位,不能识别利益相关人及其利益。项目研制过程中,项目研发人员与客户沟通不够,对客户的需求了解不深,也不能认真听取客户的意见,对于软件需求说明不够细化,项目开始后,就会出现更改需求,造成项目范围的蔓延,生产进度无法控制,最后成本增加,甚至造成不必要的损失。有些项目负责人在制定总体方案、项目计划和阶段计划时与项目组成员沟通不够,对于技术人员的意见不能引起足够的重视,对于项目研制过程中的信息反馈、情况通报不能及时通报到项目组成员,成员之间、成员与负责人之间沟通不足,造成各做各事、重复劳动。
五是风险管理意识问题。凡事预则立,不预则废。任何项目都存在风险,在项目研制过程中,项目负责人应充分考虑到项目潜在的风险,进行风险评估,制定相应的风险防范措施,最大限度地减少风险的发生。当前,我们有些项目负责人认为软件研发项目只要需求明确,不会存在风险或者风险不大,所以不能充分意识到风险管理的重要性,对于计划书中风险管理,不采取科学的风险评估方法进行评估,而是简单应付了事,随便列出几个经常存在的风险,再随便找一些对策,对于真正软件项目研制过程的风险起不到任何防范作用。
关键词:项目管理 软件研发 风险管理
随着科学技术的高速发展和市場需求的不断扩大,软件研发的需求也越来越多,个人或少数人合作研发的方式已经很难适应未来发展的需要。各软件研发企业为了更好地对软件研发进行有效地管理,都积极将项目管理的思路引入到企业的软件研发中。从理论上讲,软件研发项目管理就是对研发人员、生产进度、生产质量、研发成本、研发风险等进行分析和管理,从而达到项目能够按照预定的生产进度、生产质量、研发成本顺利完成的活动。然而实际上,软件研发项目管理的意义不仅如此,我们进行软件研发项目管理是为了将单个研发人员或者少数人的个体研发能力整合成一个单位的综合研发能力,一个单位的综合研发能力越强,才能使单位的软件生产趋于成熟,单位的发展才能越趋于稳定,从而达到减小软件研发风险的目的。同时,随着一个单位软件研发规模的越来越大和研发人员队伍数量的逐渐增大,软件研发不再是个人或少数研发人员能解决的事情。迫切需要制定各种软件研发规范来规范所有研发人员的日常工作,每个研发人员按制定好的规范保质保量地完成自己的份内工作。同时通过规范化的管理,可降低对研发人员的素质要求,从而达到降低软件研发成本。
软件研发是一项看似简单实则复杂的系统工程,研发过程中会牵涉到方方面面,会经常发现各种问题,问题解决不好的话,软件研发就可能面临失败。如何科学分析软件研发失败的原因,得出真正有价值的启示,对一个软件研发单位来说,是在今后的研发项目中少走弯路、获得成功的关键。
当前,软件研发正逐步变得复杂多样,绝大多数软件研发单位都会存在同一软件不同版本、开发和维护并存、异地同时研发等情况,这给软件研发的管理带来了前所未有的挑战。如果在研发过程中管理不善,势必造成管理混乱,研发人员之间的工作互相干扰、冲突和交叉,这样就会使研发团队的工作混乱,将严重影响软件研发的生产进度和质量。
因此,随着随着技术水平的不断进步、软件研发的不断深入以及软件产业的扩大,人们逐渐意识到对软件研发过程进行管理的重要性,逐步将项目管理的思想应用到软件研发过程中,这样便于对软件研发项目进行资源管理、成本核算、进度管理等。
当前,软件研发过程中,常常会出现这样的现象:有时为了赶进度,在较短的时间内就研发出一套产品,但由于研发时间短,测试不够,投入运行后问题不断,后期程序只能是一改再改,程序试运行时间有时长达一两年,给后期维护带来了很大困难;有时在初期目标不明确的情况下就匆忙上马,导致后期拖延很长时间,甚至无法完成设计,导致项目失败。从软件研发项目管理的角度来看,出现这些问题的主要原因有以下几种:
一是缺乏项目管理知识的培训。项目管理就是以项目为对象的系统管理方法,通过一个临时性的、专门的柔性组织,对项目进行高效率的计划、组织、指导的控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。项目管理的核心特征就是优化组合、动态管理。如果项目组成员不了解项目管理的知识体系,那么在实际工作中就只能依靠个人的能力,那样工作就会很随意,软件研发的过程就很难控制,软件研发的目标就难以实现。
二是项目计划意识问题。一个成功的项目计划,离不开对项目范围的定义和规划,并根据项目可用资源和费用,制定费用管理计划、进度管理计划等项目分项计划。在项目计划执行过程中可根据实际情况提出变更请求,然后再修改项目计划。如果项目负责人总认为项目实施过程中不确定因素较多,一切都要根据当时的情况再确定,主计划、阶段计划的制定都流于形式,计划就会得不到有效执行,项目计划与项目实际执行就会严重脱节,项目的正常进度就得不到有效控制。
三是管理意识问题。项目负责人对整个软件研发项目负责,他不仅要负责具体的技术工作,而且要担负管理者的角色,从总体上对项目进行目标与范围描述、重大里程碑计划、组织设计、工作分解、责任分配、资源计划、费用分解、网络计划图绘制、成本累计曲线绘制、风险管理、进展状态控制、项目总结以及移交、项目后评价等。如果项目负责人不能从总体上把握整个项目,而是埋头于具体事务工作,势必会造成项目组成员任务不均,影响项目的顺利进行。对于一些技术好却不太服管理的技术人员缺乏有效的管理手段,不能充分调动这些人的积极性。另外由于工作分解结构设计的不合理,项目分项任务不能合理高效地分配给项目组成员,达不到任务的“负载均衡”。
四是沟通意识问题。成功项目管理的目标是“利益相关者的满意”,利益相关者就是参加和可能影响项目工作的所有个人和组织。现实情况是有些项目在研制过程中对利益相关人缺乏清醒的定位,不能识别利益相关人及其利益。项目研制过程中,项目研发人员与客户沟通不够,对客户的需求了解不深,也不能认真听取客户的意见,对于软件需求说明不够细化,项目开始后,就会出现更改需求,造成项目范围的蔓延,生产进度无法控制,最后成本增加,甚至造成不必要的损失。有些项目负责人在制定总体方案、项目计划和阶段计划时与项目组成员沟通不够,对于技术人员的意见不能引起足够的重视,对于项目研制过程中的信息反馈、情况通报不能及时通报到项目组成员,成员之间、成员与负责人之间沟通不足,造成各做各事、重复劳动。
五是风险管理意识问题。凡事预则立,不预则废。任何项目都存在风险,在项目研制过程中,项目负责人应充分考虑到项目潜在的风险,进行风险评估,制定相应的风险防范措施,最大限度地减少风险的发生。当前,我们有些项目负责人认为软件研发项目只要需求明确,不会存在风险或者风险不大,所以不能充分意识到风险管理的重要性,对于计划书中风险管理,不采取科学的风险评估方法进行评估,而是简单应付了事,随便列出几个经常存在的风险,再随便找一些对策,对于真正软件项目研制过程的风险起不到任何防范作用。