多团队敏捷开发的组织架构和协作模式
写这篇文章的背景是:一个项目组实施Scrum取得成效,如何在整个开发部门推广Scrum?看一下我们一个大产品,三个项目组共同完成的具体实践:
我们做了如下的组织调整:
1. ? ? 产品部增加一名总监(CPO),负责公司层面的产品思路,整合三个子产品
2. ? ? 各个Scrum小组的架构师和DBA成立虚拟架构师团队,架构师团队根据产品部的整体产品思路,提出并实现公司层面的技术架构(此时每一个项目组需要一个高级开发人员参加)。公司所有产品在这个架构平台上进行开发。这样的好处是:公司整体的开发成本、维护成本降低,质量提高。同时架构师和参加架构开发的高级开发人员在项目组内可以快速将架构平台应用在本项目组。在产品开发迭代开始之前,由“架构师团队”完成系统级的架构,然后架构师团队的成员回到自己的Scrum团队进行每日的工作。
3. ? ? 各个Scrum小组的QA成立虚拟QA团队,主要的目的是为了整合研发部QA的资源,推出更加高效的测试方法、测试工具
4. ? ? 三个项目组的SM以Scrum of Scrums的方式,每天(需要的时候随时)以会议的方式沟通10~20分钟,主要是产品间的整合、项目组见资源的协调、遇到的Impediments如何解决等。
5. ? ? 各个Scrum小组的美工成立虚拟美工组组,负责公司所有产品的界面(页面)设计,最大的好处是页面风格统一,页面层的技术可以共享,同时有利于公司的产品宣传和产品形象。
6. ? ? 每个Scrum小组内部以Scrum的方式工作,Scrum of Scrums的沟通介质是Kanban
7. ? ? 成立部门级的支持团队,分为技术专家团队、公共组件团队、领域专家团队、独立测试团队,每个团队人数很少,但是可以使整个部门的工作有效率。例如,架构师团队的Leader就是组件团队和技术专家团队的PO,只不过他们的Product Backlog只有技术需求而已。
8. ? ? 技术专家的工作以Kanban管理,公共组件团队的工作以Scrum管理
?
以下是我们实际使用的组织架构图:
?
?