对近几年来软件开发模式的思考,欢迎各位高手多提宝贵意见。
按照软件的应用层次,底层为通用平台(包括用户、权限、日志、工作流等),此平台在任何行业都适用,然后在此平台的基础上可针对不同的行业开发出特定性的组件,打包形成各种应用产品,然后提供相应的配置工具及二次开发工具,可供实施人员不用编程就可快速对客户的个性化需求进行开发,提高客户响应度及满意度,同时在此过程中进一步收集客户的建议,对行业组件不断地完善。
平台划分
![](https://i-blog.csdnimg.cn/blog_migrate/134ddd2e19f9c5d4bd46cbf82eeb66e2.gif)
平台逻辑结构
![](https://i-blog.csdnimg.cn/blog_migrate/94cee5e317578c08f6ec463643820fce.gif)
开发组织
制定严格的开发规范及开发流程,采用一定的工具对开发过程中是否符合规范进行检验,严格开发流程,逐渐将软件开发与传统的生产一样,开发有固定的流程(传统生产中的工艺),每个环节有固定的岗位及职责,每个环节的开发都有大量可直接使用的组件,能形成组件的尽量以组件的形式进行开发。
组件化的开发
计算机技术的发展不再可能有大的跳跃,而是持续的创新和改进。采用组件化的开发,在开发平台前期就要作好规划。
对是否要形成组件有着严格的审批流程,对组件开发要严谨设计,细致编程,严格测试,加强培训,强制使用。在此强调一点,一定要强制使用,国内开发人员的通病,什么任务都喜欢自己编程解决,总认为别人开发的东西存在这样那样的问题,不如自己编的放心。造成的后果就是重复开发,质量低下,成本长期高居不下。
以组件的形式进行知识的积累及传递。在开发过程中既要重视文档,又不要过度文档化。
采用螺旋式的开发过程,在每一个开发过程中,引入项目管理的理念,对每一个版本的开发都有明确的范围、时间及成本等等。避免开发中的“渡金”。引入项目管理,就可对进度、成本及绩效等基本可控。
组织机构
采用以上的开发模式,就可以精力集中在平台及组件的开发上,如有新的业务或新的客户需求,可临时组织项目小组,采用定制工具及现成的组件组装出客户所需要的软件。
开发流程固定后,就可根据开发任务,随时调配各个开发环节上的资源,使得开发资源能够充分利用,避免资源的闲置。