写点什么

代码集体所有制的弱点在哪里?

2008 年 5 月 06 日

敏捷社区中许多人采取“代码集体所有制”实践有一段时间了,这段时间内我们确实发现了一些问题。

根据众多书籍的作者、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?

2008 年 5 月 06 日 09:47436
用户头像

发布了 479 篇内容, 共 124.0 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

银行数仓体系发展之路

易观大数据

Java-技术专题-JMX超详细解读

李浩宇/Alex

入行架构师之前,这7项技能你要先了解一下

华为云开发者社区

架构 架构设计 架构师

LeetCode题解:622. 设计循环队列,使用双向链表,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

智慧公安重点人员管控系统平台开发,智慧警务系统

13530558032

Spring Boot CLI 介绍

hungxy

Spring Boot Spring Boot CLI

TCP和HTTP中的KeepAlive机制总结

陈德伟

nginx TCP 性能 网络 HTTP

DDD+微服务实战:什么是DDD?

AI代笔

微服务 领域驱动设计 DDD

HTTP必知必会

陈靓-哲露

跨专业学习6个月,成功上岸阿里|滴滴,分享学习路线供大家参考

小Q

Java 学习 架构 面试 基础

本以为自己MySQL够牛逼了,直到亲自去阿里受虐了一次!

Java架构师迁哥

git的几种实用操作(合并代码与暂存复原代码)

良知犹存

git

未来已来!全球一流科技盛会——云栖大会9月17日线上隆重举办

北柯

Java程序员博客系统推荐!我调研了100来个 Java 开源博客系统,发现这 5 个最好用!

云流

Java 项目管理 计算机 框架设计

当代开发者的好帮手,浅析.NET敏捷开发框架的优势与特点

Philips

敏捷开发 软件开发 .net core 开发工具

实战案例丨GaussDB for DWS如何识别坏味道的SQL

华为云开发者社区

数据库 sql 算子

从想当亿万富翁到职场、创业、爱情、抑郁、学医学武,我的程序人生

陆陆通通

Java 创业 程序员 爱情 程序员生活

面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

小林coding

乐观锁 高并发 操作系统 计算机基础

天猫成立房产部门,利用区块链承载交易多项服务功能

CECBC区块链专委会

区块链 房地产

为什么企业需要CRM系统?CRM的作用及其重要性分析

力软.net/java开发平台

软件开发 信息化 CRM

Java-技术专题-AQS和Volatile和Synchronized实现原理

李浩宇/Alex

QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考

艾小仙

架构 编程语言

数字货币交易所技术开发,交易所源码

13530558032

区块链技术智能合约有哪些实际的应用场景

CECBC区块链专委会

智能合约 区块链技术

易观方舟Argo+CRM | 让企业数据发挥更大价值

易观大数据

赞!腾讯T4分享web性能笔记,竟包含大量网络协议的优化技巧

周老师

Java 编程 程序员 架构 面试

Spring-boot 单元测试

陈靓-哲露

区块链支付系统开发技术方案,USDT支付系统搭建

13530558032

数字资产钱包开发方案,区块链数字钱包软件源码

13530558032

Java异常面试题(2020最新版)

Java架构师迁哥

数字经济时代来临 区块链护航数字资产安全

CECBC区块链专委会

金融 数字时代

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

代码集体所有制的弱点在哪里?-InfoQ