事情经过🙃

一两个月前,笔者小组内接到一个对接任务,任务的大致过程是这样的:别的部门希望将自己平台的一个功能集成到我们的平台上。当时由于小组里的成员手上都有活,没有人能腾出一些时间来做这个对接工作,于是那个部门就提出他们自己在我们的项目里写代码然后自己把功能集成进去,于是我们小组的tl也就答应了,不过由于这种工作模式必定需要我们自己小组有人来帮助他们,正好这个对接工作的内容刚好和笔者okr中的内容接近,所以理所当然笔者就参与进了这个奇怪的任务。

在起初的阶段,对方负责的开发人员(是个妹子,并且怀着孕)经常会来询问我一些代码上面的问题,我也会一一解答,不过其实在这过程中我也了解了其中的实现方式,很显然我并没有发现这种方式的问题,甚至连想都没想到实现这方面有什么不妥。于是基本上就是作为一个答疑的角色,他们有什么问题就帮助他们回答解决什么问题,却不去思考他们这样做到底对不对。

问题暴露🙂

今天,对方的开发人员说已经写完了相关的代码,需要我帮她进行review,并帮助她集成到我们的项目里来,由于对她们的实现的不敏感,直到今天对接的那一刻我还是没有发现问题的所在,并且一直按照着她们的设计、她们的代码来把她们的实现集成到我们自己的系统,由于设计上的问题,集成的进度非常慢,基本上一个下午没什么进度。

直到后面有一个同事提出来说这种方式存在一些问题,会导致系统在某些高峰时刻压力过大出现问题,随后我们组内对该集成方案进行了讨论,确实发现了问题的所在。

在发现问题的时候,作为该任务对参与者,作为自己平台的开发人员,却没有发现别人将要集成进来的实现代码的问题感到非常的难受。为什么我没有发现这个问题,为什么,我也不知道,加上之前断断续续在这个事情上花进去的时间,加上那个怀着大肚子的妹子经常爬着楼梯来找我问问题,很难受。

发现问题后,经过tl和别的部门的沟通,问题得以传播,解决方案才得以更换。这也就说明了之前在这个任务上所付出的精力好多都是瞎忙活。我是,那妹子更是。

反思😶

今天在遇到这件事后,在下班的路上想了很多,发现这样的事情真的很糟糕,希望能写出来总结一下这里面可以吸取的教训。希望下次不要在遇到这种事。也想到了也许这样的教训能帮助其他同行,所以写下这篇笔记,作为一个开发者,也许大家遇不到像我这样的对接情况,又或者大家都有一颗敏感的心能在这种情况下及时发现问题,不像我这样到了问题最后这才暴露,那是最好的。

作为一个项目的参与者,别人在自己的项目里写代码,自己却不去审视他们在项目中所做的这些行为或者实现是否合适。这一点确实存在能力的欠缺。还有一方面就是,tl作为一个团队的领导,可能在意的是更加广义的层面的东西,其中的细节并不会考虑的非常细致,以至于难免会漏掉一些关键的影响项目结果的东西,所以作为一个跟项目代码打交道的开发者,更应该去在意这些细节东西,帮助tl们去发现他们可能会遗漏掉的一些东西,从而及时发现隐藏的一些问题。笔者也认为这也是作为一个和代码深度打交道,和项目健康直接相关的开发者应该做的事情:“帮助那些在更高层次上做事的人审视那些影响结果的细节东西,并及时暴露问题,要有敏感的嗅觉”。在项目改动的过程中要时刻想到改动对于项目的影响,更不能别人说啥就做啥,想到啥就做啥,多留个心。