2个最重要的非技术性的软件开发技能


软件开发是一项需要独特技能的专业。然而,在我的职业生涯中,我开始欣赏优秀开发人员的两个重要特征,这些特征根本不是软件技术专业所特有的。
我发现这些特征对我的工作非常有帮助,而且这两个特征都涉及到我不得不努力改进的习惯。

1.注重细节
为了获得编译的软件程序,必须要做的事情很多。这就是为什么对细节的关注在很多方面都非常重要,而且它通常是新开发人员学习的第一批技能之一。
在我的职业生涯早期,我经常过早宣布工作完成。我记得有几次,在让我的团队负责人知道我完成了一项功能后,他们会对其进行审核并立即发现问题。即使代码运行得很好,我的拉取请求仍会充满评论 - 可能是关于风格不一致或我忽略的优秀代码的其他特性。像这样的情况往往是由于对细节的关注不够。
软件很复杂,其建模任务的业务逻辑也是如此。把事情做对很难。这需要大量的纪律和仔细的审查。
我使用的一些策略帮助我开发了高质量的代码,同时确保对细节的强烈关注包括:

  • 测试 - 确保代码适用于完整输入域的一种方法是测试它。通常,这意味着单元测试,甚至可能编写测试驱动的代码。有时它意味着更广泛的测试。例如,我真的很喜欢触摸测试数据库或其他依赖项的测试。它们让我相信我的代码是正确和健壮的。
  • 自我代码审核 - 第一个审核我的代码的人是我 - 不止一次。我通常只为自己打开拉取请求。我确保所有的变化都有意义。然后我确保我的代码在风格上与现有代码保持一致。你总是有一些预算可以抵消趋势,但并不多。
  • 功能审查 - 我总是确保审查我正在处理的故事或功能,以确保我的代码满足所有要求和验收标准。很容易迷失在实施中,错过森林的树木。有几次我认为自己已经完成了,只是意识到我还没有解决过这个故事的另一个需求。
  • 记笔记 - 我尝试记录我在处理任何代码时所做的决定,以及它们的基本原理。现在很容易做出决定,只有在有人问你为什么以你的方式实现某些事情时才忘记它。

2.耐心
大多数软件项目需要很长时间才能正确编写。
有些人将软件开发与园艺比较。随着花园的成长,控制花园可能很困难。有时候,你能做的最好的事情就是努力保持并保持良好的整洁。以同样的方式,编写软件可能是一个缓慢而乏味的过程,并且在此过程中保持耐心至关重要。
在开发软件时,最好的解决方案通常不是第一个想到的解决方案,也不一定是最容易实现的解决方案。到达最佳解决方案(或有时只是任何解决方案)可能很困难,这通常会导致沮丧。
有耐心并积极地看待挫折很重要。这样做通常可以实现最大程度的学习,并且它将最好的开发人员与其他开发人员区分开来。有耐心也有助于防止你感到不知所措。
我不知道我是否有任何有用的技巧来培养耐心。相反,我认为接受编写软件会令人沮丧并且将会令人沮丧是很重要的。这就是你如何接受让你成为更好的开发者的挫败感。
软件是一个拥有各种专业的巨大领域。要成为一个专家需要付出巨大的努力。接受缓慢的增量增长非常重要,只要有耐心,就会加入专业知识。