Questions tagged «code-ownership»

代码所有权是由谁负责特定代码块的监督,维护和更新的概念。有些地方制定了集体代码所有权政策,另一些地方则要求特定人员签署对他们所擅长的给定代码部分的更改。

7
当同事在未通知的情况下进行不必要的改进时,如何对我的代码负责?
我的队友之一是我们IT部门所有行业的杰作,我尊重他的见识。 但是,有时他会不加提示地查看我的代码(他是我们团队负责人的第二命令,所以可以预期)。因此有时他会在我完成最终目标并立即进行更改之前查看我的更改,甚至破坏了我的工作一次。 其他时候,他对我的3个月以上的代码进行了不必要的改进。 这让我很烦,原因有几个: 我并非总是有机会改正我的错误 当他感到困惑时,他没有花时间问我要做什么,这可能会影响他的测试或更改 我并不总是认为他的代码可读 截止日期不是问题,他的当前工作量除了查看我的代码更改外,不需要在我的项目中进行任何工作。 无论如何,我过去曾告诉过他,如果他在我的工作中看到一些他想更改的东西,以便我可以拥有我的代码(也许我应该说“缺点”),并且他没有回应,请把我保持在工作状态。 。 当我问他向我解释他的改变时,我担心我可能会变得冒犯别人。 他只是一个沉默寡言的人,坚持不懈,但他的行为仍在继续。我不想阻止他进行代码更改(不是像我能做到的那样),因为我们是一个团队,但是我想尽自己的一份力量来帮助我们的团队。 补充说明: 我们共享1个开发分支。我不会等到所有更改都完成一个任务后再做,因为我可能会失去一些重要的工作-因此,我确保我的更改可以建立并且不会破坏任何内容。 我担心的是,我的队友没有解释其更改背后的原因或目的。我认为他不需要我的祝福,但是如果我们不同意我的做法,我认为最好是在我们都了解发生了什么之后再讨论利弊并做出决定。 我尚未与团队负责人讨论此事,因为除非有必要,否则我宁愿在不让管理层介入的情况下解决个人分歧。由于我的担忧似乎更多是个人问题,而​​不是对我们工作的威胁,因此我选择不打扰团队领导。我正在研究代码审查过程的想法,以帮助促进组织更有组织性的代码审查的好处,而又不至于使我烦恼。

6
如何应对依赖依赖的恐惧
我所在的团队创建了可供公司合作伙伴用来与我们的平台集成的组件。 因此,我同意在引入(第三方)依赖项时应格外小心。当前,我们没有第三方依赖项,我们必须保持框架的最低API级别。 一些例子: 我们被迫停留在框架的最低API级别(.NET标准)上。其背后的原因是,有一天可能会出现一个仅支持非常低的API级别的新平台。 我们已经实现了自己的用于(反)序列化JSON的组件,并且正在对JWT进行同样的处理。在更高级别的框架API上可用。 我们已经围绕标准库的HTTP框架实现了包装器,因为我们不想依赖于标准库的HTTP实现。 同样,出于同样的原因,所有用于映射到XML或从XML映射的代码都是“手工”编写的。 我觉得我们走得太远了。我想知道如何处理这个问题,因为这会极大影响我们的速度。

13
*代码所有者*系统:这是一种有效的方法吗?[关闭]
我们团队中有一位新开发人员。我们公司正在使用一种敏捷方法。但是开发人员还有另一种经验:他认为必须将代码的特定部分分配给特定的开发人员。因此,如果一个开发人员创建了一个程序过程或模块,则认为该过程/模块的所有更改仅由他自己进行是正常的。 从好的方面来说,据推测,使用提议的方法可以节省通用的开发时间,因为每个开发人员都非常了解自己的代码部分,并且可以快速进行修复。缺点是开发人员并不完全了解该系统。 您认为该方法对于中等规模的系统(社交网站的开发)是否有效?

