软件开发
-
团队健康检查模型怎么做:用可视化发现团队改进机会
团队健康检查模型是一种帮助团队审视协作状态、发现改进机会、提升组织效能的方法。它通过一组结构化问题和可视化结果,让团队更清楚地看到当前状态、优势、痛点和变化趋势。 想了解这类团队健康检查模型的更多最新实践,也可以参考相关后续文章。 什么是团队健康检查模型? 许多公司都在尝试用不同方法衡量和可视化团队…
-
可观测性平台迁移实践:从供应商依赖到自主掌控的经验教训
如何通过一次复杂的大规模可观测性平台迁移,转向内部可观测性平台,获得更好的工具、更一致的数据,并从根本上重塑开发者体验。 可观测性,是指通过指标、日志和链路追踪等数据,了解应用程序的性能与可靠性状态。对任何一家公司的基础设施团队而言,可观测性都是最重要的能力之一。没有一个可靠、成本可控且易于使用的可…
-
工程师远程入职培训怎么做:某海外科技公司的 90 天入职流程
引言:一次远程优先公司的工程师入职体验 我们是 Adam Hood 和 Brian Amaratunga,两位资深软件工程师。2021 年,我们加入了一家海外科技公司,成为“远程优先”工作模式下的新员工。所谓远程优先,是指我们大部分时间都以远程方式工作,实体办公空间主要用于面对面协作。 2020 年…
-
2018 年敏捷软件开发现状:伪敏捷、技术卓越与产品团队
敏捷软件开发已经成为主流,但主流化并不意味着问题消失。相反,许多所谓的“敏捷实践”正在偏离敏捷真正的价值观和原则。本文围绕 2018 年敏捷软件开发的现状展开,重点讨论伪敏捷、技术卓越以及围绕产品而非项目组织团队这三大挑战。 从表面上看,敏捷软件开发的处境似乎一片大好:它已经成为主流。但现实并不完全…
-
持续集成(CI)是什么?核心实践、优势与适用场景
持续集成(Continuous Integration,简称 CI)是一种软件开发实践:团队成员频繁地将代码变更集成到共享主线,并通过自动化构建和测试尽早发现问题。它的核心价值在于缩短反馈周期、降低交付延期风险、减少集成过程中的浪费,并帮助团队长期维护健康的代码库。 本文将从实际开发流程出发,介绍持…
-
人工智能辅助软件开发的未来:AI的速度,人类的判断力
最近举行的一项国际大学生程序设计竞赛,传递出一个令人难以忽视的信号:在某些编程任务上,人工智能已经展现出超越人类程序员的能力。尽管一些吸引眼球的标题可能夸大了这一结果的现实意义,但这场技术实力的展示依然令人惊叹。不过,对于绝大多数企业管理者而言,现在远不是裁撤开发团队、让人工智能全面接管软件开发的时…
-
如何制定工程战略?解决工程战略缺失的实用方法
在我的职业生涯中,我经常听到同事、团队成员,甚至素不相识的网友抱怨同一个问题: “我们公司没有工程战略。” 所谓工程战略,并不是一句宏大的口号,而是帮助工程组织在技术决策、架构演进、研发效能和资源投入上形成一致判断的方法。我认为,缺少战略并不是工程部门独有的问题。产品、设计和业务团队中,也经常有人抱…
-
技术债务如何治理?迁移是解决技术债务的唯一可规模化方案
我参与过的最有趣的系统迁移项目之一,是某海外出行平台从基于配置管理工具的服务部署模式,迁移到完全自助式的部署模型。在新的模型下,公司里的任何工程师只需点击几下,就能启动一个新服务。 他们不仅可以这样做,而且确实每天都会这样做:工程师可以在服务尚未完全完成之前,就先部署多个新服务。甚至每位新入职的工程…
-
为什么我反对自上而下的全局优化?工程团队资源配置的另一种思路
在写完《保持打造高效团队的势头》之后,不少人提出了同一个后续问题: “如果一个团队已经偿还了大部分技术债务,那么团队里看起来多出来的人,是否应该转移到其他更缺人的团队?” 这个问题很合理。毕竟,如果某个团队剩余的技术债务已经很少,而当前优先级又没有那么多,那么从全局看,它似乎已经人员过剩。假如这种情…
-
如何持续建设高效工程团队?从团队状态到资源投入的管理方法
一位朋友在过去六个月里一直负责支持一个约 60 人的工程组织。毫不意外,组织里的大多数团队都觉得自己严重缺人。于是问题来了:招聘名额应该平均分配给所有缺人的团队,还是集中投入到一两个团队,直到它们的人员需求得到充分满足? 这是一个很好的问题,因为它抓住了工程团队管理中最具挑战性的部分之一:如何在有限…