为自己的工作建立明确的边界
所谓“明确的边界”,就是能尽早地建立明确的头脑模型,尽早摸清楚 (在你负责的领域内) 什么必须做,什么可以做,什么不能做,什么做不了。
有明确的边界会带来很多显性和隐性的好处。最重要的好处是,大家的需求关系明确化、协议化,不再依赖私下的潜规则,会节省后续大量的沟通成本。其次,愿意为自己的工作范围建立明确的边界的程序员,对边界内的代码质量通常会有强烈的责任感和主人翁意识,他们会比其他人敏感和熟悉得多,在他们的地盘上,他们能彻底的说了算。相关系统内如果出了问题,让其他人来可能要修两三天,换他来可能凭着对相关代码的熟悉度闭着眼睛就说出几个可能的问题点。
充满各种潜规则的系统非常脆弱,如果你发现一个程序员总在焦头烂额地处理沟通事务,往往就意味着隐患已经浮现出来了。缺乏边界意识的程序员,往往伴随着对代码较低的责任心。他们不把自己工作的代码看做是“自己的”,自然也就不会尽心尽力地去好好维护。
有种流行的说法是,应该通过某种形式的“轮换”,把程序员打造成“可轮换的”螺丝钉和多面手,以降低人员流失带来的风险。也许这一方式对其他行业会很有效,但至少在游戏行业,我发现,被这样轮换的程序员,这样来过几次之后,确实是对彼此的系统更熟悉了没错,但他们变得不再像之前那样“精心地”照料自己原本负责的那片代码。因为被 n 个人按自己的思路修理过之后,他们已经失去了“对那片代码的爱”,他们逐渐慢慢地从“园丁”变成了“游客”。随着时间的推移,没有人对这个模块内部的所有可能状态了如指掌,曾经被精心照顾的花园慢慢地变成了废弃的垃圾场。每个人改到这里都是无奈地捂着鼻子赶紧弄完了事,只要不要弄出新的问题就谢天谢地。这种腐化通常是加速而且不可逆的,从工程角度来讲,这往往预示着这一堆代码的废弃。更残酷的是,程序员们纷纷发现在这个项目里无法积累真正的领域相关经验,成为专家,还有什么比天天围着一辆二手车的不同部位反复修理又得不到成长更糟糕的事呢?他们唯一合情合理的选择,就是拂袖而去,或是准备以温和一点的方式拂袖而去。
程序员对代码的爱是一个项目里最稀缺的资源之一,不要忽略它,更不要粗暴地碾碎它,要通过创造稳定的环境和氛围去创造它,培育它,这样的代码库才能成为肥沃的土壤,带来源源不断的回报;否则就会变成一个摇摇欲坠、四处冒烟的,靠巧合来得以运行的庞然大物。
4. 对“异端”的相容度
「托利得定理:测验一个人的智力是否属于上乘,只看脑子里能否同时容纳两种相反的思想而无碍于其处世行事。」
这句话有三层递进的意思:具有包容性。能够理解矛盾各方的情势,对盲点敏感,不容易被蒙蔽。具有批判性思维。能用理性和逻辑等工具去分析问题,形成自己的判断,不盲从。具有人格独立性。依本性从事,不存偏见。
这三样对于程序员来说,都是比较重要的软素质。寸步不让,主导意识强烈的程序员,往往有着惊人的自信——要注意这种自信有时会成为双刃剑。在讨论中展现出不必要的自信,往往在令人屈服的同时,促使对方从“奉献者”转变为“打卡者”,降低整个团队的战斗力。
蓝鸥科技西安中心是一家致力于技术研发、技术咨询、技术服务、职业教育、创业孵化及项目投资的集团化公司。教育部产学合作协同育人项目承办企业,蓝鸥长期精研西安Java培训、西安大数据培训、西安VR/AR/Unity3D游戏开发培训、西安HTML5前端开发培训、西安Web安全攻防和西安UI设计培训等技术,是目前国内仅有的一家集苹果AATC、Unity、Oracle“三大官方授权于一身”的移动互联网培训企业。选择蓝鸥,不止高薪更是高起点!