13
个人代码所有权重要吗?[关闭]
我正在与一些同事争论整个代码库的团队所有权是否比其各个组件的所有权更好。 我非常支持为团队中的每个成员分配大致相等的代码库份额。它使人们为自己的创作感到自豪,为错误筛选器提供了分配入场券的明显第一位,并有助于缓解“破窗综合症”。 它还集中了一个(或两个)团队成员对特定功能的了解,从而使错误修复更加容易。 最重要的是,它是由拥有大量投入的人而不是由委员会来决定重大决策的最终决定权。 如果有人要更改您的代码,我不主张要求获得许可;当然,也许代码审查总是对所有者负责。我也不建议建立知识孤岛:这种所有权不应该排他。 但是,当向我的同事提出建议时,我得到了很多回击,当然比我预期的要多得多。 因此,我问社区:您对在大型代码库上与团队合作有何看法?关于保持集体所有权,我缺少什么吗?


5
代码所有权是代码的味道吗?
自从我在有争议的编程观点线程中阅读此答案以来,我一直在思考以下问题: 你的工作是使自己失业。 在为雇主编写软件时,所创建的任何软件都应以任何开发人员都可以选择并以最小的努力理解的方式编写。它经过精心设计,清晰一致地编写,清晰地格式化,记录在何处,按预期每日生成,检入存储库并进行适当版本控制。 如果您遇上公共汽车,下岗,解雇或下班,您的雇主应该能够在短时间内通知您,然后下一个人可能会担任您的职务,接管您的代码,并做好准备。一周之内就可以跑步了。如果他或她做不到,那您就惨败了。 有趣的是,我发现有了这个目标使我对雇主更有价值。我越努力成为可抛弃型产品,我对他们就越有价值。 而且在其他问题(例如这个问题)中也进行了讨论,但是我想再次提出来从更空白的角度讨论“ 这是代码的味道! ”的观点-尚未真正涵盖深入。 我从事专业开发已经十年了。我曾经做过一项工作,代码编写得足够好,可以被任何体面的新开发人员相对迅速地拿到,但是在行业中的大多数情况下,似乎拥有很高的所有权(个人和团队所有权)规范。大多数代码库似乎都缺乏文档,流程和“开放性”,而这将使新开发人员可以选择它们并快速使用它们。似乎总是有很多不成文的小技巧和黑客,只有非常了解代码库的人(“拥有”它)才知道。 当然,明显的问题是:如果该人退出或“被公交车撞上”怎么办?还是在团队层面上:如果整个团队在团队午餐时外出时食物中毒,而他们全都死了怎么办?您是否可以相对轻松地用一组新的随机开发人员代替团队?-在过去的几份工作中,我完全无法想象这种情况的发生。这些系统充满了诡计和技巧,以至于您“ 只需要知道 ”,以至于您雇用的任何新团队所花费的时间远远超过可盈利的业务周期(例如,新的稳定版本)才能使事情恢复正常。简而言之,如果不得不放弃该产品,我不会感到惊讶。 显然,一次输掉整个团队是很少见的。但是我认为所有这一切中还有一个更微妙和危险的事情-这就是让我开始思考这个话题的要点,因为我以前从未看到过这些术语的讨论。基本上:我认为对代码所有权的高度需求通常是技术债务的指标。如果您“必须知道”系统中缺乏流程,沟通,良好的设计,许多小技巧和小技巧,等等-这通常意味着系统正在逐渐陷入越来越深的技术负担。 但是问题是-代码所有权通常被表示为对项目和公司的“忠诚”,是对工作“承担责任”的积极形式-因此,完全谴责它是不受欢迎的。但是,与此同时,等式的技术债务方面通常意味着代码库变得越来越不开放,并且使用起来更加困难。特别是随着人们的前进和新开发人员的到位,技术债务(即维护)成本开始飙升。 所以从某种意义上说,我实际上认为,如果对代码所有权的高度需求被公开认为是一种工作气味(在流行的程序员想象中),这对我们的职业而言将是一件好事。与其将其视为工作中的“承担责任和自豪感”,不如将其视为“通过技术债务巩固自己并创造人为的工作保障”。 我认为测试(思想实验)基本上应该是:如果这个人(或者实际上是整个团队)明天要从地球上消失,该怎么办?这是否会对项目造成巨大的伤害甚至是致命的伤害,还是我们可以招募新人员,让他们阅读doccos和帮助文件并使用代码几天,然后再返回在几周内完成业务(一个月左右即可恢复全部生产力)?

