给 Web 开发者 3 个更有效地工作的建议

472 阅读9分钟

译者:十年踪迹

原文链接

working in a development team

开发者倾向于停留在他们所了解和喜欢的领域,做那些让他们舒适和感觉良好的事。这在一个团队环境中可能会成为问题。回顾我的职业生涯,我在这方面犯了一些错误。

现在想一想你喜欢的框架:是否项目里添加了它就万事大吉?

想一想你喜欢的那些设计模式:将它堆砌在历史遗留代码上有帮助吗?

那个差到你不堪卒读的组件怎样?避免用它或者在它之上包一层有用吗?

带着这样的问题,我想要给你三个建议,让你在一个团队里更有效地工作。这是给在一个团队中工作的 Web 开发者的建议。我将借鉴过去的经验和过程中得到的教训。

态度很重要

你对于某个工具的倾向体现出你对团队工作的重视。你心里的真实想法在你处理代码问题的时候会体现出来。

在以往的角色中,我曾经让自己一个人独自长时间写码,而不配合另一个人的工作。这样的态度阻碍你在一个团队中成功。

我将从探索一个星球大战世界中我最喜欢的角色开始写——因为我相信他能在这方面提供给我们一点智慧。

克诺比这个人

欧比旺(欧比旺·克诺比,星球大战小说和电影中的一位绝地大师,阿纳金和卢克·天行者父子的师父——译者注)是星球大战世界里我最喜欢的角色。作为克隆人战争期间的一位将军,他是绝地武士会的成员,也被西斯(黑暗原力的使用者——译者注)视为威胁。欧比旺是光明的典范,因为几个原因:

  • 他讨厌飞行,却不妨碍他成为共和国舰队最好的飞行员之一。
  • 他讨厌爆破,却不妨碍他成为一名神枪手。
  • 他讨厌西斯,却依然成为达斯·维德最好的老师。

我觉得这种讨厌与掌控的关系也体现在我们作为 web 工程师的职业生涯中。团队合作精神在你认为你擅长以及自我感觉良好的时候很难找到。走出你的舒适区才是你迎接挑战和获得成长的态度。

想法从哪里来

因此,第一点我想要从一个问题开始:_你是否经历过对代码解决方案的本能反应?_你的第一感是这些代码烂透了,但你也说不出原因?那种感觉是总觉得有些问题但是你又指不出具体问题在哪里?

在一个团队环境中,你的想法并不总是最好的。很重要的一点是要识别本能反应到底是源于你的大脑判断还是源于你的自负。

别人的想法并不意味着就是差的。一个建议是快速检查一遍然后指出你的本能反应源自哪里。这可能会开辟解决问题的新方法。通过心态开放和问对问题,你还可以学到一些新的东西。这才是真正站在巨人的肩膀上并且更彻底地解决问题。

当然,上面这是团队还有救的情况。你有可能面对的某些人没有时间或者并不想听你叨叨他们的代码。如果是这种情况,可能趁早换一个团队比较好——尤其是如果那个人是组织里很有影响力的人,比如主管或者经理。不论如何,这样的团队招了错误的人,它在成长和留住人才方面有问题。随着这个行业的成熟,我发现这种不靠谱团队的情况已经少之又少。

在一个新项目里,有无限的方法可以解决一个问题。构建一个 web 解决方案的魅力是你可以亲手实践(自己的想法)。开放的 web 是一个平台,其上任何激进的想法都能够生存——只要你从 server 发送的是标准的超文本消息。所以构建 web 解决方案适合于在一个团队环境里达成目标。

一个团队的工具和讨论常常为这个团队带来附加价值。关键要是要包容其他人的观点并将它们提升到一个新的高度。

stepping up to be a leader

人人都讨厌的工作

当我刚开始做网站构建工作时,我几乎不知道什么是 CSS。结果,我第一次作为 web 开发者的求职面试完全失败。深入 CSS,我讨厌奇葩的样式规则。由于我有很深的程序员背景,所以我对 CSS 有偏见。CSS对我来说像是一门外语,它有全局规则、没有变量以及没有封装。

