软件开发
-
工程领导力成长路径:从新晋工程经理到技术管理者
我最初开始做工程管理时,几乎是在一片空白中摸索前进。很快,我就成了一家艰难求生的创业公司里唯一的工程经理,所有事情都只能边做边学。 那时的我并不是一位好管理者。回头看,我很感谢那些在那段时间里包容我的同事。当时,我没有系统化的管理方法,没有清晰的职业发展规划,也没有成体系的指导机制,只能凭感觉一步步…
-
为什么硅谷型公司更懂软件工程师?自主权、业务意识与研发效能的差异
我曾在多种类型的科技相关公司工作过:从传统科技公司、咨询公司,到投资银行,再到高速增长的科技公司。我也和许多软件工程师交流过,他们分别来自初创公司、银行、汽车公司、大型科技公司,以及其他更传统的企业。这些公司有的位于硅谷,有的总部则在硅谷之外。 我注意到,硅谷型公司往往真正理解了一些传统公司没有理解…
-
单元测试有什么好处?从代码验证到重构保障的收益金字塔
我曾多次因为单元测试而获得“原来如此”的顿悟,也曾因为缺少单元测试而吃过不少苦头。 我的亲身经历告诉我,自动化测试,尤其是单元测试,对于团队快速迭代、提升代码质量和高效成长至关重要。难怪我曾工作过的几家快速发展的科技公司,都会在公司范围内广泛采用这类实践,包括某海外出行平台、某海外大型软件公司中频繁…
-
大型科技公司的内部系统有哪些?软件工程师需要了解的研发工具与管理平台
某海外大型科技公司拥有大量内部系统。对于软件工程师和工程经理来说,了解这些内部系统、研发工具和工程管理平台,有助于更快理解大型技术组织的研发流程、协作方式和交付机制。 当你以软件开发工程师(SDE)或软件开发经理(SDM)的身份加入这类公司时,需要学习并使用一套高度定制化的内部技术栈。这套技术栈与外…
-
软件迁移怎么做?常见系统迁移类型与成功迁移方法
软件迁移是软件工程中最容易被忽视的话题之一,尤其是在高速发展的初创公司和大型企业中。 随着业务增长,公司往往需要采用新的系统和方法,以承载更高的负载、支持更多使用场景,或满足更多约束条件。于是,工程师有时就必须把旧系统或旧方法迁移到新系统或新方法上。这类系统迁移可能涉及服务替换、代码迁移、数据迁移、…
-
产品模式优于项目模式:为什么产品型团队更适合软件研发
软件项目,是当前软件开发中最常见的资金投入和组织方式之一。它通常根据商业论证中预估的收益获得资金支持,并以临时团队的形式组织工作。这些团队往往只负责开发,项目结束后便随之解散。 与之不同,产品模式采用长期稳定的产品型团队。这类团队负责从构思、开发到运行的完整过程,并持续围绕某一业务问题或业务能力开展…
-
技术债务是什么?如何治理技术债务并找到务实的中间立场
从一无所知,到否认它的存在;从接受它不可避免,到开始极力抗拒;最终,走向一种务实的中间立场。这大概是许多工程师在面对技术债务时都会经历的一条典型路径。 技术债务是软件开发中绕不开的问题。人们很容易想直接跳到结论:如何消除技术债务,以及如何避免技术债务。但如果跳过中间的认知过程,就很难真正理解最终立场…
-
高质量软件值得投入成本吗?为什么代码质量能降低软件开发成本
在软件开发项目中,人们经常会争论一个问题:时间究竟应该花在提升软件质量和代码质量上,还是应该用来发布更多有价值的功能?现实中,交付功能的压力往往占据上风。于是,许多开发者会抱怨:他们根本没有时间关注架构、内部质量和代码质量。 有一条著名的“贝特里奇标题定律”说:任何以问号结尾的标题,通常都可以用“否…
-
用定性指标衡量开发者生产力:为什么企业应重视来自开发者的数据
衡量开发者生产力,一直是一项复杂而艰巨的工作。传统指标通常聚焦于开发周期、交付速度和吞吐量,但这些指标存在明显局限,也很难单独回答“开发者生产力究竟如何”这一问题。 相比之下,定性指标提供了一种更有价值的路径:通过来自开发者自身的数据,理解他们的工作状态、协作体验、交付阻碍和真实感受。对企业而言,在…
-
SPACE 指标框架是什么?2025 年开发者生产力指标与 DORA 对比详解
SPACE 指标框架是一套用于衡量开发者生产力和工程效能的综合方法。它不只关注代码提交、部署频率这类交付指标,还会同时观察开发者满意度、团队协作、工作流效率、代码质量和组织健康度。对希望改进研发效能、优化开发者体验(DevEx)、建设平台工程能力的团队来说,SPACE 是一个值得关注的指标框架。 我…