近十年,中国互联网发展的速度越来越快,互联网科技颠覆了越来越多的传统行业,我们的衣食住行随着互联网科技的进步,发生了翻天覆地的变化。在这个大潮中,越来越多新兴的公司如雨后春笋般的冒了出来,他们的业务增长非常快,公司规模也越来越大。这得益于中国经济的高速增长和互联网的快速发展。
在公司快速的发展过程中,往往会出现这样一个链条。新增一块业务 —> 招聘一位高级技术人员 —> 围绕这位同事组建一只技术团队 —> 该业务基本由这只团队负责。然后就形成了一个闭环。当需要跟其他业务进行交互时,经常是技术负责人之间自行决定。(我曾经经历过一个项目,同样一个业务接口,同时提供 RPC,HTTP,MQ 等多种方式,为了给不同的项目提供基础服务)。
随着业务规模的快速发展,这个团队很快的形成了一个部门,团队决策者通常会从自身利益考量,希望尽量减少对外部门的依赖,无论是技术选型,规范建立,组件选取,运行环境都能够自行掌控。(在这里讲一个笑话,在一家公司怎么成为中层领导呢?很简单,招聘足够多的下属就可以了)。
当这样的技术氛围一旦形成,单个员工对单个项目的影响就会变的非常巨大。一个产品经常会因为一两个核心员工的离职难以为继,最后不得不重新开发新的产品。
当每个团队都在试图构建自己完整的研发流程时。中间的技术研究,产品研发,运维管理就会出现非常多的资源浪费。
怎么衡量一个川菜厨师和一个鲁菜厨师谁更优秀?当每个团队都采用不同技术栈,不同的技术组件,不同的维护方式和规范时。已经无法从产出效率来判断一个团队的绩效。KPI 指标也就非常难以设立。
在公司发展初期,为了快速的进行业务拓展,大都不考虑成本投入,运营维护以及技术沉淀等问题。所有的指标导向都是业务的快速发展,尽可能的抢占市场份额,获取足够多的用户数量。
在公司发展到一定阶段后,市场逐渐趋于稳定,先期快速扩展的各种问题会逐步暴露出来。从技术层面来讲,如果可以形成公司级别的统一开发框架,会在实际的生产过程中带来非常大的收益。
让项目组把精力更多的投入到业务中。相信这是大多数技术公司的共识,如果让项目组把精力投入在业务中?就需要在项目组之下构建一个基础的开发架构平台,把技术的共性问题提炼出来,交给这样一个团队负责处理。避免每个项目都独自去解决遇到的各种各样的技术难题,有效的把精力释放出来。
要千人一面,而不要千人千面。采用统一的开发框架(平台)后,在技术栈,技术组件,技术实现方案,甚至在代码规范上就能形成标准化的技术输出模式,标准化带来的最大效果不仅仅开发效率的快速提升,还有产品质量的大幅提升,这是显而易见的。
3. 进行技术沉淀——提升公司整体技术能力,避免陷入一个人的能力决定一个项目