guo
-
软件工程师如何提升写作能力?技术写作、工程文档与职业发展
对于工程领域的领导者来说,写作能力正变得越来越重要。事实上,写作能力不足可能会阻碍职业发展,尤其是在达到一定职级之后。对于软件工程师、工程经理和技术负责人而言,技术写作、工程文档写作和清晰表达,已经不再只是“加分项”,而是影响协作效率和职业发展的关键能力。本文将分享一些方法,帮助你写得更清晰、更频繁…
-
TPM 是什么?技术项目经理的职责,以及软件工程师能学到什么
本文将深入介绍技术项目经理,也就是 TPM 这一角色。 在大型科技公司和快速成长的创业公司中,TPM 越来越常见。但很多工程师、工程经理,甚至一些管理者,对这个角色仍然缺乏清晰理解。TPM 到底是什么?技术项目经理的职责有哪些?它和项目经理、产品经理、工程经理有什么区别?工程师和工程经理又能从 TP…
-
如何偿还技术债务?从小改动到大规模代码重写的实践经验
技术债务是软件开发中长期存在的问题。如何偿还技术债务、如何通过小改动理解代码库,以及什么时候应该进行大规模代码重写,都是工程团队在系统演进过程中绕不开的问题。 本篇主要讨论两个主题。 第一,如何通过偿还技术债务帮助自己进入工作状态。一个看似反直觉的观察是:做一些小的、非功能性改进,反而能帮助你更快理…
-
软件迁移怎么做?常见系统迁移类型与成功迁移方法
软件迁移是软件工程中最容易被忽视的话题之一,尤其是在高速发展的初创公司和大型企业中。 随着业务增长,公司往往需要采用新的系统和方法,以承载更高的负载、支持更多使用场景,或满足更多约束条件。于是,工程师有时就必须把旧系统或旧方法迁移到新系统或新方法上。这类系统迁移可能涉及服务替换、代码迁移、数据迁移、…
-
技术债务是什么?如何治理技术债务并找到务实的中间立场
从一无所知,到否认它的存在;从接受它不可避免,到开始极力抗拒;最终,走向一种务实的中间立场。这大概是许多工程师在面对技术债务时都会经历的一条典型路径。 技术债务是软件开发中绕不开的问题。人们很容易想直接跳到结论:如何消除技术债务,以及如何避免技术债务。但如果跳过中间的认知过程,就很难真正理解最终立场…
-
为什么软件项目估算很重要:时间估算、截止日期与按时交付
最近,我越来越多地听到一种观点:基于时间的软件开发估算没有太大意义,所以我们应该停止这样做。比如,“我们只用故事点估算复杂度,不估算时间”,或者“要不要试试 #NoEstimates(不估算)”。这些建议在我身边出现得越来越频繁,但我对这两种做法都持保留态度。 我承认,软件项目估算,尤其是基于时间的…
-
大型科技公司项目管理:为什么很少采用 Scrum,以及技术项目如何高效推进
大型科技公司如何推进技术项目?为什么许多大型科技公司很少采用 Scrum?这背后不仅是项目管理方法的选择,更与团队自主权、工程文化、组织结构、开发者工具和人才密度密切相关。 项目管理是一个几乎人人都有强烈看法的话题,我也不例外。为了了解不同公司如何推进工程项目,我咨询了来自行业不同领域的人士。本文将…
-
我们重新梳理进度基线变更后才发现:阶段拆分风险分析
项目在重新梳理进度基线变更后才发现阶段拆分存在风险,这通常说明前期计划并不是“排得不细”,而是阶段边界、交付定义、依赖关系和变更触发条件没有提前说清。要解决这类问题,关键不是把甘特图再切得更碎,而是回到阶段拆分本身:先判断风险出在“分段逻辑”还是“执行偏差”,再补齐里程碑、责任边界和变更机制,否则基…
-
计划版本管理和实际交付脱节时:承诺时间失效原因
计划版本管理和实际交付脱节,承诺时间之所以会失效,通常不是因为团队“不努力”,而是版本管理对象错了、计划颗粒度失真、变更控制失守、风险前移不足、进度反馈滞后。要解决这个问题,不能只盯着排期表,而要把“版本承诺”拆成可验证的范围、依赖、资源和验收条件,让版本计划从“口头目标”变成“交付系统的一部分”。…