cai
-
组件群管理是什么:如何用自动化治理大规模代码库
这是我们关于某海外音频科技公司如何进行组件群管理,以及如何大规模管理软件的系列文章第一部分。另请参阅第二部分和第三部分。 简而言之,与其每年对基础设施做 10 次大型软件升级,不如在整个代码库中持续完成 10,000 次小型升级。 这正是 Fleet Management 背后的核心理念。本文将其译…
-
内部开发者门户如何提升开发者体验:经验教训与自主文化
在某海外音频科技公司的“产品故事”播客第八集中,我们分享了构建并开源内部开发者门户的故事,以及从中获得的经验教训。 对于快速增长的工程组织来说,内部开发者门户的价值不只是集中展示工具和服务,更在于提升开发者体验、降低上下文切换成本、改善服务可发现性,并帮助新工程师更快进入有效贡献状态。类似地,在企业…
-
黄金路径是什么:如何解决软件生态系统碎片化问题
“香料带来的幻象向他展示了无数个人类走向灭绝的未来,也展示了人类得以幸存的唯一未来。他将这个未来命名为‘黄金之路’,并决心让它成为现实。” 以上引文来自海外某百科社区对弗兰克·赫伯特 1976 年科幻小说《沙丘之子》的简介。这段话非常贴切,以至于我几乎可以确定,海外某音频科技公司的团队中,至少有一位…
-
技术迁移失败,未必是因为人手不足:如何诊断架构迁移问题
最近,我和一位朋友聊天。他提到,他们公司遇到了一个很常见的开发者生产力瓶颈:公司强制要求团队从单体架构和单体代码库迁移出去,但技术迁移进展非常缓慢。 为了加快迁移,负责基础设施的团队决定停止维护旧的单体架构,转而专注于新的服务化环境。两年后,工程师们开始陆续离职,只为避免在迁移过程中同时承受两套系统…
-
制定工程战略的五个步骤:探索、诊断、完善、方针与运营
你经常会看到一些杂乱无章的想法被贴上“战略”的标签。即使这些文档内容很多,也往往很难读懂。这也是为什么很多工程师会说,他们所在的公司没有清晰战略。 不过,根据我的经验,所有公司其实都在遵循某种战略,只是这种战略未必被明确写成文档。对于工程管理者和技术负责人来说,真正的挑战不是“有没有战略”,而是如何…
-
工程战略中的诊断:如何做好战略诊断
完成战略探索之后,下一步就是进行战略诊断。所谓战略诊断,是指理解这项工程战略必须面对的限制条件、现实约束和关键挑战。尤其重要的是,在充分理解问题的细节、背景和边界之前,不要急着寻找解决方案。 如果你很想跳过诊断阶段,直接进入方案设计,那么你也许需要先意识到一点:我见过的所有失败战略,几乎都源于诊断过…
-
软件研发效能指标怎么选?三类项目与三大原则
软件研发效能指标,是衡量团队交付效率、工程能力和业务价值流动的重要依据。近年来,“软件研发效能”成为行业热词,频繁出现在各类技术会议、工程管理讨论和企业实践中。许多科技企业和追求更高交付效率的团队,都在围绕研发效能建设平台、体系和方法论。 与此同时,一个核心问题仍然没有被彻底解决:什么才是合适的软件…
-
软件交付中的指标管理:如何合理使用指标,避免错误度量误导团队
管理层往往热衷于各种指标。他们的想法大致是:“我们需要一个数字来衡量工作表现。数字能让大家聚焦,也能帮助我们判断是否成功。”这种初衷并没有错,但以数字为核心的管理方式,往往会诱发一些问题行为,最终损害项目和组织的整体目标。 在软件交付和敏捷管理中,指标管理尤其需要谨慎。指标本身并不是坏事,问题在于它…
-
技术债务象限:如何区分审慎债务、鲁莽债务、主动债务与无意债务
过去几个月里,关于技术债务出现了一些讨论,也引发了一个问题:哪些类型的设计缺陷应该被归为技术债务,哪些不应该?对于研发团队来说,理解技术债务象限,有助于更准确地识别代码质量问题、评估重构优先级,并与非技术管理者沟通技术债务的真实成本。 一个典型观点认为,混乱的代码并不等同于技术债务。其理由是:如果混…
-
CTO 如何衡量业务影响:从开发者生产力到影响洞察的实践指南
知识工作者的生产力很难量化,而且往往与直接业务成果脱节。缺乏这种认知,会导致组织不断发起各种所谓提升开发者生产力的举措,造成技术支出膨胀,并做出并不恰当的投资选择。技术领导者,尤其是 CTO,需要避免陷入这种困境。他们需要构建一张能够洞察工作如何影响业务的网络,将团队产出与直接影响及下游影响关联起来…