通过避免这 6 种时间浪费来提高您的生产力并在您的职业生涯中取得进步。

有效的时间管理是大多数成功的软件工程师都具备的技能。它将帮助您在职业生涯中快速进步,而不必在冲刺结束时长时间工作。 花椒壳-愿您平安健康

每个组织都试图通过自动化管道、增强型 IDE 和 DevOps 减少浪费并提高生产力。通过避免这 5 大时间浪费,领先一步,让您的一天更有效率。花椒壳-愿您平安健康

作为软件工程师的 6 大时间浪费

1. 添加太多功能

通过考虑所有“假设”,您有多少次使故事要求过于复杂?如果您正在开发的 API 可以设计为无缝集成到其他平台,会怎样?如果您的仪表板可以发送自动报告怎么办?

抵制冲动。不要过度设计它。您不应该在未来过于领先的功能上花费大量时间。而且,更多的代码意味着更多的错误和不必要的脚本会增加应用程序的膨胀。理解您的代码和添加新功能也将更加复杂。

为避免这种情况,请不断问自己您的代码是否正在解决特定的故事要求。确保您仔细考虑使用案例和边缘案例,但不要花费数周时间来研究本可以更快交付的功能。

如果您对添加可能解决极端用例的功能感到困惑,请在下一次 sprint 会议中提出。您将节省大量时间,并且您将确立自己的团队合作精

2. 一次又一次地编写相同的脚本

作为软件工程师,您应该遵循 DRY(不要重复自己)原则以提高工作效率。这可以通过两种方式完成:消除代码中的冗余或简化开发过程。花椒壳-愿您平安健康

让我们看看如何处理这两种情况。

  • 代码冗余:

设置服务器甚至虚拟环境涉及多次编写相同的脚本和操作。您将使用几乎相同的步骤和代码构建具有开发、测试、阶段和生产环境的 4 层开发架构。最重要的是,管理基础设施依赖关系变得越来越复杂。它不仅重复且乏味,而且手动操作也会让您容易受到人为错误的影响。

低代码平台具有这种开箱即用的功能,具有可重用的基于抽象的组件和可视化拖放界面。当然,您不会找到适用于每个场景的一键式解决方案,但您将拥有最基本的、可重复的解决方案。自动化管道将帮助您根据需要为尽可能多的环境构建、复制和扩展代码。

  • 流程中的冗余:

清楚地概述您在开发过程中执行的步骤数量,并考虑如何减少它们。自动化是您的朋友。

此外,请留意您最终执行两次以上的流程。您可以从每次想要执行该任务时触发的自动序列中受益。

但是,在继续自动化之前,请始终注意时间权衡。在自动化任何事情之前要问自己的一些问题包括:与执行任务相比,如果我将其自动化,我会节省更多时间吗?至少在接下来的几周内,我会定期这样做吗?

如果答案是肯定的,请自动执行。减少时间浪费(和头痛)。

3. 从头开始​​构建系统

如果开发人员每次构建 Web 应用程序时都必须对 JDBC 数据库连接进行自定义编码,那么完成单个项目将需要很长时间。

开发可维护且安全的软件应该是您的首要任务。然而,这并不意味着从头开始构建系统。您不需要重新发明轮子并重建已经存在的功能。

公司需要高效的工作,而您从头开始构建系统的时间在大多数情况下是多余的。因此,相反,通过使用框架构建预构建的功能,并根据客户的需求对其进行自定义。

此外,检查预先存在的公司代码数据库。如果该工具的现有功能与分配给您的功能重叠,则最好检查函数调用是否可以为您提供所需的数据,或者是否可以集成。

但是,在处理财务或健康记录等机密数据时,从头开始构建功能以增强安全性是有意义的。但在大多数情况下,框架、知名的开源库或付费插件都能完美地完成这项工作。

4. 糟糕的测试策略

在自动化和手动测试之间进行选择时,您必须注意一个微妙的平衡。因此,让我们了解作为软件工程师的您如何使用它来制定有效的测试策略。

编写一个小的手动测试来确保您添加的新功能正常工作很容。但是当你扩展时,运行这些手动测试需要更多的时间,尤其是当你试图找到那个不断破坏你的代码的讨厌的错误时。

如果您的应用程序或网站有许多组件,那么您没有错误地运行特定测试的可能性也会增加。自动化测试甚至更有效地运行测试的系统有助于避免这种情况。

您需要花更多时间来设置自动化测试。但是,一旦它们被编写好,只要您进行任何代码更改,它们就可以被重用和触发。因此,您不必因为添加了新功能而手动重新测试以前的功能。

相反,选择正确的任务进行自动化同样重要。不幸的是,这是 QA 自动化测试中最常见的错误之一。很容易陷入过度自动化的陷阱并最终逐个脚本地复制测试。这是一个主要的时间浪费,因为弄清楚为什么您的复杂自动化不起作用仍然是一项非常手动的任务——这正是您想要避免的事情。

不要让它变得比它必须的更复杂。相反,应专注于简单的测试用例,而忽略具有许多依赖项的不频繁或复杂的任务。在开始编写任何单元测试用例之前优化和计划您的测试策略,您将节省大量时间。花椒壳-愿您平安健康

5. 不正确的代码优化

这是一种相当常见的时间浪费,通常很难从一开始就发现。您花费大量时间为不具有优先级或什至可能不需要的用例优化代码。

您唯一的重点应该是让功能发挥作用,然后再考虑优化。但是,不要设定不切实际的基准。优化决策通常基于案例。

如果性能优化只需要几分钟,那就去做吧。但是,在大多数业务场景中,字节级优化通常对项目来说并不重要。有好不好?是的。但是,如果您需要花费数小时才能获得 1% 的性能增量,最好先与利益相关者进行讨论。

例如,假设您正在为内部团队开发网页。如果网站在 1 秒内成功加载,您实际上不需要在 0.5 秒内加载该网站。这不会显着改善业务运营。然而,如果它是一个电子商务商店,让它在一秒内而不是两秒内加载将是一个功能要求。

解决这种时间浪费的最佳方法是定期从用户那里获得反馈。您应该根据他们的极端用例进行优化,而不是构建自己的用例。

6. 无效沟通

无效的沟通是软件开发中许多时间浪费的直接原因,有时是间接原因,其中一些已在此列表中提到。

软件开发有许多活动部分——各个团队成员致力于不同的产品功能,然后成为 QA 团队的输入,最后成为最终用户的产品。

沟通至关重要,尤其是在开发和过渡阶段。假设开发人员误解了故事的业务需求的情况。这种沟通差距会使解决方案过于复杂,并导致技术错误并增加出现错误或返工的机会。

由于沟通是软件开发中最人性化的方面,因此无法完全消除这种时间浪费。然而,有了适当的项目管理工具和协作环境,它肯定可以减少。Trello 或 Microsoft Teams 等工具有助于减少摩擦。

在个人层面上,在开会或开发功能时,请始终考虑大局。学会倾听和有效协作。养成将会议讨论的内容写下来或发送摘要的习惯,以明确双方的期望。

阿苏,宜早不宜迟沟通。不要假设需求,并在可能的情况下,在处理整个项目之前展示一个小演示。

最后的想法

这里的关键是养成避免这些浪费时间的活动的习惯。短期生产力“提示和技巧”只能带您到此为止。但是良好的编码实践和自我意识将帮助您提高效率。注意你的时间花在什么地方,试着减少它,你就可以成为一名成功的软件工程师了!花椒壳-愿您平安健康