研发团队划分的一些思考

2,228 阅读5分钟

问题出现

最近领导层一直围绕研发团队到底是按照技术线划分还是按照项目制划分,仔细思考了下后写了一点想法,我觉得这并不是选A还是选B的问题,团队的管理要结合团队实际情况,研发工作的特点、企业的要求和团队发展所处的阶段综合去考虑才行。

现有的研发特点

  • 需求和项目特点

    • 需求来源多、散
    • 需求节点普遍有硬性时间要求
    • 需求的优先级没有长期的规划,临时性因素较大,对研发团队的资源安排要求非常高
    • 需求高度较低,很多需求初期未从顶层进行规划,后续迭代过程难度加大
    • 需求输出并非线性的,迭代之间可能出现较长空档期
    • 项目规模涵盖大、中、小、微
    • 项目类型多种多样,涵盖各种业务,2B2C都有。
  • 团队和人员特点

    • 研发团队规模小,研发力量不足

    • 人员项目覆盖度非常高,一人身处多个项目

    • 对研发环节要求高,需要在技术层面做扩展性的规划

    • 对团队间沟通要求高,因为每个人几乎都在多线操作、多线沟通

我们需要什么样的研发体系

  • 强资源管控

    结合以上现有研发的特点,我们需要的研发体系必须是强资源管控的,对于人员的识别、安排、调配都必须做到统一管理,并且合理、精准、灵活,做到人员的最大化使用。

  • 混合型团队划分

    我们的研发团队划分应该结合现有研发特点做灵活的混合划分,既要有横向划分,也要有纵向划分,单纯的一刀切都有各自的缺陷。纵向划分负责各自技术线团队的资源管理,而横向划分更注重业务团队的研发流程把控。

  • 共享机制和业务沉淀

    逐步建立研发内部统一的共享机制,无论在技术还是业务上避免重复的造轮子。逐步积累CBB组件和业务模式,配合企业的数字化转型,兼顾内生需求的项目化产品化研发模式以及外部输出的平台化云服务化研发模式。

组织结构以及职能图

研发组织结构

关键点说明

  • 团队划分
    • 物理团队
      1. 物理团队按照当前技术栈划分,不同技术栈的沟壑不是那么容易跨越的,相应的团队特点、技术特性、人员要求、管理方式都会存在差异。
      2. 物理团队必须保证强资源池的方式统一管理,团队的建设,人员的选、用、育、留,资源的调度以及技术栈的管理都必须统一标准和执行方式,避免内卷,不能出现类似都是Java团队,不同项目技术体系、规范、研发流程都不一致的情况。
      3. 人员统一调配,针对现有研发的特点,项目团队必须是动态的、可伸缩的。现有的团队划分方式对于我们的现状是适合的,针对目前各团队存在的问题我们要进行的不是简单的一刀切,那样只会造成资源的浪费和内部混乱。而是找到解决问题的办法,优化我们的研发流程。
    • 虚拟团队
      1. 针对目前研发中心缺乏统一的决策机制和顶层架构的设计,设立内部决策团队,相应职责如上图,人员来自研发部各负责人以及组长副组长。
      2. 针对目前项目前后端分离带来的沟通障碍或者责任推诿等问题,设立业务核心组,人员来自于各组管理者和核心研发,需要具备研发环节管控能力以及团队管理能力;设立项目开发组,项目开发组针对项目类型细化成:产品开发组、业务开发组和临时小组。
      3. 针对技术性工作,各物理部门根据自己的技术路线规划,设立相应的技术支撑组,人员来自核心研发。
  • 资源流动
    • 项目开发组资源流动
      • 组长:由业务核心组派出。
      • 开发者:项目起始阶段由决策团队评估资源规模后,团队组建时由相应物理团队负责人统筹。
      • 资源抽调:产品型的项目非紧急情况不做人员抽调;对于其他类型的项目,经过决策组决策后按情况由物理团队负责人调整资源分配。
    • 技术组和技术性研发资源流动
      • 各物理部门若需要技术性研发,由决策团队评估后,安排相应资源进行研发;原则上不能侵占业务项目的资源。

欢迎关注我的博客