40 实行集体代码所有制
1. 问题是什么
任何具备一定规模的应用,都需要多人进行开发协作。
如果某一段代码,只有一个人能够处理,出了问题,碰巧他不在,怎么办?
开发团队中,工程师只负责自己的一亩三分地儿吗?
2. 恶魔的方案
不用担心那个烦人的bug,Joe下周假期结束回来后会把它解决掉的。在此之前先想个权益之计应付一下吧。
如果一份代码只有一位成员能够处理,项目的风险无形中也增加了。
3. 天使的方案
要强调代码的集体所有制。让开发人员轮换完成系统不同领域中不同模块的不同任务
相对找出谁的主意最好,谁的代码实现很烂而言,解决问题,并让应用满足用户的期望要更为重要。
-
当多人进行开发时,代码会被频繁的检查,重构以及维护。
如果需要修复bug,任何一名开发人员都可以处理,项目日程安排相对容易
-
团队中实行轮换制,让每个成员都可以接触到不同部分的代码,可以提升团队整体的只是和专业技能
-
互相监督,指导别人看自己的代码,自己会守规矩,提升代码质量
4. 内心感受
项目中绝大部分的代码都可以轻松应对。
5. 平衡的艺术
- 不要无意间丧失了团队的专家技能
- 代码集体所有制,并不意味着可以随心所欲,到处破坏
- 开发人员不必了解项目每一部分的每个细节,不用为处理某个模块的代码而惶恐
- 有些模块不能采用代码集体所有制的,比如专业度很高的算法处理模块
- 如果不向团队分享知识,反而增加了丧失知识的风险
6. 总结
团队分工,不能只顾自己的一亩三分地,要集体共享,相互监督。
集体负责有相对于单人负责的好处,但也要注意,多人负责,也有可能意味着没人负责。