有时我看到了一些我可以改进但与我当前的团队项目无关的代码或项目的一部分。
那些时候我有冲突,因为尽管想提供帮助,但许多团队缺乏足够的人,做额外的工作似乎是背叛。显然,如果您将精力集中在他们的任务上,任何经理都会感激不尽
在这些情况下你会怎么做?
有时我看到了一些我可以改进但与我当前的团队项目无关的代码或项目的一部分。
那些时候我有冲突,因为尽管想提供帮助,但许多团队缺乏足够的人,做额外的工作似乎是背叛。显然,如果您将精力集中在他们的任务上,任何经理都会感激不尽
在这些情况下你会怎么做?
在这种情况下,我有两个指导原则:
我来这里是为了做我老板想要的。如果是扫地,我要么做,要么找另一份工作,但只要我在这里,这就是我要做的。
如果老板做了一个错误的决定,而我更了解并告诉他,他还是决定了,这是老板的特权。如果我不告诉他,那是我的错。
除非有压倒一切的情况,否则如果代码超出我的任务范围,我会告诉我的老板代码可以改进,并让他知道这对他在现实世界中意味着什么,并询问他是否想要我做或不做。
是的,有时当我不只是这样做时,它确实会咬我,但他付钱让我做 X,如果我在修补 Y,那么我就没有做我得到报酬的事情。当它真的回来咬我(我们)时,他只需要付钱给我修理它!
我过去曾在一家小公司工作,如果我看到一些我知道会影响我或其他人的东西,我通常会在当时和那里修复它,如果我能在短时间内完成而不破坏任何东西的话。
你知道我在说什么问题。如果我现在不花 10 分钟来修复它,那么以后会花费我 30 分钟(一遍又一遍)。
否则,它会在白板上和其他事情一起做(总是满的),最终有人解决了它。
我认为您声明的关键部分是:
我可以改进但与我当前的团队项目无关
这听起来很苛刻,但它是基于经验的,应该以开放的心态阅读——远离它。随着您获得更多开发经验,您学到的一件事是,您要保持在范围内,不要为了解决未计划好的事情而跳水。以下是几个原因:
当有人在规划项目时,他们正在处理一组已知的问题。如果您随机决定“修复”您正在更改已知集合的事物,就像您使用地图导航并且有人正在更改您身上的地图一样
你可能认为你的修复对产品有好处,但它引入了额外的复杂性,比如谁来测试你的修复?
无论您认为自己有多好,您都冒着在应用程序中引入另一个错误或意外副作用的风险
您如何将您的更改传达给可能在该领域工作的其他团队成员?
你怎么知道你的改变的范围,你怎么知道你没有突然改变其他地方的一段代码的上下文?
你有好意,但如果你开始做这样的事情,你可能会被视为牛仔,其他人很快就会不喜欢你。
这是你必须学习的技能——知道什么时候不要碰东西。你会看到丑陋的代码——不要碰!不要仅仅因为你认为它可以做得更好而重新编码。
我希望这有帮助 :)
你要么在别人家时清理它,要么绕过他们的烂摊子。这两种选择都会引起麻烦。选择哪个完全取决于您和您的情况。