企业级DevOps技术与工具实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 实践案例分析

作为流媒体音乐服务商,Spotify 走出了一条适合企业自身发展的敏捷之路。在 Spotify 的文化里,敏捷比Scrum更重要,敏捷原则比任何最佳实践都重要,企业不需要流程主管,而需要仆人式的领导者。

1.Spotify的矩阵组织模式

Spotify的做法是将公司的业务分成若干个纵向的小块,这些纵向的小块被称为小队(Squad),每一个小队就像一个单独的创业公司,这些小队具备设计、开发、测试和产品发布所必需的全部技能和工具,并完全独立运行。相关的小队会组成部落(Tribe),各个部落之间会尽量保持自主与自治。Spotify的矩阵组织如图2-13所示。

图2-13 Spotify的矩阵组织

另外,为了团队间进行更深入的沟通与协作,Spotify会组成一些更大的群组,将其称为分会和工会(Chapter and Guild),以水平维度分享知识、工具和代码。分会领导的职责就是促进和支持这些工作。

在这种矩阵组织里,可以认为垂直维度是“做什么(What)”,水平维度是“怎么做(How)”,如图2-14所示。矩阵结构确保每个小队成员可以领会“下一步做什么”以及“如何做好”。

图2-14 矩阵维度职责说明

2.Spotify团队如何面对失败

我们可能会比其他人更快地犯错误,因为失败意味着学习,更快地失败就意味着更快地学习、更快地改进。探索世界虽然可能会受更多的伤害,但可以更快地成长,而伤口总会愈合。在一个对失败友好的环境中,应该鼓励大家积极面对失败,而不是避免失败。一旦出现失误,要开总结会议,对事不对人,总结经验教训,以促进团队成员的持续改进和持续学习,如图2-15所示。

图2-15 快速失败与改进创建对失败友好的环境

失败是为了学习。在几周一次的回顾会议中,不应过多地关注是谁犯的错,而应关注我们学到了什么和我们将要做出哪些改变,从而避免将来出现同样的错误。既要针对产品也要针对过程,这样才能做到持续改进。改进需要自底向上的驱动,也需要自顶向下的支持。

失败也是有代价的,因此需要想办法控制成本。例如,通过架构解耦,将缺陷控制在有限范围内,不影响其他组件,并快速修复出问题的那一部分;利用灰度发布,一开始只将新功能推给有限的用户,在确认功能稳定后,再快速推给大众用户,这样,即使新功能出了问题,影响的人群和时间也是有限的,也就更有底气去做试验、学习。相反,如果一切尽在掌控,你就落后了。