12
对代码的情感依恋[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 作为公司的员工,当您编写代码时,您是否觉得自己有附件?您是否觉得自己拥有该代码的所有权?还是您将它写成与它完全分离,而不用担心转移到其他内容之后会发生什么? 编辑:我不是在谈论编写错误的代码,然后运行...

2
功能所有权是一种好习惯吗?
最近,在我公司中,有人建议一位开发人员应该(仅一位)专注于一项功能。这意味着要像将开发人员置于正常的团队常规工作之外,再将其承担其他职责(会议等),而此人将是负责该功能(技术上明智)的“唯一”人员。 作为记录,我们在SAFe中使用SCRUM,并且每个团队都有专职开发人员,在我们两个团队(Android和iOS)之间共享质量检查和产品所有者。 尽管我同意这会在短期内提高生产率,但我有一种感觉(我认为我是在大学里学到的),这是一个不好的做法,原因有很多: 代码审查失去价值。 最少的知识共享。 风险增加。 失去团队灵活性。 我说的对吗,或者这不是一个坏习惯?

3
如果项目取消,谁拥有代码?
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 问题是:我正在一个自由市场上工作,我决定取消与一位客户的项目,因为客户不可能无限制地拖延工作并且后端有很多错误。我想给他部分退款(部分原因是因为我工作了两个月并且有3k行代码,尽管由于他后端的问题,应用程序仍然无法正常工作)。 问题:谁是我编写的代码的“所有者”?在项目启动时,我们没有对此达成协议。我可以告诉他不要使用我的代码吗?我了解,无论如何他都可以无视我的禁令,我只是想知道我是否有正式的“权利”这样说。

4
弗雷德·布鲁克斯(Fred Brooks)的“外科团队”是否有效处理公交因素?
我的团队由4名经验丰富的开发人员组成,致力于大型模块化Windows应用程序(约200 KLoC)。自从项目开始(3年前)以来,我一直专注于核心代码库,尽管我不是团队经理,但已经逐渐转移到半领导开发人员的职位。 我们当前的迭代是高层管理人员要求的高优先级UI刷新,其中涉及对核心代码库的约15项更改。当经理询问时,我估计15项更改中的每项更改都需要不到4个小时来完成,总共不到7个工作日。然后,我自愿参加了这项工作。相反,经理决定将所有15个任务平均分配给所有四个开发人员。 从开始工作的三天里,我观察到两件事: 其他经验不足的团队成员每人完成大约1个或更少的任务。 布鲁克定律的实际应用:我花了大约一半的时间提供帮助(试图指导他们如何使用组件)。结果,我自己只完成了2个任务,而不是预期的5或6个任务。 我担心上班时间太晚,向经理咨询,并再次建议我完成剩余的任务。我的请求被拒绝,并且所述平均分配负载的原因有两个: 限制卡车/公共汽车的因素 -现在提高其他开发人员的技能,以便将来可以将任何工作提供给任何人,而不仅仅是我。 消除“瓶颈”(我)并更快地完成工作。 明确地说,我在以下方面没有问题:a)花时间进行教学,b)接触我的代码的人员,或c)工作安全。实际上,我经常向团队负责人建议,我会在核心代码库的某些方面对其他开发人员进行培训,以降低风险。 在此迭代中,我们还针对了许多高优先级的错误修复程序,因此,如果重新分配工作负载,似乎可以取得更大的进步。 在《神话人月》中,布鲁克斯建议建立一个“ 外科团队 ”,其中每个团队都由领导+副领导(经理和我)以及一些次要角色组成。我觉得我们很自然地会加入这个组织,但我的经理正在与之抗衡。我觉得总线因素已经得到解决(经理在核心代码中很精通),并且瓶颈实际上并不存在(让更多开发人员参与进来不会使工作进展更快)。在这方面,我认为手术团队是件好事。 这些是我的感受,但我不是经验丰富的经理,我们也不必处理公车因素(敲木头)。布鲁克斯说的对吗?您是否曾在公交因素发挥作用的“外科团队”中工作?是否有更好的技术来管理分销专业知识? 类似问题: 如何同时增加总线系数和专业性? /software/103718/always-keeping-2-people-expert-on-any-one-chunk-of-code
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.