复杂的代码库。准骨规格。时间紧迫。
如果这些听起来很熟悉,那么您并不孤单。尽管软件开发是美国增长最快的软件之一,但它却是一个很难工作的领域。开发人员经常会疲惫不堪。一项调查显示,科技工作者的倦怠率接近60%。
在这篇文章中,我们将研究六个可能导致您精疲力尽的重要原因,以及如何使您的工作更轻松一些。
管理多个项目和期望
开发人员经常同时处理 多个项目和任务。有时似乎每个人都需要您的时间,甚至其他开发人员也是如此。了解时间和地点的分配方式对于按时完成任务和避免紧急情况至关重要。
不幸的是,估算工作量是开发人员要学习的最难的技能之一。项目通常看起来很简单,但是在开发过程中会分崩离析。快速修复可能会变成漫长的夜晚。诸如设计问题,与其他系统集成,繁文tape节和意外错误之类的无数变量可能会阻碍进度。
同时,经理和利益相关者希望尽快交付成果。移动得太慢,您将被推后推。移动得太快,您可能会过度劳累,精疲力竭并牺牲品质。学会妥协很重要,但是需要您对自己诚实并意识到自己的能力。
你能做什么?
首先跟踪您花费在任务上的时间。使用工具,如Toggl,Clockify,或Kimai,和你的下一个Sprint回顾期间审查。一旦了解了时间的流逝,就可以了解可以削减或委托他人执行的任务。
如果工作范围对于当前迭代而言似乎太大,或者威胁到一个艰巨的截止日期,则将不必要的更改推送到下一个Sprint。对于最低限度可行的产品(MVP)尤其如此,因为漫长的开发周期可能会使最终产品面临风险。通过实践,您将能够更有效地管理项目和任务。
没有正确的资源或要求
开发人员需要资源,但是不幸的是,我们常常得不到所需的东西。系统,IDE,对环境的访问,规范文档,共享的知识库,一个体面的工作站-如果没有这些,您甚至会在编写一行代码之前陷入困境。
规格和要求特别重要,经常会丢失。没有要求地编写代码就像在没有蓝图的情况下盖房子一样,几乎总是导致工作量的浪费和技术负担。只要每个人都坚持要求,需求就可以为每个相关人员提供明确的方向并建立共识。
你能做什么?
与您的团队联系,获取对您当前工作或总体职位至关重要的任何资源。向您的团队负责人发送书面请求(电子邮件,Slack等),并安排提醒,如果需要很长时间才能与您联系,请及时跟进。如果仍然没有获得所需的资源,请询问需要该资源的功能是否确实必要,或者是否可以等到下一次迭代。并且在站立时请务必提及您的阻滞剂。让您的团队了解所有问题。
当涉及到需求时,请花费额外的时间进行适当的审查。如果没有记录在案的项目要求,请坚持要求!与项目所有者和主要利益相关者进行面谈,以了解项目的目的。除非您对工作有完整的了解,否则请不要执行任务。
了解复杂系统
一个组织的代码库可以由数十个或数百个不同的开发人员进行数十年的组合工作,每个开发人员都会带来其编码风格,决策和注释级别(或缺少注释)。您可能会继承令人困惑或彻头彻尾难以理解的代码,并且需要花费大量时间来理解和分解。希望您的代码受源代码控制,这也许是我们行业在过去十年中在了解代码库的历史和基本原理方面取得的最大进步。如果不是这样,您的困惑将会被放大。
即使对代码有很好的了解,使用第三方产品通常也意味着学习全新的API。商业产品通过掩盖其内部工作原理而使您的工作更具挑战性,这使调试意外行为变得更加困难。
你能做什么?
如果这是一个新项目,请确保您熟悉团队的编码实践和标准。如果您被某个特定的模块所困扰,请留出一些无干扰的时间逐步解决它,并写下出现的任何无法回答的问题。如果可能,请与更熟悉代码库的团队成员(最好是原始开发人员或维护人员)配对。对于第三方产品,请毫不犹豫地使用文档,常见问题解答,客户支持,聊天室和社区论坛。当其他所有方法都失败时,请使用Google(或DuckDuckGo)!
跟上技术发展
变化是软件中唯一的常数。无论您处于何种级别,总会有一些新工具,编程语言和优秀实践可以引起您的注意。即使只是维护代码,也意味着掌握产品更新和安全公告的顶部。
当然,没有人可以在所有方面都是专家,但是希望开发人员知道哪些工具适合于哪些任务。开发人员至少需要对多种技术和工具的粗略了解,才能更好地评估不同的解决方案,并避免为工作选择错误的工具。您需要了解的新技能和技术数量可能是巨大的。
你能做什么?
通过不断学习新技术和实践来保持技术比赛的领先地位。如果可以的话,安排您不在当前项目上工作的“发现”日,而要花时间研究和学习新技术。学习新服务时,请利用免费试用版和教育材料。考虑为开源项目做出贡献,以在工作之余练习您的技能。并永远记住,新事物并不总是答案-在这里查看项目时不要分心。为任务选择合适的工具,这些工具可能会或可能不会很闪亮。
平衡通讯和中断
开发人员,团队负责人和其他部门之间的持续沟通对于使每个人都在同一页面上至关重要。但是,过多的交流会对生产率产生不利影响。开发人员已经将其工作时间的21%花费在通信工具上,使公司每年每人花费近3万美元。所有这些中断都会导致上下文切换,这使您更加难以专注于工作。据估计,中断后最多需要20分钟才能恢复工作。
为什么中断对开发人员来说是灾难性的。©2018猴子用户。版权所有。
你能做什么?
进行编码时,请消除干扰并全神贯注于任务。如果您发现自己经常遇到打扰,请在“聚焦模式”下向同事发出信号。在日历上安排“无会议”或“无法触摸”的日子,只是为了进行编码,戴上耳机并更改通讯工具中的状态。一旦集中精力,就必须认真思考问题,从不同角度评估问题,研究多种选择,并提前计划实施策略。记录您的决策(以及您的代码),并准备对其进行辩护。
感觉像你不属于
尽管他们具有受过教育,专业知识和经验,但仍有多达58%的科技工作者患有冒名顶替综合症。当开发人员面临的任务会提高他们的能力或挑战他们的自信心时,他或她可能会质疑他们完成这项工作的能力。这可能会导致负面反馈循环,最终导致开发人员脱离工作,甚至辞职。
对于人数不足的群体,不归属尤其困难。在美国,多达80%的开发人员是男性,58%是白人,而且不幸的是,年龄歧视仍然很普遍。这些有意或无意的偏见会阻碍熟练的开发人员,并阻止新的开发人员。
你能做什么?
不要孤立自己!与开发社区互动:与其他开发人员建立联系,跟随行业领导者并参加活动。借此机会分享您的知识,合作和学习新知识。请记住,每个人有时都会有这种感觉。
拥抱自己的优势
您可以做的最重要的事情就是诚实并信任自己。克服对失败的恐惧,摆脱困境。您尝试新事物的次数越多,您将越能确定自己的优势以及可以改进的地方,从而建立信心。相信自己会做出正确的决定,但也不要害怕寻求帮助。作为一名软件开发人员,很难,但是如果拥有正确的态度和努力,这将是一次非常有意义的体验。