文章探讨了软件开团队中代码所有权的问题,特别是随着团队规模的扩大,代码所有权不明确带来的负面影响。文章提出了代码所有权不明确的后果,包括系统不稳定、开发效率低下、技术债务积累等,并分析了产生这些问题的原因。同时,文章也给出了解决方案,如明确代码所有权、推动团队协作、采用适当的架构设计等。文章还讨论了这一问题的未来趋势和行业影响。
包括系统不稳定、开发效率低下、技术债务积累等。
包括共享代码所有权但缺乏协作、责任混乱、共享模块中业务规则混乱等。
包括明确代码所有权、追求良好的代码隔离、采用微服务架构等。
提高开发效率和系统稳定性,未来可能出现更多的自动化工具和微服务架构的普及。
作者:@Haimeng Zhou
原文:https://hackernoon.com/how-should-engineering-leaders-handle-code-ownership-challenges
背景
在软件开发过程中,代码所有权的问题随着团队规模的扩大变得越来越复杂。当一个小型团队(约 10 名开发者)共同开发一个系统时,代码所有权可能不是一个紧迫的问题。然而,当团队规模扩大到 500 人,并且数百名开发者共同维护同一个系统时,代码所有权的问题变得尤为突出。本文通过一位工程领导者的亲身经历,探讨了代码所有权不明确对软件工程团队带来的负面影响,并提出了相应的解决方案。
要点
代码所有权不明确会导致系统不稳定、开发效率低下、技术债务积累等问题。为了解决这些问题,需要明确代码所有权,推动团队协作,并采用适当的架构设计(如微服务)来隔离代码责任。
分析
1、代码所有权不明确的影响
构建者不拥有代码:通常情况下,代码的构建者和所有者是不同的人。这导致构建者可能不了解代码的历史,在修改代码时容易引入错误。
系统容易出错且不稳定:由于缺乏对代码的深入理解,小的代码更改可能会无意中破坏系统的其他部分。
重复造轮子:不同的构建者可能会重复开发相同的功能,浪费时间和资源。
软件开发生命周期 (SDLC) 变得冗长缓慢:即使是微小的更改也需要运行完整的端到端测试,这可能需要超过 20 个小时。
2、原因分析
共享代码所有权但缺乏协作等于没有所有权
当呼叫团队试图联系领域负责人解决生产环境问题时,在与三个不同的团队交谈后,最终发现没有人真正理解代码。
责任混乱
最近修改过代码的开发人员接到支持电话,但他们意识到最近还有另外两个团队也修改过相同的代码。那么,谁应该修复这个错误呢?
共享模块中充斥着大量的业务规则
业务层和基础设施层之间没有明确的界限。如果开发人员不了解其他开发人员添加的业务规则,那么修改任何文件中的任何一行代码都是有风险的。
每个人都在修改相同的代码,但彼此之间没有沟通
在截止日期的压力下,开发人员往往倾向于快速完成项目,而不会 “浪费” 时间进行沟通。作为开发人员,花时间与领域负责人开会并不是一件受欢迎的事情。
没有人对技术债务负责
随着时间的推移,不同开发人员的代码设计不再一致。我们开始看到一些非常奇怪的实现,每个人都知道系统的稳定性是一个问题,但是谁应该对技术债务负责呢?
团队不愿承担代码所有权
拥有代码意味着承担更多的责任。团队往往倾向于推卸所有权。一个典型的说法是:“我的团队对这个功能没有全面的了解,如果您有任何问题,请联系其他人。
3、解决方案
理想情况下
现实情况下
在单体应用中,定义域模块并为每个模块指定所有者。
采用共同所有权模式:一个团队负责构建基础元素,其他团队协作构建其功能。
加强团队协作:构建者应积极与所有者沟通,所有者应为构建者提供支持。
将代码视为资产:每个构建者都应以拥有和维护高质量、可持续的代码为荣。
影响
1、对行业的影响
2、未来趋势
结论
代码所有权不明确是大型软件开发团队面临的一个重要挑战。通过明确代码所有权、推动团队协作和采用适当的架构设计,可以有效解决这一问题,提高开发效率和系统稳定性。未来,随着微服务架构的普及和自动化工具的发展,代码所有权管理将变得更加高效和透明。
😀 每天只需花五分钟即可阅读到的技术资讯,加入【早阅】共学,可联系 vx:zhgb_f2er
5 分钟新知:了解技术资讯的一种方式。
🚀可直接通过阅读原文了解详细内容。