软件研发管理的意义和作用

2023-04-11 08:26:22 来源:网络

软件研发管理的意义和作用

软件项目管理的重要性

软件项目本身是沟通的产物。从客户需求的前期调研到需求分析到架构设计再到编码设计实现到贯穿项目过程中的测试修改再到上线发布等等这一系列工作都是以沟通为基础的。沟通不仅仅是软件项目管理的必要手段,沟通更是软件项目建设过程中的必需工具和必不可少的重要工序。

在做软件项目测试服务的过程中经常听到如下抱怨:开发出来的东西根本不是我们想要的;我们要求的某某功能没有实现;最令甲方难平心中之愤的是之前这些问题都已经口头告知了乙方项目组成员,而乙方在项目实施过程中却竟然无视如此重要的需求与反馈。也会听到有的乙方项目经理的苦诉:我手下的程序员在设计评审时描述了他所负责的模块架构,然而软件开发出来后,我发现和我所理解的结构大相径庭……

   也许有些情况比上述问题还要复杂,那么,问题何在?其实以上诸多问题都是有沟通引起的,沟通无效导致软件项目的最终失败。在软件行业,沟通的成败决定整个项目的成败,沟通的效率影响整个项目的成本、进度,沟通不畅的风险是软件项目的最大风险之一。在需求多变、逻辑性强、复杂程度高的软件项目建设过程中需要建立起良好的沟通计划与秩序,以严谨的沟通态度与科学的沟通方法保障软件项目的顺利实施。

明确的顾客需求诞生于和甲方的互动沟通之中,软件项目建设之初客户需求的确定依靠甲乙双方的不断沟通来完成。软件项目建设的软肋在于客户需求的把握。项目建设之初需要乙方派出专业的项目经理和研发骨干与乙方进行深入沟通,充分把握客户的实际需求,有时候鉴于项目之初客户需求的模糊性或者甲方项目经理的项目经验与业务范围所限,在一开始甲方的需求表达的还是不够深入、全面。这就需要乙方凭借自己的项目经验或者行业经验未雨绸缪给出规划建议或细节的充分考虑,为项目需求做出充分准确的余量规划。而这些都是建立在不断地反复沟通与对最终用户的深入调研的基础之上的。在这里对于沟通与调研的方法不做赘述。

软件项目实施过程中项目组内部需要建立良好的沟通秩序(沟通计划)并保证沟通的有效性。我们曾遇到过这样一个案例,某软件企业在开发某业务管理软件,客户需求做得非常完善,系统分析也十分明确、清晰,但在开发阶段,项目经理发现系统分析其中一个中间层的函数出错,由于该功能模块由他一个人负责开发,当时他就直接对其参数进行了修改,也并未及时和其它编程人员进行沟通说明,过后很快就忘了这件事,当项目接近尾声时,系统突然出现一个大的Bug,影响到整个系统的运行,最后在花费了大量的精力进行查询测试后,才发现是这名项目经理更改的参数出了错。如果最初该项目经理能及时和项目组成员进行沟通,这种错误完全可以避免。一个建立起良好的沟通秩序的项目团队可以有效防范项目失败的风险并能达到事半功倍的效果。

项目沟通计划是项目整体计划中的一部分,其作用非常重要,却常容易被忽视。很多项目中不做完整的沟通计划,导致沟通混乱,轻则导致项目组工作效率低下,重则直接导致项目以失败告终。项目的沟通形式是多种多样的,大致分书面和口头两种形式。书面沟通大多用来进行通知、确认和需求等活动,适合于项目团队中使用的内部备忘录。项目经理确定之初要做的第一件事就是确定整个项目的沟通计划,因为在沟通计划中描述了项目信息的收集和归档结构、信息的发布方式、信息的内容、每类沟通产生的进度计划、约定的沟通方式等等。只有建立起良好的沟通规则,才能把握好沟通,从而全面了解项目的各方面信息,不断推动项目的顺利进展。

软件开发过程中,采用软件配置管理工具有何意义

(1)配置支持。配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。[1]

(2)版本控制。版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基础。

(3)变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。

(4)构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。

(5)过程支持。过程详细描述了各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,现在软件配置管理也开始提供这部分功能。目前的软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。

(6)团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。