浅谈企业软件项目建设管理

时间:2022-05-15 03:06:39

浅谈企业软件项目建设管理

引言

1.软件项目管理发展背景。对软件项目建设的管理方法的研究和应用在20世纪70年代就已经开始了,目的是为了解决软件危机。随着软件需求的日益复杂和快速膨胀,出现了软件开发质量不可靠、成本严重超预算、开发周期不可控、使用起来问题多、可维护性差、运维成本和费用不断增加等问题。为了解决这些问题,软件工程化管理思想和理论应运而生,通过软件工程的管理模式也很好地解决了软件危机,满足了软件开发的质量可靠性、成本可控性和工期可控等需求。软件项目的管理采用了工程管理办法(有计划、有步骤、系统化),也采用了很多基于现代管理方法的成熟管理技术和工具,对于软件项目的管理和开发方法,可以通过互联网加以了解,各种管理工具(例如项目管理软件PROJECT、禅道等)很多,并且不断进化。但在实际执行具体项目时,必须具体情况具体分析,采用最适合当时当地具体项目特点的方法和工具,去完成每一个软件项目的实施。虽然软件工程在软件项目的应用已经超过40年,但软件项目的开发模式和管理方法还在不断发展和进步。一方面软件技术发展日新月异,另一方面软件项目本身也非常复杂,需要解决的问题的复杂性更是与日俱增。2.企业背景。厦门烟草工业有限责任公司作为获得政府质量奖的现代化企业,管理流程的梳理和落实已经经历多轮锤炼和演化,企业管理是非常规范和相对成熟的,信息化辅助管理开始于20世纪90年代,ERP系统的实施已有20年,甚至经历了两轮实施,企业的信息化应用程度较高,几乎所有业务都实现了电子化,目前企业已经在执行智能智造的战略,信息化建设进入了新的大发展时期。

企业应用软件项目实施的主要内容

