Logo
Section 1 / 10

本章故事地图

了解如何跨团队统一最佳实践并推动部门协作

导入

本章故事地图

了解如何跨团队统一最佳实践并推动部门协作

“整洁的家,整洁的心。”——匿名

为什么要读这一章? 一个整洁的家有益于心智,一个有序的部门同样如此。我们无法仅靠单个团队实现整洁,必须依靠所有团队协同合作。你将学会如何做到这一点。

**你将学到什么?** 你将学习如何通过有效的沟通和组建新团队,在整个部门内统一最佳实践。你将掌握不同信息类型的最佳沟通方式,并通过技术小组(guilds)和委员会协调跨团队协作。

你将能够做到哪些以前做不到的事? 你将掌握在部门内推动项目时合适的沟通与组织技巧,能够发起对全部门产生影响的项目。

![](http://network.jancsitech.net:9000/pageflex-ai/images/general/202509/1758270234803281411.png)

接下来我们要去往哪里?这又如何融入整体? 在建立了与部门其他成员协作的基础之后,我们将探讨如何为独立贡献者和管理者定义职业发展路径,这是一项极具价值的协作工作。

场景:良好的日常管理

生产环境再次出现问题。你和你的团队围坐在一起查看日志,百思不得其解。

“这根本说不通啊,”本说道,“为什么共识组还在尝试连接那个已经崩溃的实例?”

“不知道,”你回答,“不是应该能检测到它宕机,然后由另一个实例接任领导者吗?”

![](/api/collection/10370001/5778138594803712/page/6129434254376960/image/5529393676419072)

“等等,这之前不是发生过吗?”塔拉说,“我记得几个月前我们调试过类似的问题。当时是怎么解决的?”

你记不起来了。你回溯代码库的历史提交记录,试图找到上次修复这个问题的那次提交,假设它确实存在,也假设我们真的解决了问题。但毫无收获,什么也没找到。

“找不到相关的提交记录,除非它被起了一些奇怪的名字,”你说。

这时你注意到艾玛正从旁边走过。她是高级工程师,肯定能提供一些有价值的见解。

“艾玛,方便聊一会儿吗?”

“当然,怎么了?”

“我们的存储层又出问题了。部分实例挂掉了,我们重启了它们,但现有的实例仍不断尝试连接旧的实例,导致应用卡住。”

艾玛推来一把椅子,和你一起查看日志。

“好的,能让我看看你们启动服务时用的配置吗?”

“当然。”你调出应用的生产环境配置,艾玛凑近仔细查看各项参数。

“连接超时的默认值在哪里定义?”她问。

“还有默认值?”你反问。

“有啊。如果没有设置,默认值,系统会无限重试已失效的实例,而不会尝试寻找新的领导者。我觉得这就是问题所在。把这个加进去,重启试试看。”

你照做了,集群很快选出了新的领导者,系统恢复正常。应用也重新变绿。

“真没想到你们没用我们所有人共用的默认配置,因为这些是继承自那里的,”艾玛站起身说道。

“原来还有默认配置?”塔拉惊讶地问。

“有的。有一个父级配置,用于管理所有与该存储交互的应用。我稍后发给你链接。”

“你觉得这可能是上个月所有故障的根本原因吗?”你问。

“很可能是,”艾玛边走回自己的工位边说,“我现在就把父级配置的位置发给你。”

团队成员面面相觑,显然有些尴尬。

“我们上个月真的就因为没设几个配置项,白白浪费了那么多时间?”本问道。

“看起来就是这样。我们花了好几天以为是代码问题,”你回答,“为什么我们之前不知道这个配置的存在?哪怕第三次出问题时也不清楚?”

这种情况听起来熟悉吗?我们都经历过。一次遗漏的沟通、糟糕的文档,或信息传递错误,都会引发各种问题。这类情况发生在各个层面:个人之间、团队内部,乃至整个部门和公司。如果缺乏系统性的改进、沟通和信息共享机制,部门就会逐渐分裂。团队之间可能感觉像在说不同的语言,即使他们就在同一个办公室里并肩工作。

好消息是,作为管理者,你可以使用多种方法来保持团队的井然有序。你不必等待CTO从上至下发布指令来解决问题。相反,你可以立即在自己团队中开始实施这些方法,获得立竿见影的效果。然后,你可以通过与部门内其他人分享经验,带动更多人加入,逐步推广这种自下而上的做法。你打造的整洁团队,也能让整个部门变得更高效。

本章聚焦于建立协作小组、推行简单流程,以促进集体学习,减少重复犯错,并与从未谋面的人建立有效互动。这是一场关于团队和部门良好管理的实践。

学习目标

  • 理解为何沟通在大型部门中尤为困难,以及它如何对软件构建效率产生可衡量的影响
  • 如何跨越团队边界,通过技术小组(guilds)将具有相似技能和兴趣的人凝聚起来
  • 如何推动技术分享文化,从而团结团队与整个部门
  • 如何将问题转化为推动全部门软件与流程持续改进的机会
  • 掌握一些实用工具,帮助理解软件设计背后的上下文、评估团队是否持续进步,以及明确责任归属

放下控制

沟通决定软件设计