为企业软件开发团队插上隐形的翅膀
为企业软件开发团队插上隐形的翅膀
当今社会发展的状况是企业对软件系统的依赖是越来越强,十多年前我们企业中使用的软件大部分只是财务系统、仓库管理系统,而今进销存、ERP、OA、CRM、物流调度、客户服务、IT服务、SPS。。。。通过软件系统支撑的企业活动几乎已经涉及到了企业活动的每个细节。这样的情况下企业软件开发团队必然面临了巨大的压力,CIO们深深困惑的是IT需要怎样的预算、如何保证各种系统的稳定运行、如何在需求越来越复杂的情况下提高开发效率、业务人员人事变动时如何做好系统培训、企业经营策略发生变化时如何让软件系统快速适应新的经营策略。。。。。。
传统的软件开发管理方法中需求分析、系统分析、系统设计、系统开发、系统测试、系统交付等按部就班的做法为我们提供了稳定、可靠的开发管理策略,但实际情况下,这种模式更多时候像是只骆驼,慢慢的行走、迟钝的响应很难适应企业面临的社会竞争需求及市场环境的变化,毕竟软件是必须去支撑业务的,而不是让业务等待软件系统的。如何做到多、快、好、省这必然成为CIO们必须思考并解决的一个问题。
为企业软件开发团队插上隐形的翅膀,一是管理创新营造高效率的团队文化;二是技术创新设计企业应用水平解决方案快速响应企业应用需求的开发、维护;
一、管理创新营造高效率的团队文化
1、具有明确且有挑战性的共同目标
一个具有明确的而且有挑战性目标的团队比目标不明确或不具有很大的挑战性目标的团队效率高得多,通常技术人员往往会因为完成了某个明确的任务,而且这个任务的完成具有挑战性的意义而感到自豪,反过来团队成员为了获取这种自豪的感觉而更加积极的工作从而带来团队开发的高效率,如作为系统设计人员很清楚的知道在什么时候要做到什么,什么时候开始做,什么时候必须完成,为了完成工作必须面临哪些挑战,怎么解决这些困难等为设计出一个高质量的软件项目提供了重要保证,而模模糊糊的去设计一个系统或模模糊糊的就去编写代码是非常危险的,而且会为此付出高昂代价,因此高效的软件开发团队具有挑战性的共同目标。
2、团队具有很强的凝聚力
在一个高效的软件开发团队中,成员们凝聚为一个整体共同进行工作,他们是相互支持、互相交流、互相尊重的,而不是相互推卸责任、保守、相互指责的,在一些散乱的开发团队中往往存在这样的问题,一些程序员是比较保守的,明明知道另外的模块中需要用到一段与自己已经编写完成但有些难度的程序代码,他也不愿拿出来给其它程序员共享,不愿与系统设计人员交流,这样给项目的进度造成了些不可度量的因素。
3、具有融洽的交流环境
在一个开发团队中,每个人行使自己的职责,如需求分析人员制定需求规格说明、系统设计人员做系统概要设计和详细设计、项目经理配置项目开发环境并且制定项目计划等,但每个人的工作不可能做到完美的,如系统概要设计的文档可能有个别地方词不达意,做详细设计的时候就可能会造成误解,项目经理制定计划时可能忽略了某种风险的存在而造成执行者过于紧张的压力等等情况都需要大家通过交流、反馈的手段然后协商解决的,因此高效的软件开发团队是具有融洽的交流环境的,而不是那种简单的命令执行式的。
4、具有共同的工作规范和框架
高效软件开发团队具有规范性及共同框架的工作,对于项目管理具有规范的项目开发计划,对于分析设计具有规范和统一框架的文档及审评标准,对于代码具有程序规范条例,对于测试有规范且可推理的测试计划及测试报告等等。并且所有成员都明白自己的职责,知道必须完成什么计划?由谁来完成?什么时候开始?什么时候结束?按什么顺序?等,总之一个高效的开发团队无论是工作内容还是工作流程都具有不同程度的规范性和标准风格的框架。
5、采用合理的开发过程
软件的开发不同于一般商品的研发和生产,开发过程中会面临着各种难以预测的风险,比如需求的变化、人员的异动、技术的瓶颈、同行的竞争等,高效的软件开发团队往往是采用了合理的开发过程去控制开发过程中的风险、提高软件的质量、降低开发费用,这样的团队会根据自身的必要程度决定要执行哪些工作?如配置管理、资源管理、版本控制、代码控制等,团队还合理的分划并定义开发过程的里程碑,决定每项活动内容的底线和审评标准,决定各项活动的先后关系或迭代的关系等。总之高效的软件开发团队的开发过程的原则是高效率、高质量、低成本。
二、技术创新设计企业应用水平解决方案快速响应企业应用需求的开发、维护
1、设计企业应用模型为水平解决方案提供依据
技术人员往往容易一开始就容易陷入“先进”技术架构的陷阱,当掌握到某一个技术架构的时候才发现原来我们什么也没有做,其实软件系统是为企业应用服务的,因此采用或者设计一个解决方案之前必须分析企业应用模型,企业的目标是什么、管理涉及的业务模块有哪些、企业需要掌握哪些关键指标、企业的管理发展模式是什么等等,这些是一个企业产生到发展不是变化很快的部分、一般企业在组织结构、业务流程、权限管理方面变化比较快。因此分析和设计企业应用模型是为企业提供水平解决方案的基础。
2、分析企业应用模型设计企业基础软件架构
当今环境下的高效软件开发团队已经不太有时间像以前设计一个系统一样针对当个系统进行分析、设计、开发、维护了,因为在企业用户需要应用非常多的系统的时候,这种传统的方式必定是会加大用户的使用难度和维护难度的。软件开发团队必须分析企业应用模型去抽象、去设计企业的基础软件架构,比如建立统一的组织结构、权限管理模型为各个系统进行统一的服务、统一的维护;设计客户资料模块为各个系统提供数据服务;设计通知服务统一满足企业各个应用系统邮件、短信、其它方式的通知功能。。。。。。设计一个系统的之前我们需要规划好、用好这些基础的公共模块。
3、选择一个适应文化的工作流平台去适应业务流程的变化
一个好的工作流引擎是把原来“已知”的需求当作“未知”、“可能”、“或许”的需求来设计的,对这些“非未知”的需求进行了“泛型”的归纳和抽象,从而利用OO编程思想中的一些设计模式设计出了合理、具扩展性又充分的业务处理接口,利用工作流平台的功能或流程应用架构及开发这些接口的具体实现可以创造出各种与流程处理有关的应用系统,工作流引擎往往也是提供了流程控制台,来设计具体的业务流程。当企业各种业务流程发生变化时不需要再次维护代码,通过工具就可以调整,大大降低企业IT运维成本。
4、建立一个企业应用软件系统快速开发架构
从程序员的角度我们开发一个功能必定会用到非常多的基础组件、这些组件跟具体业务无关、比如加密、编码、日志、邮件、字符串操作、SQL HELPER。。。。。。我们需要一个基础的架构把这些模块统一维护统一应用减少开发的工作量。
从开发维护的角度,我们的系统功能中会有很多功能点,比如选择人员、选择日期、样式表等等,要做到易用性是需要做相当的代码的,而且这些功能会在多个模块中出现,需要快速开发架构统一管理和维护这些基础控件,降低开发维护的工作量。
从应用软件风格的角度,我们会开发很多的软件系统,菜单、布局、皮肤、事项、通知等如何实现个性化、同时又在开发新的系统中不再需要单独开发、我们需要快速开发架构为各个系统提供这些公共的功能。
从用户应用习惯的角度,我们在使用各个系统的时候,统一的登录、统一的待办事项入口、统一的用户配置是使用者最需要的,以往记住多套密码,处理各项工作的时候要登陆多个系统已经让软件用户感到了非常的难受,我们需要一个快速架构为企业开发软件系统提供这些基础的功能。
5、建立一个机制持续改善、积累重用的模式
通过开发管理的方法持续完善我们的基础组件库、控件库、皮肤,为快速开发架构提供更多可以重用的模块,这样可以让我们的开发团队开发和维护的效率更高。
为企业软件开发团队插上这对隐形的翅膀,相信我们的团队能做到多、快、好、省为企业经营提供最好的服务,E8.Net工作流平台为企业应用开发提供了一个起点,帮助企业软件开发团队插上这对翅膀,欢迎访问: http://www.feifanit.com.cn/productFlow.htm