APP下载

内部控制在软件开发项目管理中的运用

2019-05-14孔德威

财会学习 2019年14期
关键词:项目管理内部控制运用

孔德威

摘要:随着计算机走进人们的生活并在各行各业得到广泛使用,软件开发工作就获得了充分的发展机会,国内也成长起来了一大批成熟的软件开发企业,为各类办公、人们的日常生活开发出各种所需软件。因此,需要结合软件开发项目管理需求,把内部控制管理理念运用其中,通过加强对内部控制体系的探究,实现对软件工程项目管理方式的规范。加强对软件工程项目执行情况的监管,保证项目的开发进度以及达到设计的目标要求,促进软件工程项目管理水平的全面提升。

关键词:内部控制;项目管理;运用

近年来,随着我国互联网技术的稳定发展,给软件行业发展提供了良好的前景,在当前时代快速发展的情况下,国内的软件企业有能力开发各种大型项目,有的项目甚至需要几年完成。鉴于软件开发项目这种特殊化的项目管理主体,特别是对大中型项目采用传统的管理方式是远远不够的。在实际工作中,如果能把内部控制理念运用到软件开发项目管理工作中,通过内部控制的方式,及时发现项目开发过程中出现的问题,发现问题后通过对问题的分析找出应对措施,从而规避软件开发项目开发失败的风险。

一、软件开发的项目管理概述

从项目管理角度来说,其主要指项目管理工作人员在有限资源的环境下,通过采用现代化管理方式和理念,对项目中包含的各项内容进行跟踪管理。也就是从项目设计环节入手,到项目结束整个过程进行统一规划、协调、引导和管理,以此保证项目目标的顺利落实。

从软件行业来说,在落实项目管理工作时,涉及的内容主要以项目开发过程控制管理为主。软件工程项目是开发人员根据客户委托或企业为了获得新产品进行的开发活动。软件工程管理主要指对软件工程开发需求论证环节、软件开发环节以及软件支持环节等各项活动进行管理,保证给用户按时提供接受的委托工作,使用户构建高质量、高效率的软件工程项目。软件开发内部控制是对软件开发过程的各个环节做出风险评估,针对有可能出现的风险进行的防范;并在项目开发过程中通过测试分析等措施及时发现风险,并有效的将风险解决在萌芽状态,是企业的内部风险控制。也是在现代市场经济环境中,通过接受专业的控制建议,建立自我纠错的系统,通过系统的改善工作,将软件开发过程中的风险变成可管理的、可操纵的机会。

二、软件开发环节的风险识别

(一)项目设计階段未经科学论证或论证不充分

在当前的市场经济环境下,随着全球贸易以及电子信息技术的发展,以及产业升级、软件国产化的政策引导,大数据时代已经来临,这些因素都给软件行业提供了更多发展机遇。软件企业在接受客户委托时,一般情况下是业务人员寻找客户、客户提出需求、双方多次商榷、达成委托事项签订委托协议,然后开发人员根据委托内容进行开发。但在这一过程中开发人员未参与到委托事项的论证过程中,因客户对提出的需求不明确,加上业务人员或售前工程师对软件开发知识的欠缺,导致没有从科学角度设计委托项目,造成开发人员边开发、客户边提需求、开发多次修改。最终导致软件的创新不足或加大产品成本、或造成无法按期交付产品的情况发生,情节严重导致项目停止。

(二)软件开发人员配备不合理

软件开发行业是劳动密集型企业、技术密集型企业。对工程师的技术要求较高,又是靠工程师手工完成的工作,没有办法通过智能化设备代替。项目组主要由实施工程师、需求分析师、概要设计师、详细设计师、前端开发工程师、后端开发工程师、测试工程师、部署工程师等人员组成,要根据开发项目的难易程度,配备能力匹配工程师参与开发。如果配备的工程师技能过高,可能造成资源浪费,成本提高;如果专业技能不能胜任项目开发,无法保证项目的质量和按期交付,导致成本提高或项目失败。

(三)开发过程管理不完善

项目经理是项目开发管理的责任人,软件开发中人力资源的投入成本是软件行业成本的主要组成部分。一方面反映了开发工程师经济利益,另一方面是企业经营成果和核心竞争能力的表现。所以,开发过程中人力资源管理是项目管理的重要内容。

项目经理需要根据项目实施计划提前与各类别工程师协调好参与项目时间。如有项目变更,需及时调整实施计划,并通知项目组成员,方便工程师做好工作时间的调整。同时项目经理需要根据实施计划,保证各工程师在规定时间内按照设计的目标保质保量的完成工作。避免因项目进度等原因造成工程师进场后不能正常开展工作,造成成本上升的风险。

