Spotify大规模敏捷之路

Spotify第一曲:研发团队

参考资料:https://www.scrumcn.com/agile/scrum/21929.html
—使用一种新型的矩阵组织:部落、小队、分会和协会
在这里插入图片描述

Squad(小队)

  1. 小队是 Spotify 的最小开发单位。 --> 我们公司的交付组

  2. 小队中的成员坐在一起,他们具备PO、设计、开发、测试和产品发布所必需的全部技能和工具。一个小队是一个自组织团队、决定自己的工作方式。

  3. 每个小队都会有一个长期的使命 。比如:开发和优化 Android 客户端、 打造 Spotify 广播功
    能的用户体验、扩展后台系统、提供支付解决方案 。

  4. Spotify 鼓励每个小队都运用精益创业原则,比如 MVP(Minimum Viable Product,最小可
    行产品) 和验证性学习(validated learning) 等。

    • MVP 意味着尽早地、频繁地发布;
    • 验证性学习意味着使用度量(metrics) 和 A/B 测试(A/B tesing) 来确认什么可行,什么不行。
    • 用一条标语来总结的话,就是:“思考、构建、交付、调整(Think it, build it, ship it, tweak
      it) ”。
  5. 小队之间的依赖越少越好,越独立自治越好。

部落

  1. 部落是多个工作在相关领域的小队的集合——比如音乐播放器、 后台基础架构等。

  2. 人数不超过100人

  3. 定期交流会议:部落内会定期举办非正式的聚会,大家会在聚会上给部落中的其他人(以及任何出席聚会的人) 展示自己正在做什么、已经交付了什么、别人能从自己正在做的事情中吸取到什么经验或教训。展示内容包括可工作的软件、新工具与新技术、酷毙了的黑客日项目

分会

  1. 每个分会定期凑在一起讨论专业领域知识及他们遇到的挑战——比如测试分会,网页开发分会或者后台分会。

  2. 分会领导是该分会成员的直线经理,和传统的直线经理一样, 他们的职责是发展员工、 设定薪水等等。

协会

  1. 协会则是一个具有更广泛影响的“兴趣社区”, 它包含这样一群人,他们想要分享知识、工具、代码和实践。
  2. 分会是在部落内的,而协会通常跨越整个组织。比如,网页技术协会,测试协会,敏捷教练协会等等 。
  3. 每个协会都有一个“协会协调人”, 他也就负责协调而已

教授和企业家(professor andentrepreneur)”模型。

  1. 产品负责人(PO)就是“企业家”,关注于交付优秀的产品,而分会领导是“教授”,关注于技术卓越。

  2. 这两个角色之间存在良性的紧张关系,因为企业家倾向于快速交付和走捷径,然而教授倾向于慢下来和把事情做对。两个方面都是必须的, 因此我们说这是良性的紧张关系。

系统负责人

  1. 每个系统都有一个或一对系统负责人(我们鼓励结对)。对有些关键运营系统,系统负责人是开发和运营结对的(Dev-Ops pair) —— 一个人有开发人员的视角,另一个人有运营人员的视角。

  2. 系统负责人是系统技术或架构问题的“关键先生” 。系统负责人负责协调和指导开发人员,以避免开发人员之间的冲突。系统负责人关注于以下事情:质量、文档、技术债、稳定性、可扩展性和发布流程。

  3. 通常系统负责人是小队成员或分会领导,除了系统负责人的工作之外,他还有其他的日常职责。

首席架构师

负责协调跨越多个系统的、 较高层面的架构问题。他还会评审新系统的开发工作,以避免一些常见错误,并确保新系统和现有的架构设计是一致的。架构师的反馈只是建议和输入——系统设计的最终决策取决于小队 。

Spotify第二曲:研发过程

参考资料:https://www.scrumcn.com/agile/scrum/21931.html

Spotify产品开发的核心理念

  • 创造革命性的产品,通过早期低成本的原型设计来控制产品风险。
  • 品质不过关决不发布产品,即便是落后于既定的发布日期。
  • 通过产品发布后持续地调整优化,来确保产品从发布时就表现优异,直至最后得到惊艳的产品。

产品开发四阶段

