A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

想想下面这个问题:
“如何开始使用单元测试?”
作为一个技术问题,你身边的人肯定会一脸狐疑的看着你,然后告诉你:“首先,写一个单元测试。然后,运行测试。”
然而,当有人问你这样一个问题的时候,很显然他们想要的并不是这样的回答。
他们真正想问的是,应该是:“如何整理多年来累计的杂乱代码库。我的一个同事,已经工作了40年了,他排斥所有新的技术,而且管理层没有足够的预算让我们去写 ‘额外’的代码。在这种情况下,如何使用单元测试?”这个问题,才是真正难以回答的问题。
经常有人问我这种看上去很简单,但是实际上非常复杂的问题。“我团队中有一个人写的代码极其纷乱复杂,根本无法维护。我该怎么办?”
免责声明
先说明一点,对于“我同事代码写的乱怎么办?”这个问题,每个企业和机构的态度都不太一样。
例如,有的企业可能会帮你和那个开发者进行沟通。但是也有的企业,其态度会是:“不管你喜欢还是不喜欢,你所抱怨的那个开发者就是公司的高级开发者。”在这种情况下,你可能会觉得自己很无助。
因此,我需要事先说明,我的这些建议,可能在你所在的公司内并不适用。
用数据说话
那个同事写的代码让你忍无可忍,格式混乱,难以阅读。他的代码让你在心理和身体两方面都感到恶心。你甚至觉得,他这么写代码,就是为了针对你。
尽管你讨厌他写的代码,但是你确定他的代码真的不好吗?你说他的代码乱,有什么证据吗?你凭什么说他的代码写的乱?你是否将他的入口点和出口点绘制成图了?你是否用图表分析了代码中的依赖?你不喜欢他的代码,是否只是因为他写代码的方式与你不一样?
质疑你的并不是我,在没有证据的情况下,大部分人都会质疑你的想法,尤其是你批评的那个人。除非你能够用数据说明他的代码真的有问题,否则你的“指控”就是苍白的。
在指责别人之前做一点功课,用数据说话,给你的观点拿出论据。
问问自己:“我算什么啊?”
为什么要问自己这个问题?因为公司里的其他人会这么想。没错,你拿出了证据,证明了那个人写的代码太乱。但是这就够了吗?
有这样一种可能:你所指责的那个人,他可是公司的元老!他是公司第一个开发者,他加入公司的时候,电子邮件还没出现呢,他们之间还用信鸽通信呢。公司第一版的软件就是他凭借一己之力写出来的。你能跟这样的人叫板吗?
我没开玩笑,这个问题很重要。你需要考虑一下自己的角色。如果在团队中,你扮演的是领导人或是导师的角色,而对方是一个新员工,你直接指出他的问题,这样不会有大的差错。但是如果你是团队中的新成员,或是初级工程师,这样说团队中的元老,你的好日子也就到头了。
你一定回想,在事实和正义面前,角色的差异并不重要。老实说,这也是我的信仰。但是我猜如果你这么做了,公司的HR一定会好好和你“谈一谈”。
“以下犯上”会让你陷入被动的局面——即使你说的是对的。如果你一定要挑战一下,一切后果请自负。最好的结果就是,即使你胜利了,也是一场“惨胜”。
提供替代方案和结果
假设你拿出了足够的证据,对方也接受了你的看法。团队内的其他人也没有提出异议。
但是如果你没有给出替代的方案,人们依然不会完全接受你的意见。假设有一个人向你走过来说:“我做了很多研究,发现你的代码写的太乱。”然后转身走开,你会怎么想?因此,你需要在提出问题之后,给出相应的解决方案。
除了替代方案之外,你还要想对方证明你所提出的方案能够产生更好的结果。例如,你可以在团队中找一个人(另外一个团队的人更好),让他比较新旧两种代码编写方式,看看哪个更容易理解。
谦虚和礼节
你收集了证据、提出了问题、给出了替代方案。这样依然不够。
一定要注意自己的态度,不要让人觉得你的态度是“我的方式是正确的,你的方式是错误的”。
不要变现的好像你更优秀、更有经验,即使事实的确如此。你们两个之间的对话方式,应该是探讨一个问题的两个平等的同事。
总结
在文章的开头,我谈到了这个问题,但是我还是想要重申一下。“同事代码写的乱,我该怎么办?”这个问题看似是一个技术问题,实际上是一个人际关系问题。
取决于你的做法,你可以和平的解决这个问题。或者,你也可以逼迫他采用你的做法。你可以给他发一封愤怒的邮件,撤销他提交的代码,在code review的时候把他的代码批的体无完肤,事事和他作对。但是这样做,不仅会激怒他,还会影响团队中每一个人的进度。
简单说,如果没有良好的沟通,你无法改变对方的习惯。因此,无论你打算走哪条路,你都要明白,这是一个需要你进行说服对方的人际关系问题,而不仅仅是一个技术问题。

11 个回复

倒序浏览
啊哈哈哈
回复 使用道具 举报
打一顿吧
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
你们好棒,好厉害
回复 使用道具 举报
回复 使用道具 举报
好的非常完美
回复 使用道具 举报
加油哦
回复 使用道具 举报
回复 使用道具 举报
加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马