三、内部控制在软件开发项目管理中的应用

(一)项目设计阶段的内部控制

通常情况下,软件开发项目设计环节主要有两部分组成,一个是概要设计,另一个是详细设计。其中,概要设计也就是把软件需求转变成软件系统框架以及数据框架,通常涉及了系统框架设计以及数据框架设计亮点。系统框架设计往往包含软件系统中各项成分之间的关系,而数据框架设计更注重数据结构含义,该项环节主要强调宏观设计以及框架设计。项目设计阶段内部控制方面涉及的内容主要有四个方面,第一,加强对软件开发部门提供的软件框架设计方案进行核查,并监管设计执行情况。第二,结合实际情况,由软件开发部门提供的软件框架设计执行方案。第三,由监管软件开发部门对规划方案执行情况进行核查,并根据核查结果落实对应的设计工作。第四,检查软件开发部门提供的软件框架设计档案。

同时,安排专业人员采用考核、评估和分析等方式对软件框架设计情况进行明确,同时保证软件框架审计和需求内外统一。确保采用的软件设计方案和标准具备合理性,提升设计方案的执行性和可行性[4]。

软件开发企业在进行项目设计时由于缺乏可行性研究或者可行性研究流于形式、决策不当、盲目上马。并且因为设计环节缺乏科学的内部控制,无法合理保证项目开发成功,引发难以实现预期效益或项目失败的风险。因此,在进行项目设计时,应该注重设计内容,从实现软件设计目标和考虑软件的应用硬件环境两个方面入手进行设计工作的开展。为了避免上述问题产生,首先结合软件开发设计需求,做好相关人员岗位培训工作,使设计人员具备与岗位匹配的专业知识和胜任能力。并且,企业可以设置组织独立于项目之外的专业人员或机构进行评估论证并出具评估意见。其次,加强需求分析,需求分析作为软件工程的核心主要划分为两项内容,一个是非技术要求,另一个是技术要求。需求分析应该确保软件产品可以更好的迎合项目实际需求。在需求分析环节中,需要对客户的自身要求加以明确和核查。客户在提供软件需求分析执行规划方案时,需要客户的软件使用部门给予对应的配合。并且,客户应该根据规划要求落实对应的软件需求分析工作,客户在提供软件需求方案的过程中,要求对需求档案功能、型号、安全等级、相关数据等内容进行核查和明确。其次,编码阶段,在进行软件开发应用时可以采用流程管理的方式,实现对软件开发环节中各项资源投放情况进行监管和把控,以此让应用软件开发可以更好的满足实际需求。

(二)项目开发阶段的内部控制

项目开发阶段是项目进行投入的主要阶段,需投入大量的人力资源完成系统的整体开发与功能、性能、安全测试,并进行系统部署汇报演示。本阶段的成本在整个项目成本中占比较高,是内部控制的重点和难点,企业可以成立项目管理办公室,负责在项目整个开发过程中对项目进行定期检查和不定期对项目开发过程进行检查,及时发现风险,并做出应对措施,内部控制可以贯穿在下列的开发过程中。

1.项目经理需提前将确认后的《需求规格说明书》发送给开发经理,开发经理研读《需求规格说明书》后形成问题清单,并由项目经理召开需求分析会,安排时间对《需求规格说明书》详细导读和问题答疑。开发经理及小组成员必须参与,会后形成《需求分析会会议纪要》。并对项目信息中的版本、难度、亮点三项内容进行补充修订。

2.开发经理对已经明确的需求进行开发设计,向“技术评审委员会”提出进行设计评审,会后形成《设计评审会会议纪要》。

3.需求导读后由项目经理和开发经理共同制定详细的《项目开发计划》以及确定的预估开发工作量,为以后需求变更时作为基准参考。

4.开发经理根据《项目开发计划》安排开发人员和集中配置组对系统进行配置和开发工作。根据模块的难易程度分配开发工作。

5.项目经理组织对开发组交付的系统进行功能、性能、安全、集成测试,并形成相应的测试报告。所有的bug(指电脑系统或程序的缺陷问题)项目经理负责登记,如需进行变更,填写《需求变更单》需客户确认。对在这个环节提交的bug需进行统计并计入项目绩效评价中,具体解决方案由开发经理及相关开发配置人员负责。

6.项目经理对已经开发完成的系统为客户提供阶段性成果汇报,汇报期间客户提出的相关问题进行记录和汇总,如超出合同部分交由业务部门进行商务洽谈。

7.系统功能整体满足客户需求后,由项目经理组织进行系统交付初验。项目经理提交初验报告及其他初验材料,包括但不限于概要设计、详细设计、数据库设计、测试用例、测试报告等,其中部分技术文档由产品中心协助准备。《初验报告》需客户确认盖章或签字。

