在软件开发行业中,开发的分工也是越来越细,从前端,到后端,质量、运维等等。
专业上的分工,可以提升个体产出的效率。 让专业的人做专业的事情,整体的效率会有明显的提升,这个无可厚非的,但同样的工作,如何进一步分工呢?
例如,同样是后端工程师,为什么我只能天天写web接口,什么系统设计,数据库都不能接触到呢?
下面结合个人实践经验,聊聊后端团队的两种分工模式。
后端分工模式如何做组织设计分工,来达到团队整体输出价值的最大化呢?
在有点规模的技术团队中,后端技术内部也需要做一些职责的划分,来支撑业务需求的开发迭代,下面是比较常见的两种分工模式:
•竖切式: 按照业务域的职责划分后端小组•横切式: 按照系统职责层级划分后端小组
竖切式竖切式的原则是按照业务域的相关性来划分团队。 一个相关领域的后端团队,负责从对接前端的API需求到领域服务层,数据存储层等的上下一体的整体系统。具体如下图所示:
竖切的团队的优点:
•团队职责上边界清晰,从上到下一体化负责;•领域内实现了硬闭环,系统设计和迭代可持续;•团队成员有全局意识,领域专业上可沉淀传承;
竖切的团队的缺点:
•前端团队和后端团队沟通需要跨多个团队对接;•一些聚合性的需求实现需要对接多个后端团队;
横切式横切式的原则是按照系统职责分层来划分团队职责。做应用API层的同学就负责对接前端的API需求,做领域服务层的同学负责做领域服务。具体如下图所示:
横切的团队的优点:
•前端团队对接后端不需要跨多团队•聚合性需求有API团队做闭环整合
横切的团队的缺点:
•整体的沟通并未减少,反而是沟通层级增加了一层,效率可能会降低;•负责接口层的同学学习成本较高,他需要了解全领域的才能做好工作;•负责接口层的同学无成就感,为什么同样是后端工程师,我怎么只能天天写接口呢,严重不利于其个人成长;
最后的话团队组织的分工是提升组织效率的一个重要手段,好的组织分工是要达到双赢的目标。
作为管理者,不能只考虑一个维度的指标,简单的来做切分,更需要全面的考虑,既需要提升整体的效率,更需要关注个人的成长。
管理的本质要回归到人性的基本面,每个人都希望有所成长,有所成就,实现价值。
管理不能简单把员工当做工具人,己所不欲,勿施于人。