然而,在那时,我决定认真对待 CSS。从那以后我走上一条精通 CSS 的路。_精湛的技艺始于花时间去耐心地、坚持不懈地学习。_这是你的技能达到新高度的途径。

在一个团队环境里,离开你的舒适区是必要的。例如,是否数据层有问题?好吧!可能是时候卷起袖子开始干了。设计失败的数据库问题能在团队里四处肆虐。如果你舒服地止步于前端,你就会错失这个捡起后端的好机会。

或者,在代码发布的分支上有合并问题?是的——也许是时候点亮你的代码管理技能点并亲自动手了。如果一个团队没有上线可用的软件,那么用户不会为它买单。这也许不是最温暖和舒适的工作,但这正是团队所需要的。

或者,让代码 review 成为第一优先如何?对代码解决方案评估和提供反馈很折磨人。然而,了解工程师同事们如何着手处理问题对自己超有好处。那些人人讨厌做的工作往往正是对团队最有价值的工作。

你能想到一项工具或者技能是你讨厌但同时也是你掌握的吗?这是一种与星球大战中类似的讨厌与掌控关系。最后,欧比旺在一次爆破射击中杀掉了葛里维斯将军。那么,别把目标设在仅仅只是为了完成工作,要坚持做得更好一些。

无私的程序员

我再说最后一点。有没有想过哪些人是你曾经工作过的最好队友?你觉得他们好,是因为他们为自己做的事还是他们为你做的事?假如说有一个糟糕的存储过程每一个人都讨厌,某个人花时间将它从数据库里去掉了并且添加了合适的单元测试。尽管要处理脏代码,这些人冲上去承担了他们职责之外的事,让情况变好了。持有和这些人一样的态度,你可以找到成长和创造价值的机会。生产可用的软件需要专业技能,然而一个优秀的工程师尽力为团队做到最好。

我曾经看到一个团队努力地希望每个成员很好地一起工作。然而那是个自我观念很重的团队,成员唯一能期望的只能是闷头工作少问问题。一个萝卜一个坑,那些掌握了各自舒适区的成员们占山为王。在这样的团队,你只能做一颗螺丝钉,涉及的技术面很窄。在那时,我曾经努力地寻找立足点,因为我关注那些我认为我擅长和感觉良好的部分。最后团队失败了,因为公司设置了不实际的期望并且缩减了预算。这让我相信这种环境对我们的职业发展有害。在这种团队,最终每个人都不是赢家。

我发现,最好的团队是那种每个人都关心其他人的团队。每个成员都可以有自己的声音并被平等地对待。当任何一个成员有不同意见,都能够尝试沟通并最终达成一致。在这样的团队环境中,有成长的机会。说得激进一点,在这样的团队,每个人都是 leader。简而言之,leader 是那些知难而上,乐于助人的成员。在那样的团队成为 leader 不需要一个 title 或者一顶乌纱帽。

领导力始于做人人都讨厌做的工作并掌握它。

领导力体现在当有人出现并对你说,“真高兴你把它搞定了。我是搞不定它的。”

领导力体现在包容团队成员的想法和讨论成果并推动它们更进一步。

领导力体现在真正关心团队成员。用充满激情的影响力让团队变得完美。

每当我想到无私的程序员,我真正觉得他们是 leader,他们是将舒适区放在次要位置的人。

结论

所以你要明白这三个简单的方法,它们让你在 web 团队里更有效工作,让你得到在团队里成长的机会。

当然,开放的心态是每个人成长的必要品质——有时,要让你自己做一些你之前从来没有做过的事情。就如我当年第一次开始学习 CSS,你可能最终会享受你现在讨厌的东西。

最好的态度是,“孩子,我不知道如何去做这件人人都讨厌做的事,但是让我来解决它吧。”这是一个领导力的完美例子——当团队里没人知道如何达成目标的时候站出来迎接挑战。

你呢?你是否在一个团队里有类似的经历?你有什么见解想要补充?你是否曾经离开你在团队里的舒适区去迎接一个新的挑战?