期间:2024
揭示大型机中的接缝以进行增量现代化
大型机系统继续运行着世界上大部分的计算工作负载,但通常难以添加新功能来支持不断增长的业务需求。此外,使它们难以增强的架构挑战也使它们难以替换。为了降低风险,我们应该使用增量方法来替换遗留系统,逐步用现代技术实现的功能替换遗留功能。这种策略要求我们将接缝引入大型机系统:在这些点上,我们可以将逻辑流转移到更新的服务中。在最近的一个项目中,我们研究了几种将这些接缝引入长期运行的大型机系统的方法。
通过人员衡量开发人员生产力
衡量开发人员的生产力是一项艰巨的挑战。专注于开发周期时间和吞吐量的传统指标是有限的,而且对于从哪里寻找其他指标也没有明显的答案。定性指标提供了一种强大的方法,可以使用来自开发人员自身的数据来衡量和理解开发人员的生产力。组织应优先考虑使用来自人员的数据(而不是来自系统的数据)来衡量开发人员的生产力。
如果我们每天轮换结对编程伙伴会怎样?
结对编程的好处已被广泛接受,但关于结对轮换的建议仍然存在争议。团队成员应该何时以及多久轮换一次结对伙伴?以及……如果我们每天轮换结对伙伴会怎样?我们与三个团队一起进行了一项每日结对轮换的练习。我们开发了一种轻量级方法,帮助团队反思结对编程的益处和挑战以及如何解决这些问题。最初的恐惧被克服了,团队发现了频繁轮换结对伙伴的好处。我们了解到,频繁交换结对伙伴可以极大地增强结对编程的好处。在这里,我们分享了我们开发的方法、我们的观察结果,以及参与团队成员分享的一些常见恐惧和见解。
遗留系统替换模式
当面临替换现有软件系统的需求时,组织通常会陷入技术替换半途而废的循环中。我们的经验教会了我们一系列模式,使我们能够打破这种循环,依靠:刻意认识到替换遗留软件的预期结果,将这种替换分解成多个部分,逐步交付这些部分,以及改变组织文化以认识到变化是不变的现实。
定期面对面交流
通信技术的进步导致越来越多的团队以远程优先的风格工作,这一趋势因 Covid-19 大流行的强制隔离而得到加强。但是,远程工作的团队仍然可以从面对面聚会中受益,并且应该每隔几个月进行一次。
LLM 应用开发的工程实践
LLM 工程不仅仅涉及提示设计或提示工程。在本文中,我们分享了一组工程实践,这些实践帮助我们在最近的一个项目中快速可靠地交付了一个原型 LLM 应用程序。我们将分享 LLM 应用程序的自动化测试和对抗性测试技术、重构,以及 LLM 应用程序架构和负责任 AI 的注意事项。
持续集成
持续集成是一种软件开发实践,其中团队中的每个成员至少每天将其更改与同事的更改一起合并到代码库中。每次集成都通过自动构建(包括测试)进行验证,以尽快检测集成错误。团队发现,这种方法可以降低交付延迟的风险,减少集成的工作量,并实现促进健康代码库的实践,以便通过新功能快速增强。
遗留接缝
在使用遗留系统时,识别和创建接缝非常有价值:我们可以更改系统行为而无需编辑源代码的地方。找到接缝后,我们可以使用它来打破依赖关系以简化测试,插入探针以获得可观察性,并在遗留系统替换过程中将程序流重定向到新模块。
2023 年我最喜欢的音乐发现
2024 年我最喜欢的六首新音乐收藏