软件工程师生产力:工作流程
多年来,我成功地将每天的编码时间从 8 小时缩短到 5 小时,并通过以下技巧保持了高效的工作效率。当然,我无法横向扩展,如果我工作更多,就无法交付更高质量的代码。
本文最初发表在我的博客上:https://coder.today/6-workflow-tips-for-a-software-engineer-productivity-ba35d9f7e267
生产力技巧是一系列面向编程人员的通用文章。这些技巧适用于任何环境、框架、语言或平台。
这个故事属于多流系列:
每小时刹车🦋
如果您是吸烟者,请跳过此步骤,因为您可能已经在吸烟了。
每小时几分钟的休息(散步)对我的健康有益,也提高了我的工作效率。如果办公室有休息区,有游戏或其他互动设施,就去那里,或者在办公室里走走。我就是个坏榜样🚭,我是办公室里最大的“被动吸烟者”,因为我经常在吸烟区休息。
如果您正在应用番茄工作法🍎,那么您已经做得很好了,只是我的计时器是 50 分钟而不是 20 分钟,至少对于我当前的工作流程而言是这样。
“你能拥有的最好的编程技能之一就是知道什么时候该离开一会儿。”——奥斯卡·戈德森
开发人员输入了很多内容,但是,我们需要多思考,少编写代码。
“The Zone” 是一种危险的瘾
每小时休息一次还有另一个好处,那就是它能让我们避免加班加点地“沉浸其中”,这很可能会损害代码。当你深入问题内部时,很难发现问题的根源。
我认为“区域”就是我们的自然环境。你会发现开发人员最常在那里写#happycode。
但有一个门槛🚸,你可能会“过度”关注问题/代码,结果你会在“真空”或“泡沫”中编码。当你走出泡沫时,你会意识到你忘记了一些东西,因为你的注意力集中在一个非常小的范围内:
-
“我忘了 X 模块中有这个功能,我刚刚写了一个新的”
-
“我忘了我应该和 X 谈谈这个任务”(边缘情况或实施细节)
-
“我跳过了单元测试,我明天再做,它们拖慢了我的速度”
-
“我使用了一些 X 平台不支持的东西,我忘了”
基本上,当您匆忙、时间紧迫或不注意时,您很容易犯下所有通常出现的错误。
大多数时候,“区域”会给我们“生产力错觉”💨。
我百分之百肯定你会写更多代码,但代码质量如何呢?要真正了解代码是否更好,你必须衡量整个代码生产生命周期中,编写原始迭代所花费的时间 + 修复代码所花费的时间 + 调试代码所花费的时间 + 错误的影响。在“区域加班”模式下,你的第一次迭代很快(“快速完成”),但后期阶段的持续时间会大幅增加。
当开发人员将大脑当成一堆堆🗒去理解一段代码(通常是用来复现 bug 的烂代码)时,也会出现“区域超时”的情况。有很多方法可以缓解这种情况,其中之一就是:先重构代码,然后使用合适的调试器。
多年来,我发现“区域加班”对企业有利的几种情况如下:
- 当整个项目都出现在你的脑海中时— — 更确切地说,当你是唯一的开发人员或者项目很小的时候。
- 当您正在制作原型或库的第一个版本时。
- 当您正在研究单一但复杂的算法时。
除了这些情况之外,我没有发现任何好的场景可以让开发人员花费超过 40-70 分钟的“时间”,而不会犯至少一个导致部分代码无效的错误。
PS:这只是一个概括,我相信肯定有例外。
分心
观察自己,回忆一下哪些因素导致了最多的干扰,或者寻找其中的规律。如果可以的话,尝试自己解决这些问题,或者在定期的团队回顾会议上讨论这些问题。
可能是服务器崩溃,可能是不停地查看社交媒体,也可能是咖啡机的噪音。干扰的形式多种多样。
说起来容易做起来难:不要登录社交网络📪。
如果您的同事继续打扰您,只需将其打印并粘贴到附近的墙上:
学会分离调试器——你的大脑😨
如果你在一个问题上卡了超过 5-15 分钟,那就赶紧逃吧。你就像身处迷宫,却浑然不知🤔。你会伤害到自己,甚至可能损害代码。浪费时间也会损害团队/产品/雇主的利益。
走开🏃🏿,多想或者根本不想,与他人交谈,分离调试器,然后稍后以更广阔的视角返回。
用你的大脑作为队列👩🏾💻
工作时如何处理传入的请求:
-
如果忙碌{将新任务添加到待办事项列表}
-
如果他们亲自联系您{建议他们下次使用聊天/电子邮件等异步通信系统}。
-
当前任务结束后重新考虑优先事项
为了使此方法有效,您需要将日常任务分成更小的部分,并每小时休息一次。
通知👋
良好的通知:可用于消除干扰,例如:您可以设置@mention 通知警报,而不必每 10 秒检查一次团队聊天。
不良通知:您收到了一份新闻通讯。
尽可能将通知静音。尽你所能节省更多时间。提示:智能手机有免打扰间隔,因此它们在夜间和工作时间会保持静音。
移动设备👩💻
移动办公,用笔记本电脑。当然,如果你已经在用笔记本电脑了,那就把这个删掉吧。
谢谢!🤝
请向我发送您的反馈,以便我改进以下帖子。