一个企业中不可控的因子非常多,尤其是人员。
因为谁都可能因为疾病或者紧急事而离岗,保证业务正常运转不能依赖关键岗位上的人员,因此需要一些方法在软件团队中实现单点故障的消除。
其中一种方法是代码公有制,避免代码责任田,团队为代码质量负责,测试人员为最终的产品质量负责。
有时候我们会觉得让一个熟悉某个模块的人持续工作在这个模块上效率最高,所以理所当然的安排熟悉的人做熟悉的事情。
实际上这样做带来更多的麻烦:
1. 长期让一个人工作在一个模块,导致其他人对这个模块不熟悉,高度依赖某个人,造成单点故障。
2. 如果没人参与到这个模块,这个模块的质量和设计就取决于维护者自己的觉悟,从人性的角度看这是不可靠的。
换个角度来看,程序员并不拥有编写的代码,所有的产出都是团队的,团队需要整体对其负责。
对于关键的角色,往往都需要设置一个 backup,防止出现休假、离职的情况无法顺利交接。
关键角色的岗位人员调动几乎是必然的,离职、升职、调动、请假都需要 backup 把相关的工作顶上。
从这些角度来看,效率往往没这么重要,但这里并不是说效率不重要,而是作为技术管理者,需要认识到比效率更重要的事。
网友评论