在这里插入图片描述

  1. Think it阶段:拿出一个足够吸引人的故事性描述和能够传达它的可运行原型。想清楚你做这件事情有什么价值,怎样衡量这些价值(指标)。
  2. Build it阶段:构建出能够向真实用户充分传达产品理念的MVP(最小可行产品)。这里的真实用户建议群体足够小,目的是为了快速得到探索反馈和验证想法,不是为了占有市场。甚至可以用“纸上原型交互”法。
  3. Ship it阶段:MVP+必要改进已全部完成,但不代表所有功能全部完成,其目的是逐渐将产品扩散到所有用户,同时进行度量和分析,确保产品在真实环境下,也能够达成它的设计初衷。
  4. Tweak it阶段:在这个阶段,小队持续优化、A/B测试、度量和分析。这个阶段的目的就是完成所有功能,并做到极致。

Spotify第三曲:工程文化

参考资料:https://www.scrumcn.com/agile/scrum/21933.html

打造什么样的文化?

1. 打造独立自主、松耦合、整体高度一致的小队。

  • 管理者聚焦要解决什么问题,由团队自己去找出解决问题的方法。
  • 独立自主,但不能局部优化
  • 小队可以自主,但不能追求局部优化。就像是一个大型乐队,每个乐队小队都在独立自主的演奏,但又必须彼此倾听其他小队的演奏,共同聚焦整首曲子的演出,这样才能演奏出好的音乐。

2. 打造管理文化:自由胜过标准化管理,通过异花授粉而非标准化,来平衡灵活性和一致性。

3. 打造“以人为本”的文化:以相互尊重、相互鼓励作为公司文化的重点。

4. 打造不是建立流程、规范来管理发布,而是通过投资测试自动化和持续交付的基础设施,例如:改变架构,让发布解耦。

5. 打造包容失败的文化:自下而上驱动,自上而下支持的持续改进文化。

  • 失败必须是非致命的,否则我们无法存活到下次失败。
  • 采用A/B测试。

6. 打造良好的创新氛围

  • 通过降低可预测性,来促进创新。
    不做承诺的创新是非常理想的情况,在国内紧张的IT研发进度环节下,我们唯有相对平衡,制定战略计划,而不关注具体实施计划。通过降低预测性要求,使小队能聚焦于价值交付,而不是成为某人的武断计划的奴隶。

  • 营造创新氛围。
    “黑客周”和“黑客日”的目的是通过鼓励人们玩耍和尝试,来促进创新氛围的营造。根据我们的企业文化和合约进度的要求,不太可能完全设置这样的日和周,而我们可以尝试着定期举办一些富有黑客文化的活动,让大家利用业余时间去创新。

  • 鼓励试验文化(Experiment-friendly Culture)
    例如:
    - 该用工具A还是工具B?不知道,让我们两个都试用一下然后做个比较。
    - 或我们是否真的需要Sprint计划会议?不知道,我们跳过一次会议,看看后面是否会怀念它。
    - 或我们该在歌手页放5首还是10首排行榜歌曲?不知道,让我们两种情况都尝试一下,然后评估效果。

7. 处理好浪费

  • 尽量减少大项目。
  • 当必须启动大项目时(潜在收益巨大),应做好以下工作:
    • 用物理看板或者电子看板,通过各种组合方式,可视化项目进度。
    • 进行每日同步会议:所有小队共同参与讨论,解决相互依赖。
    • 每一到两周,进行一次演示:将产品各部分进行集成,召集干系人进行整体评估。
    • 一个小而紧密的领导团队,来持续地掌控整个大局。通常有:一位技术主管,一位产品主管,有时候还有一位设计主管。三者通力合作。

8. 如何管理文化

  • 关注文化的角色
    • 人力资源运作团队
    • 30+位敏捷教练
  • 新员工训练营(Boot Camp)
    • 时间:为期一周
    • 人员:由新招募的人员组成临时的小队
    • 内容:
      1. 解决实际问题。
      2. 同时学习技术栈和工作过程。
      3. 以及学习如何作为一个团队协同工作。
      4. 这种紧张而有趣的训练,能让你真正融入到文化中。
  • 通过讲故事来传播文化
    在博客、午餐以及各种场合分享自己的成功以及失败学到的经验教训。
  • 每个人都是组织文化的一份子。
    • 组织文化,是组织中每个人的态度和行为的总和。
    • 每个人都是组织文化的一份子。
    • 每个人都在塑造组织的文化。

领导团队健康监测

https://github.com/gcgan/team-playbook