软件开发:关于软件定制开发成败的三个关键因素
管理软件为公司的业务和管理提供服务,但是不同的行业和公司对软件的需求不同,这就导致了很多情况下软件定制的必然发展。与纯行业标准软件产品相比,软件定制开发可以很好地满足用户的不同需求。
定制化项目开发严重依赖团队和经验,很难通过标准化的模式进行复制和扩展。在中国管理软件定制开发的应用中,大的软件开发商很少,以下三个关键因素影响着管理软件定制开发的成败:
一、企业团队水平对软件定制成败的影响
可以说,软件定制开发项目的成本主要是由开发者决定的。开发者凭借自身的技术经验和行业经验,正确评估用户项目并提供合理的技术和实施方案,能够组织项目实施开发团队按计划、分步骤完成项目的开发和实施。
“一个勇敢的士兵将承担一个巢”,软件开发人员的核心技术人员和管理水平决定了所有团队的整体水平,而某个项目团队的水平直接决定了当前项目的成败。项目经理是整个定制开发项目的灵魂,是项目管理成败的关键人员,在协调用户、管理团队及相关资源方面起着重要作用。定制开发严重依赖于项目经理。如何合理有效地管理用户的定制化开发需求,如何高效地管理项目技术团队,团队的技术能力、管理能力和业务经验是决定项目成败的重要因素。
如果一个单纯做软件产品的技术团队,完成一个有一定难度的定制软件项目,结果会不尽如人意。
二、开发者的行业经验和软件定制开发经验
行业经验的积累是指软件开发者对相关用户的行业业务积累。管理软件是商业、管理和技术相结合的产物。没有业务的积累,尤其是通过大量类似的行业经验,是导致定制软件项目失败的重要因素。
软件开发人员经验的积累包括技术和具有相应技能的人才的积累。人才的流动往往会给定制开发项目的开发带来致命的影响。由于过度依赖指定的、高层次的技术人员,某个项目核心技术人员的流失,使得整个定制软件开发项目难以继续,有些项目甚至不得不推倒重来,“悲剧”不断重演。
软件开发是一个对技术和经验积累要求很高的行业。大多数软件开发人员只关注需求的实现和项目的完成,缺乏底层软件的积累,尤其是平台开发模式的积累。
第三,用户项目需求的难度和复杂程度
要求的难度和复杂性体现在三个方面。一个是整体项目需求多,功能多,开发工作量大;二是项目存在不同程度的技术问题;第三,用户自身需求的不确定性,无法形成有效合理的需求,在需求中途反复出现较大的调整和变更,导致设计和开发的不确定性,甚至在系统开发完成后出现大量的变更和调整。
定制化开发项目最大的特点就是以用户需求为中心。大部分功能需要重新设计开发,系统不是一次成型的。然后在系统交付给用户后,在后续的使用中进行修改和完善。传统的手工编码严重依赖设计师和技术人员。如果设计和编码质量不高,无疑会给后续的维护和升级带来困难,甚至无法维护。这在定制开发项目中很常见。