试述样本程序比赛的几个理由

在以从事“行业应用软件”开发为主的软件企业中,大部分的工程师做的是一种定制化“脚本”性的工作。虽然这种编程上手并不困难,因为它的本质是一种“集成”性的工作,但由于“集成”的对象和涉及的内容非常之多,决定了它不只是一个技术性的问题,而且涉及管理、工程化、行业知识、个人表达能力等一系列问题,所以“做好”并不容易,而一个设计良好的“样本程序”可起到事半功倍的效果,这就好比初学做古诗,古诗学的约束要素有很多。我们可以学习各种格律的约束规则,也可以直接学习古人的“经典作品”,以这个“经典作品”为“样本”,试着完成自己的诗作。当然,样本程序的学习与做古诗还是有区别的,后面我们还会介绍。那么在软件企业中进行样本程序的比赛究竟是为了什么呢?它的意义何在?我们试着给这样的比赛提出几个切合实际的理由。

1、 应用软件脚本的标杆作用

      这里的“脚本”本身是集成和组装的含义。就像我们制造一个桌子,组装和组件我们是可以分得清的基本概念。从理解和学习角度上看,我们可以分类组件,也可以按流程划分组装的特性和特点,但是更直接的方式是选择其中一种经典的组装方法,从头到尾组装一遍,给学习者有更直观的印象,这种“从头到尾的组装”就是样本程序。结合样本我们可以介绍组装的约定和约束、组装的风格选择、组装中的注意事项、组装中的分情形变化……。以往我们太注重组件的构成原理,而忽视组装中的各种独特性,这实质上是“面向对象”和“面向过程”之争的延续。其实软件“重用”一直在两个大的层面发展,即“相似”和“共享”。“相似”以过程体的组装相仿特性为主,“共享”则是以组件或函数的方式存在。相比之下,“相似”反映概念层面的“重用”更多,它以一种概念结构、框架、模式……的相似、相仿为主要特征,它确实不是“相同”,这也是为什么这部分内容给知识产权的确定也带来一定的挑战的原因。

在我们的生活中,也有类似的直观实例。如:“宜家”的购物方式,买房子的“样本间”(奇怪的是买回家去,好像总是没有当时看到的效果好!)。相对于目前流行的“框架”和“模式”,我们以样本程序为基础讨论行业应用软件的“结构”,显得更为直观。因此,以“面向过程”思想为主体的“精心制作”的样本程序在行业应用软件开发中的标杆作用是显而易见的。本次比赛我们主要针对企业开发中常用的J2EE平台进行,我们只是通过样本程序讨论了“面向过程”的思路,而没有就脚本语言的使用展开更多的讨论,实际上这部分内容也在被人们逐渐的重视,将其与现有流行的开发工具相结合,又将是一个新的技术热点。一个好的样本程序经过分段分析可形成一定的标准化,进而通过工具完成自动生成能力,目前流行的“领域驱动”的软件开发实质上就是对这部分内容的一种尝试,而过程化支持的工具平台,也成就了另一个新的技术热点,即BPM(业务过程管理)工具平台。在实践中,对业务流程管理的样本程序和“抄”它的程序进行统一管理的方法,我们称为“全业务流程管理”,这使应用软件具有更好的可配置和可扩展性。总之,好的样本程序反映一种自然的规律,它既是“写”出来的,又好像是“发现”出来的。因此也构成了一个比赛的亮点,我们把它作为比赛的第一个理由。

2、 组织管理中的机制创新

以行业应用软件开发为主体的软件企业,面临着严重的技术组织困难。由于服务对象分散,它的管理有点像医生们看病/治疗,当病种快速变化,患者背景日趋复杂时,看病的流程和使用技术方法虽然类似但并不相同,其存在的最大问题是交流太少、各自为政。在软件企业内部,我们通常有一定的组织体系,典型组织结构是部门项目组,样本程序的技术形成于这种组织之内。虽然很多企业也有CTO和研发中心之类的角色和机构,但是由于服务性质和专业分类的差异,很难统一控制这种分散的特征,无论从组织权力/义务划分上看,还是从业务决策角度来看,总裁、部门经理、项目经理都是权力的主轴。在技术决策方面,我们面临着权力/义务关系相互平衡的困难,这就造成CTO的执行力度是有限的。当部门经理和项目经理业务压力变大时,他们往往会降低对技术决策的重视程度,技术问题的决定权就分散落在了企业内部部门和项目组的技术“山大王”中了,这些“山大王”在组内是技术上的权威,基础的技术文档一般也是他们的杰作,其格式也是百花齐放。这样做的好处是可以统一局部的方案,坏处是没人与其讨论推敲,甚至组织内部有些工程师多一事不如少一事,懒的与他们讨论,这就使他们自己和各级单位的技术发展遇到了挑战。到底是以CTO们做的决策为主,还是以“山大王”们的决策为主,变成了这类软件企业的一个困境!

举行样本程序比赛就是试图解决这样的问题,就是在更大的空间内制造一个平台,加强更大层面的沟通和交流,甚至是争辩,以提高“山大王”们的水平,这是一种组织结构形式的“放权”。我们也知道“开源”的放权更大,效果也很好,值得我们借鉴!以类似的形式让“山大王”们集体竞争决策。通过比赛交流,使某一分项的获胜者成为这一部分技术方案的决策者,避免了CTO由于脱离一线的实践,而引起的技术决策问题。从表面上看,CTO和各级技术领导从决策者变成了一个“平台”的维修工,但是协调和引导本身就是他们的主要工作,这其实并不简单!在保证约定一致的基础上,用竞争的方式形成技术决策是此类软件企业技术管理的重要创新,从而带动整体行业应用软件技术水平和管理水平的提高。技术交流和比赛,表面上是“山大王”们的竞争,而本质上是他们之间相互学习,共同促进,并稳定已有的技术成果,从而形成更大范围的技术规范。当条件成熟时,结合CTO们的工作,可形成全公司范围的相对稳定的技术标准和技术规定。随着企业内更多的不甘平庸的员工加入到各种分项的“山大王”行列,具有更强综合实力的“山大王”通过竞争成为了新的“山群之王”,企业的技术“复合”人才队伍就是这样被不断的壮大了。“山大王”们的动力不只是企业给予的奖励,而是一种成功的自我满足和在团体中获得的声望和荣誉。

3、

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值