敏捷社区中许多人采取“代码集体所有制”实践有一段时间了,这段时间内我们确实发现了一些问题。
根据众多书籍的作者、ThoughtWorks 首席科学家 Martin Fowler 的说法, “代码集体所有制(简称CCO)”抛弃了个人拥有代码所有权的想法。实际上,代码是由整个团队所有的,团队中任何人都有权对其修改。常为人提到的好处包括:增加了“卡车因素”、负载均衡(瓶颈最小化)和使代码向所有人开放。此外,Wiki 的发明人、AboutUs 公司CTO, Ward Cunningham 指出 CCO可以增加开发工作的自豪感,因为整个团队都可以看到一个人的全部开发工作,而不是仅看到一个很难理解的API,而此人其他的努力都隐藏于其后。
Software Development 和 Computer Language 的前编辑 Larry O’Brien 认为:即使有这么多好处,CCO 还是有一个很大的缺陷——它会使得管理层无法发现恶劣的程序员。Larry 有两个核心观点:
- “恶劣的程序员并不是工作速度慢的好程序员。他们在主动地对团队的生产力起到反作用。”
- CCO 会隐藏恶劣的程序员,因为好程序员们会发现这些人制造的问题并解决掉;管理层无法知道恶劣的程序员在拖团队的后腿。
摩托罗拉全球电信解决方案部门(Motorola Global Telecom Solutions Sector)的首席软件工程师 Brad Appleton 已经见过很多案例,在这些案例中,CCO 被降级为“无人所有制”,没有人承担责任。实际上,他建议使用 “代码管事人(Code Stewardship)”机制(Martin Fowler 称之为“弱代码所有制[Weak Code Ownership]”),他说:
代码管事人既是监督者又是指导者,负责监督指导模块和类中的相关知识。代码管事人的工作不只包括担任并发访问代码的保卫,还要保证代码(在概念上和结构上)的完整性和一致性,以及向他人广泛传播知识及其专业技能。
所以“代码集体所有制”可以起到很好的作用,不过必须要保证它不会堕入“无人所有制”的混乱状况(无论通过纪律保证,还是使用“代码管事人”),而且要注意发现有意拖团队后腿的恶劣程序员。
查看英文原文: Are there weaknesses with Collective Code Ownership?
评论