8、如何避免“最后一公里”
在这里,我只谈符合中国国情的软件行业,其实不只是软件行业,根源在什么?等级观念!
我不愿承认,却不得不承认,我们都在一个等级观念很强的社会里,你是老大,好吧,你说的都是对的,错的也是对的。你说重构没用,那就没用;你说技术没用,那就没用;你说可维护性没用,那就没用。
我们都是小兵,我们又能做什么呢?
在这里解决问题的不是技术,而是一个在企业中都会考虑的问题:牵制力!
在我眼中,CTO存在的价值是什么,明明都有CEO了,CEO是不擅长技术的,他关注的是结果,他关注的是这个产品能不能赚钱。而CTO是关注技术的,这个时候不至于让这个企业完全地朝着一条,不可持续发展的路线去发展。这就是CTO对CEO的牵制力。
同样,一个团队应该至少是有两个Leader的,一个是注重技术的,一个是注重业务的,两人等级相同,互相牵制。这样不至于让整个团队沉迷于技术的海洋中,也不至于让整个团队忽略技术的重要性。
关注业务的Leader会知道,我们要用多少时间去做这个东西,要做什么样才合适。他关注的是端对端的软件交付。
而关注技术的Leader会知道,我们这样去做会对今后产生什么样的影响,哪段代码的变化是频繁的,这段代码我们需要重构,这个技术是过时的,我们需要用新技术去重构代码。
两个人的牵制会让团队达到最好的平衡点。
当然,这个只是下下策,最好的情况是废除“等级制度”,至少在技术上废除(待遇上废除暂时在中国的大部分企业看来不太可能)如果可以的话。
9、总结
写到最后一节,回去看之前所有的文字,其实发觉都是废话,这些道理都浅显得很。
测试的重要性,如何建立一个好的团队,这都是“软件工程”这门课的基础理论。
可是,读了这篇文章的各位Leader们,你们还记得这些最基本的理论么?你的团队还是一个健康的发展的团队么?
当代码出现Bug时,当项目延期再延期时,当你的软件整天被客户追着骂时,当你责骂你手下那群无用的程序员时,不妨先扪心自问,这些基本的道理,你都做到了么?
那么,你还该做些什么呢?