企业应用软件项目规模一般在中等规模以上,项目规模可以根据资金投入或工期等进行划分。大中型企业满足一个职能块(制造型企业往往包含人力资源、财务、质量、销售、采购、仓储、设备、备件及生产过程管理等各种职能业务模块)的软件系统建设成本以百万元人民币计,还需要投入后续的适应性改造和运维成本,所以,信息化建设成本是非常昂贵的,梳理项目实施方法对实际工作中更合理更好实施信息化项目具备较大价值。现代软件工程技术告诉我们,任何软件产品都要经过制定计划、需求分析、设计、程序编程、测张雁试、以及运行维护过程。[1]软件项目主要应用项目管理方法进行管理,按照软件项目实施的全部流程,进行总体规划,分步实施。1.做好需求确认。需求确认阶段主要包括需求调研及需求分析,输出内容为需求说明书。需求是软件项目建设的起点和验收的依据,是软件系统项目的主要内容来源,是软件项目实施中最重要的一步,需要所有相关方达成一致。这个阶段主要研究和确认需求,首先达成需求描述的一致,其次思考需求怎么实现。比较复杂的需求需要一再调研多方确认多次分析,才能确认真正的需求内容。(1)需求提出一般是用户或业务相关方提出需求。企业信息化需求一般进程是:首先完成业务电子化,满足提高效率和痕迹化管理需求;其次通过信息化固化流程保证业务操作符合规范;最终通过数据积累进行数据分析或建设不断迭代的分析模型助力企业管理或决策。业务需求的编写和确认可以采用业务需求说明书模板,或选用一些分析工具,例如使用用例模板,通过对需求相关的业务流程、业务规则、业务数据等要素进行梳理和描述以便于各方理解、研究和确认需求。对于企业战略和信息化规划有影响的项目,更是需要慎重规划,甚至需要成立专项组对软件项目涉及的流程和企业架构进行梳理和确认后,才能判断和确认软件项目的相关战略或规划需求,确定项目建设内容。(2)需求评审首先需要信息化建设管理或评审部门对需求部门提交的需求进行调研、判断和分析,确认需求内容。其次针对用户要求的完成时间点确认需求必要性和迫切性、对项目效益进行确认和评估;对于需求做初步的技术解决方案思考,进行风险分析和可行性判断,确认初步的功能需求内容。个别需求无法明晰的时候,需要判断是否影响系统整体设计和建设可行性。通过需求评审的应用软件项目正式进入技术选型阶段。2.做好技术选型。首先需要了解国内外同类软件项目的应用和发展趋势,对于软件项目的功能内容和实现方式有一个初步的了解,要研究主流解决方案。其次要研究合适的应用架构,技术方案和应用框架必须符合企业信息化规划和企业技术架构。研究和确认技术方案的常用方法,是与同类软件项目的主流开发商进行技术交流,通过实例和建模对项目选型进行全方位的考量,保证技术方案的可行性,同时进一步确认技术方案的具体内容。这个阶段主要是对项目需求和技术方案进行初步确认,并根据项目的交付内容、交付时间进行资金预算估算准备。技术方案确认后,可以向意向供应商(意向供应商主要依据其资质、口碑评价、经验尤其同类项目的经验等)进行询价,进一步明确工作量和资金预算。同时要准备输出信息化需求(软件需求说明书),核心要素包括功能框架设计、技术架构蓝图、功能性需求、集成需求等,需要对功能项及功能点进行描述,每个功能涉及的业务活动及操作人员或用户角色、业务流程、业务实体、关键界面原型必须梳理和分析到位,内容明确。业务需求说明书或软件需求说明书都可以作为软件项目采购的内容说明书,根据软件项目的具体情况和特点对需求说明细度和深度进行判断和选择,以投标方能够尽量了解采购需求为准。作为信息化应用比较成熟和深入的企业,业务电子化和痕迹化管理要求都很深入,也就导致软件项目的功能实现会更体现企业经营管理特色,往往形成很多个性化需求,必须研究、规划不同层次和细度的实现方式和接口规则,满足数据一致性需求,避免形成信息孤岛。3.做好合同内容编制。项目采购受到企业非常严格的管控,企业对采购方式和采购过程管控也越来越细化,所以软件项目采购人员除了着眼于项目建设需求的准确表达,采购文件和采购行为必须严格遵守法律及行业、企业法规的相关内容。采购项目基本都是要求公开招标,确定中标供应商后,就进入采购合同的签订阶段。采购合同是软件项目建设最重要的文档,具备法律效力,是项目建设的验收(付款)依据。一般采用企业软件建设类的合同模板,软件特性相关内容至少要包含项目需求、项目目标、项目计划、培训要求、验收文档清单,以及信息化安全、技术、验收、运维服务条款等内容。其中项目计划内容需要充分调研和确认,计划能否及时执行必须要精心考量和设计,里程碑计划及阶段验收必须与付款阶段相匹配。4.做好项目进度管控合同签订后,项目就正式进入实施阶段,在软件开发及实施中,一般遵守“总体规划,分步实施”原则。项目实施过程主要包括需求调研、需求分析、实施方案编制、系统设计、系统开发、功能测试、功能上线及项目验收等内容。(1)软件项目的开发方法采用软件工程管理技术软件工程技术非常成熟。首先,制定实施计划,确定实施方案。实施方案主要包含项目范围、实施策略、项目组组织结构及成员、项目管理制度、实施计划(一般细分到双周计划)、系统架构及技术架构、风险识别及防控方案、测试计划、验收计划、培训计划等内容,并需明确每个阶段的交付物。作为甲方,这个阶段主要配合供应商完成各项工作,做好组织、沟通和协调工作,监督计划的执行情况,保证项目实施的质量和进度。项目实施过程有很多工作要做,甲方项目经理或系统管理员可以依据实际情况和企业要求,科学安排时间和资源,参与到项目建设的各方面,不仅要熟悉业务,还要为将来的运维工作做好准备,投入适当的时间和资源到系统管理和开发培训中,如果时间允许,对系统开发和运维的介入肯定是越深入越好。这个过程最重要的是严格按照项目计划完成各项实施任务,严格采取目标管理办法,每个节点的每项任务都需要保证质量及时完成,否则都有可能影响到项目是否能够及时完成。软件项目由于相对复杂,路径长节点多,如果没有对每个任务每个阶段的严格把控,项目的整体验收很容易受到影响。不管有多么缺乏人力资源,项目执行情况和进度管控是第一要务,严密监控计划执行情况,及时解决问题是项目管理人员的基本职责。(2)软件项目的每个过程都有许多类型的管理工具和管理方法软件项目实施过程中可以根据需要投入管理资源,采用最合理最适用最划算的管理工具和建模方法。如果企业已经确定模板,可以直接采用同类型模版。如果没有,可以选择一个模板,模板都大同小异,因为软件项目的管理技术非常成熟。软件项目的管理工具有很多种,围绕着需求、设计、测试及验收,每个环节都有无数的工具和方法可以选择,从教科书、网络、标准,都有非常多的模板可以选择。最简明扼要和常用的方法还是5W1H模型,在日常沟通和表达中根据5W1H要素灵活运用建立模板,能够完成很多调研和沟通内容的梳理和确认。技术方案或者需要判断选择解决措施的时候,用SWOT方法或类似方法进行分析也是比较容易表达和比较完整的,也便于各方进行研究和确认。实施计划编制和管理主要采用PDCA管理方法,输出内容以甘特图的内容为常规要素,主要包括任务内容、任务起始时间、任务完成情况及负责人员等内容。PDCA是重要的现代管理工具,是企业全面质量管理的思想基础和方法依据,也非常适用于软件项目管理,主要包含计划(Plan)、执行(Do)、检查(Check)及处理(Act)等内容。PDCA循环可以说贯穿于软件项目管理和建设的所有过程,可以从大计划往下细分,不断分解。项目计划一般采用结构化编制,整体计划自上而下按模块和阶段进行分解,每个阶段都制定计划,一般细化到双周计划。每个计划的执行都可套用PDCA管理方法。项目管理人员必须监督每个计划的执行情况,并根据执行情况进行调整,执行过程出现的问题必须制定解决方案并监督解决情况保证解决到位。