8.需归档的交付物:需求分析会议纪要、项目开发计划、概要设计、详细设计、数据库设计、测试用例、测试报告、初验报告、需求变更单、合同变更补充协议、产品/货物签收、初验材料。

(三)项目验收阶段的内部控制

首先,运行阶段。在系统试运行环节中,内部控制涉及的内容包含对试运行规划方案进行核查,设定试运行环节中业务周期、执行范畴、组织框架以及应急处理对策等;核查软件开发部门对用户培训内容、规模、对系统管理人员以及操作人员进行专业培训;考察试运行规划执行状况;监管软件开发部门试运行记录数据,在此环节中一旦发生问题,应该第一时间进行核查和分析,并做好对应的记录工作,及时进行处理。其次,系统验收移交阶段。系统验收移交作为项目是否可以顺利落实建设目标的检测标准,同时也是最终的检测结果。在此环节中,内部控制涉及的内容主要有:第一,考核竣工环节中各项数据的真实性和完善性,确保和项目实际状况吻合。第二,结合核查结果,对项目数量、质量等内容进行核实,同时给后续工程款项支付提供凭证。第三,核查软件开放项目各项资料,引导建设部门和开发部门交接对应的项目数据。第四,辅助用户对项目数据档案、源代码、产权说明文件、变更数据等内容进行核查,同时考核移交内容的合理性。具体过程如下:

1.运行阶段:主要任务是完成项目试运行前期准备和培训工作,以及试运行期间的系统日常保障工作。此项工作主要由项目经理、实施工程师、运维工程师完成。

(1)由项目经理编制《培训计划》,并组织项目组成员编写《培训文档》(用户权限设置、《用户操作手册》和操作视频必须准备好),并组织试运行前的用户集中培训(进行培训签到)。培训包括针对普通人员、部门领导和单位领导。

(2)项目经理在试运行前和客户确认试运行时间周期和《试运行计划》方案,《试运行计划》方案中必须包括试运行的试用人员清单、业务用例、操作指标、每日的操作安排。

(3)试运行分为两个阶段:第一阶段邀请有代表性的最终客户或业务骨干小范围试运行,第二阶段全员培训试运行。

(4)试运行期间项目经理和运维人员督促參与试运行人员使用系统,完成试运行方案中规定的操作内容,并每周提交《试运行周报》给客户。

(5)试运行期间系统出现的bug及需求变更录入进行记录,其中《需求变更单》需客户确认,所有问题由项目经理带领现场实施/运维人员跟进解决,同时开发团队保证bug不过夜。

(6)试运行期间由项目经理负责记录收集系统使用情况,并提交公司需求评审和工作量评估。若产生非合同内需求变更或合同内需求变更累计超过评估总项目工作量需提交业务部门,收到经公司签批的《需求变更单》且经客户签字确认后方可继续实施。

(7)完成试运行后,根据试运行期间提出的问题和需求整理成《试运行报告》提交客户确认。针对需求部分核对合同后,提请业务部门确认是否需要由商务进行洽谈,并由客户在需求变更单上签字。

(8)本阶段需形成需求变更单、培训计划、培训文档(操作手册)、试运行计划、试运行周报、试运行报告、系统应急方案书面资料并归档。

2.交付验收阶段的主要任务是组织召开项目终验验收会,提前准备验收材料,并邀请相关领导参加。此项工作主要由项目经理、实施工程师、业务人员完成。

(1)如合同涉及第三方测评,项目验收前1个月必须启动第三方测评,项目经理根据测评要求准备相关文档,其中概要设计、详细设计、数据库设计等开发文档由产品中心协助准备。项目经理安排与第三方测评机构进行现场测评,并由第三方测评公司出具对应的《测评报告》。

(2)项目上线试运行完成后,项目组根据情况申请验收,由项目经理提交《项目验收单》给客户签字盖章确认(非自然人客户确认验收必须以盖章为准),验收中必须注明“XXX项目完成验收”,或能够表达确认验收字样的文字;如客户方组织由专家进行验收,以最终《专家验收意见》单为准(需有专家签字的原件)。

猜你喜欢

项目管理内部控制运用
基于项目管理视角的中小企业营销模式应用研究
项目管理指南
项目管理成熟度模型构建研究
“赞赏发现”在高中语文教学中的运用
我国物流企业内部控制制度的问题及建议
房地产开发企业内部控制的认识
游戏教学法在小学英语课堂教学中的运用
巧用插图,注入课堂活力
行政事业单位内部控制存在问题及对策
制造企业销售与收款业务的内部控制分析