软件重用的挑战

在研发中心做通用开发框架和通用组件库的挑战.

软件重用,是一个每一个软件开发人员都常常挂在嘴边的字眼,也是我工作多年来,最常听见的,但是却也是最难实践的一个事情.

为什么软件重用这么难? 无数的软件研发中心,都会组织团队去开发一些通用的软件库(类库/组件库)和软件开发框架,但是成功者寥寥.即便在无数的世界大型企业中,可重用的软件开发框架和统一的组件库,也几乎很少有成功的案例.(至少在我所看到的)

我小结了三个问题...

1)质量

2)团队合作

3)版本控制

首先是质量问题.

通用软件库或者框架,由于"通用",就代表了很多很多,对这些软件质量的要求也就达到了一个比较高的高度,而坦白的讲,在大部分公司里,做通用软件库/框架的人,未必是最好的人,也未必有很多的时间来设计和开发这些通用的软件库/框架,甚至没有想清楚做出来的软件到底有多通用,是否符合应用或者业务开发的需求?

同时由于通用,软件库/组件要求了一定的灵活性,这个也同时带来了复杂性,这个通用的软件库/框架是否易于安装?易于配置?易于开发?易于测试?等等这些问题,都是很大的挑战.大部分通用软件库,做出来的话,往往还不如很多Open Source做的好,功能没有Open Source强,又难安装配置,又难于开发...

质量问题是首要问题,如果一个通用组件库/框架是完美,试问谁又不愿意去用呢?

质量问题,是做通用软件库/框架需要高度重视的,一旦如此重要的事情都做不好,无法做出高质量,试问又如何能够去要求别人来使用你的?其负面的效果远大于正面的效果.

其次是团队合作的问题.或者说是人的问题.

由于大部分通用软件库/框架的质量难以完美,特别是第一个版本,也许会差强人意,这个时候人的问题就出来了.古人云,文无第一,武无第二,这句话在软件业似乎也适用.大部分软件开发人员都觉得自己牛B哄哄(只要自己还不错),于是只要看到一些问题或者瑕疵,就马上觉得这个"通用软件库/框架"不行,想到的第一个可能的动作,就是推翻这个东东,然后自己来搞一个.这种事情是屡见不鲜的,结果通常是,看着别人做出来的不行,自己做出来的却更烂.

很有意思的是这种事情,如果公司大了,还经常得到部门经理的支持,结果就是一个研发中心,几个部门都自己弄出了一堆重复的通用软件库,以前我看过一个公司有三个部门,分别开发出了三个报表工具,没有一个很好用,就是典型的例子.对于国际大型企业,有多个研发中心的情况,这个现象就更普遍了,这个就超过我的想像和能力范围了 :-)

这种人的问题,首先是管理层一定要重视,Team Leader一定要重视.对于通用软件库的问题,一定要及时反馈到相关人员,通过改进通用软件库/框架的问题来解决,如果一时不能解决,也需要安排到相关的日程计划中解决,这样子才能够促进通用软件库/框架的不断完善和提高,同时也解决了实际的问题.而不是另起炉灶,那样子只能叫做:永远没有成长.

最后是版本控制的问题.

通用软件库可能应用在许多项目中,因此每个一个版本的修改和发布,都可能涉及对现有很多项目的影响,因此版本控制就显得非常重要,在每一个版本的发布过程中,都需要注意对现有各个项目进行检查,查看其影响,降低和预防升级通用软件库对已有的系统造成的影响.每一个做通用软件库的人员都应该有这个意识,对于提供给外部的接口,需要尽可能的保持稳定.

一旦版本控制做的不好,带来的问题,要么是新版本升级后,导致已有的很多系统无法使用或者出现一些问题,要么是只能固守在旧版本上,无法享受新版本带来的各种加强功能和好处,两者都是会让很多通用软件库的使用者和开发者感觉沮丧的事情,也是如何延长最终通用软件库生命周期需要考虑的事情.

很快就要进入公司通用软件库/框架的开发项目中了,记录下自己的思想,但愿一个半月之后,自己回顾这篇文章,能够感到欣慰和愉快.

WHO CARES WINS!

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值