做好软件项目的投入和效益分析

1.软件项目的建设成本。排除IT基础设施的投入,软件项目开发属于劳动密集和知识密集行业,软件项目的开发和实施依靠的是人的劳动。从整个企业的投入来看,当软件项目的建设需求产生时,就开始产生人工成本了,至少业务需求提出方对需求必须进行研究和确认,对功能设计的业务逻辑的确定性和成熟度、稳定性都必须进行确认,需要研究规范管理特征和模型。非业务电子化的需求,往往在立项之前就会对流程和战略进行梳理和研究,以保证项目建设的可行性,因为软件项目的建设一般是不可回撤的。一个软件系统或体系的建立,可以升级和优化,重新建设是不可接受的,项目建设只许成功不许失败,所以在立项前的研究规划和设计非常重要,往往需要投入大量研究。软件项目一般必须是部门一把手或者企业一把手有强烈的实施意旨才能顺利实施,因为软件项目的建设过程基本都需要对流程进行梳理,甚至流程再造,没有一把手的支持是不可能顺利执行的,俗称一把手工程,所以人力成本的产生是自上而下的。软件项目信息系统上线除了开发人员的劳动付出,一般较为大型的项目需要选择专业团队进行系统功能开发,如果是外包的话,体现的是采购金额。开发和使用过程都需要需求提出方的业务骨干参与项目实施和功能设计并进行把关。信息系统建成和投入使用前后,很多前期和数据准备、功能上线、投入使用后的业务数据、业务模型建设都是需要大量的使用者参与。2.软件项目的效益追求。软件项目主要的效益是成为企业管理的重要工具和决策支持。首先,通过信息化完成对工作效率的提高和痕迹化管理;其次,通过系统固化流程保证管理规范执行到位;最后,通过业务数据的积累和分析优化流程,通过数据分析经营管理中的经营状况,建立趋势分析及各种分析模型,探索盈利模式和取胜之道,不断提高企业领导层的决策效率和决策水平,最终提高行业发展趋势洞察力。透视软件项目管理全流程,从需求研究、技术方案研究、项目实施的协调和沟通,各种信息化管理和技术工具的应用,流程梳理和优化,业务分析和数据分析能力的培养,每个环节都可以培养和锻炼参与实施人员的各种能力。项目管理思想和技术应用能够在实践中不断锻炼实施人员的表达能力和沟通能力,培养系统思维和执行力,最终建立战略上藐视困难,瞄准目标坚持到底,战术上具体情况具体分析,依靠PD-CA的不断循环克服每一个困难的行为习惯。所以,通过项目管理和信息化技术来培养人才是非常有效的模式,也是软件项目研发实施的重要效益。

参考文献

[1]程序设计系统设计师(高级程序员)(第一版)之“软件工程”北京:人民教育出版社,2001

作者:张粦雁 单位:厦门烟草工业有限责任公司