开启并实践持续集成
在软件开发中,随着开发人员数量和版本控制中分支数量的增加,确保开发人员能快速获得工作质量反馈变得尤为重要。版本控制系统中的“分支”功能,原本是为了让开发人员能并行处理软件系统的不同部分,避免个人提交的更改破坏主干代码。然而,开发人员在独立分支中工作的时间越长,将这些更改集成回主干就越困难。随着分支数量和每个分支中更改数量的增加,集成难度呈指数级增长。
集成问题会导致大量返工,包括手动合并冲突更改,或者因合并导致自动化或手动测试失败,通常需要多个开发人员共同解决。由于传统上集成工作在项目末期进行,一旦耗时超过预期,我们往往不得不偷工减料以赶上发布日期。这会形成恶性循环:合并代码越痛苦,我们合并的频率就越低,未来的合并也就越困难。持续集成正是为解决这一问题而设计的,它将代码合并到主干变成了每个人日常工作的一部分。
HP LaserJet 固件案例(2014 年)
HP 的 LaserJet 固件部门有 400 名分布在美国、巴西和印度的开发人员。多年来,他们无法像业务需求那样快速交付新功能,每年仅完成两次固件发布,大部分时间都花在移植代码以支持新产品上。据估算,他们只有 5% 的时间用于创建新功能,其余时间则花在与技术债务相关的非生产性工作上,具体如下:
|工作内容|占比|
| ---- | ---- |
|详细规划|20%|
|代码移植|25%|
|开发分支间代码集成|10%|
|手动测试|15%|
为了将创新和新功能开发的时间提高 10 倍,团队采取了以下措施:
- 持续集成和基于主干的开发
- 大力投资测试自动化
- 创建硬件模拟器,以便在虚拟平台上
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



