刘莹
在软件项目中,对于采纳的技术、编程规范、配置管理、项目变更等可能遇到的各种问题及风险,都要有明确的人员分工,职责要明确。
在专业软件公司,提高客户满意度、提高企业软件的开发与管理水平是企业层领导关心的问题。
在非软件企业中,软件开发过程的改进是由软件经理倡导和推进的,软件经理才更关心软件开发的质量与效率。
什么是软件开发与业务需求的平衡点?如何在企业中发挥出软件部门的作用?都会面临挑战。
因此,在软件水平提高的过程中会遇到较多的困难。采取适度的改进步骤,使企业逐步提高认识、改进开发过程,是一条可行的方式。
定软件开发规范
一切沟通与交流,首先都要有可见的依据,这可以从制定软件开发规范入手。软件开发规范,实际上包括软件开发各个环节相关的工作规则。可以从以下四个方面制订:软件开发工作流程规范、产品文档规范、软件开发文档规范、开发管理文档规范。
编写规范,可以参考国家标准的计算机软件工程规范,也可以结合开发经验制定出适合本企业使用的开发规范。
详细制定这些文档使用方法和规则,要保证可以使文档便于书写、形式一致,这不仅要有文字描述,还应制定相关文档模板,形式上要保证简洁明了、实用、符合使用习惯。
根据项目规模的不同,还可以制定不同的文档模板,很小型的项目就可以写一个相对简化的小型项目文档,复杂的项目使用较全面的文档模板。
提高开发人员的认识
软件开发中人的因素占有很大的比重,因此对软件人员的培训是非常重要的。一个团体的软件水平并不是个别程序员的程序水平,而是整体的认识和系统建设的水平。可以先在内部对软件开发人员进行培训,内容包括软件工程、已经制订的各种规范、项目管理知识。通过共同分析软件工程对软件开发和开发者的益处,可以得到开发人员的认同,以便共同遵守和执行初期规范。
值得注意的一点是,认识的提高是一个循序渐进的过程。在刚开始推进软件规范化的阶段,达到初步的认识即可——让软件相关人员认识到软件开发是项目,应该具有完成项目的方式方法;项目应该有明确的项目开始、项目结束、明确的需求、分析设计和期望的结果。
加强生产过程的规范性
软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。
首先,要提高人的积极性,在小范围内调整项目组织结构,执行项目经理制。可以由有经验的开发人员作为软件开发部分的项目负责人或称为项目经理,不再由任意的需求人员做开发小组负责人。
项目经理负责进行项目前期的需求分析和组织开发工作及项目交付工作,有参与项目业务需求确认与否定的权利,有监督项目小组成员执行规范的权利和义务,承担对项目成功或失败的责任。
在软件项目中,对于采纳的技术、编程规范、配置管理、项目变更等可能遇到的各种问题及风险,都要有明确的人员分工,职责要明确。
小系统的这些工作可能由一个人(比如项目经理)承担,大系统可能要有多个人承担。但无论项目大小,职责不应削减,因为即使小项目失败也是损失,只是损失的多少而已。
严格执行管理过程
在非软件企业中,由于是完成内部工作,很少有成本核算、严格的进度控制。影响项目的因素也比较多:需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序,没有合理的措施控制透彻的分析业务需求;时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,使软件开发工作协调、有效。
在规则已经明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出最好要简单初级。
例如:项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应当出面协调解决相应问题。
如果培训不足,许多程序员对做项目的认识水平就会停留在“就是做编程、完成需求”这种初级水平。此时如果就要求项目经理按照项目管理的方法全面展开,从认识到执行都达不到要求。
与所有项目人员关系最直接的环节,是保证项目的完成时间和执行进度,所以在初期先从加强管理项目时间进度开始。
为了保证项目实施进度,项目经理在项目过程中必然会遇到许多问题,这时再对项目经理加以引导,完成其他管理工作,比如控制需求变更、控制功能膨胀、团队沟通协调管理、风险管理等项目管理内容。
初期最好采取这种问题堆积的方法,使问题暴露出来,再集中处理,达到提高整个管理水平和软件质量的目的。
建立配置管理模式
软件是需要定期升级才能满足企业要求的,这使得软件开发不是一个短期行为。但是,由于许多开发工作因缺少管理而成为个人行为,对于软件成果没有保护意识,更不能达到软件的共享与重用。通过“统一配置管理”这一具体的做法,能够强化软件完成后的总结工作。
建立基本的软件配置管理机制,在开发中和开发后都要求程序员及时备份源文件。进行这项工作要首先选择一套适合的配置管理软件。项目主管应该要求程序员在开发的全过程中使用软件来管理源文件,在全过程的配置管理的基础上,整个项目组更加容易完成统一测试、组装产品等工作。
业务需求与承担开发双方是一个项目的两个方面,没有完整业务模型、系统目标而盲目开发的软件绝不可能是理想的结果,或者说从项目的开始就已经注定了失败的结局。
所以,软件开发方以较为完善的需求为前提条件进入开发阶段,是符合工程化的,是项目成功的初步保障。
以上五个步骤,可以保障将内部开发工作达到初级的项目可视化,在软件开发部门内部建立起对满足业务需求完成的信心,对满足业务需求的承诺。在开发部门内部完成上述工作后,可以在企业范围内再进行软件相关工作状况的适度改进。
通过这些工作,可以在企业内获得对软件规范性的一定认识以及对执行方式的认同,这对软件开发工作会有不同程度的帮助。
提高了规范意识、强化了需求控制概念以及对需求的控制,能够使项目立项目标更加明确。
有一个案例统计数据表明:充分开展以上工作,项目有效率从60%提高到75%;通过项目经理制提高项目管理能力,能够增强开发计划性、提高软件开发能力、扩大项目规模(从开发10个人月以下的项目到能开发60个人月以上的项目;在人员提高4倍的情况下,软件开发量提高了6倍)、提高软件产品稳定性(有些产品达到了比较成熟的客户化产品水平)。
endprint