在这篇文章中“未来已来-AI时代下的程序员出路在哪?”,我说过要专门写一篇反思的文章,来为大家避坑,希望我的这篇文章也确实能让大家受益。如果你是领导或者老板,我更希望你能认真读完此文,因为你有可能都不知道自己每月花费的巨额IT费用实际上在为公司的代码负债而买单。
一:小善如大恶,大善似无情
人与人之间的合作、对抗,其核心是价值观的合作与对抗。在我最早期入职到目前的公司时,我并没有目前的辨识力,我的价值观也并不像现在这么清晰,所以在和同事的合作当中,能感觉到不对劲,但说不出哪里不对劲(这名同事是一名做了将近20年开发的老程序员,所以我最初是对他有敬意之心)。
随着时间的推移、自我的提升,我发现了同事的价值观、风格和自己格格不入,甚至和公司也格格不入。在他的一些“小动作”面前,我总是从“道德”的层面约束自己,不要“打小报告”。结果就是我、其他人都在工位上做了调整,惹不起躲得起。
但是现在反思,从“经营者”角度去看当时的做法,是极其不负责任的,自己的这种“小善”给后期的“大恶”创造了积累条件,造成了合作上的种种不愉快、代码上的各种垃圾坑。
组织当中,尤其是在前期,并不总是容易把价值观相同的人凑到一起。所以,后面再遇到类似事情,我会从“经营者”视角考虑全局,该清理的人快速清理,给更多的人留一方潜心修行的净土。
二:上下同欲者胜
管理目的分为两步:首先让系统有秩序的运转,然后达到上下同欲的目的。
组织中,总有一些人只能在秩序的条框下工作,这部分人造成了岗位不断新旧交换,有人走有人来。这部分人,就是管理的第一步意义。我并不是有意把人分三六九等,但事实确实存在差别。对于此类人,组织需要制定相当明确的规则、自动检查机制、人工检查机制,这类人不会有突出贡献,但以上规则和机制确保了他的交付过程和结果至少对得起这份工资。
在人才留走的过程中,慢慢会有一部分真正优秀的人浮出水面,他们被提拔、奖励。对这部分人的软管理,会让组织的中高层力出一孔、上下同欲,带领企业走向更高、更远!
在我看来,软管理可以理解为:优秀的人只需稍加干预,做到价值观共鸣、保证大方向一致即可,这些人可以自我驱动前行,大大降低管理资源的消耗。但也不是当了管理者就高枕无忧,仍然需要定期检查,查业绩、查工作,最重要的要查管理者是否在自我迭代,一个真正优秀的组织,管理者们一定是在不断自我迭代中,不断给组织带来新营养。
三:有术无道止于术
不同行业需要不同的知识,知识学的好才有可能成为行业的人才。但知识学的好仅仅是术的层面,如果没有道作为地基,知识的大厦早晚会崩塌。
何为道?简单理解,真理即为道。做事情只求眼前利益,丝毫不考虑后路,这背弃了“真善美”,也毫无“道”可言。这样的人,知识学的再好,都不应该成为健康组织的一员,成就事业也就无从谈起。
四:具体落地
以上是比较“虚”的层面,接下来是如何把“虚”的落地执行。
1.抓过程
开发人员所做的事情,无非“制定实现方案”、“数据库设计”、“编码”。但垃圾的做法,会让数据库和代码变成屎山,其他人接手是根本无法维护的,一旦重构,那么将会付出巨大的时间和金钱成本。所以要对程序员做以下审核,如果重复犯以下错误,可以考虑和他say goodbye了。
①“实现方案是否具有可扩展型”
有些时候需求方的需求并不是真正的需求,程序员的价值则是识破伪需求,从真痛点解决问题。比如有人让你买一瓶矿泉水,你要思考的是他的真实需求,他要解决“口渴”的问题,那么你要给他后期喝饮料喝白开水等留出足够的空间,而不是口渴了只能喝矿泉水。
②规范、可扩展的数据库结构设计
在采购的场景下,把公司名称设计为数据表的字段。那我问你:公司名称发生了变更,就要推翻相关的逻辑代码吗?
③规范的命名方式
如果程序员以“abc”、“个人名字”等风格进行数据表或者代码变量的命名,你要意识到,这就是代码的地雷。
2.抓结果
①指定时间交付
②符合交付质量
③代码质量自动检查工具(省去一部分人工code review的工作量)
3.合作、利他、认错意识
①可以允许程序员没有业务意识,但对于业务提出的需求,不能用业务听不懂的IT描述进行拒绝
②对于业务端的需求,既要充分满足也要从合理性上做出拒绝。这点和第一点相悖,平衡好此点是一种能力
③别人的活别人干,自己的活也尽量让别人干==》直接走人!
④程序出错后或者结构安排不合理,被指出错误后仍然狡辩的==》直接走人!
今天的分享到此结束,后面会持续分享人生感悟、工作技巧、技术原理、拿来即用的实用代码,欢迎点赞、关注!