本文转载自公众号《读书芯》(ID:AI_Discovery)。成为一名开发人员很难,而成为一名高效的开发人员则更难。您必须忍受冗长的会议(耗尽您可以花在编写代码上的时间)、需要花费大量时间做出决策的管理模型以及模糊的验收标准……这是浪费时间,但我们几乎没有意识到最大的时间浪费之一是我们自己的习惯。这些习惯可以最大限度地减少浪费的时间并最大限度地提高工作产出。每天给自己设定一个具体而明确的目标。我经常发现自己在中午变得懒惰。我本来应该一分钟写很多行代码,但过了一会儿,我发现自己正在阅读摩托车评论。有一次,我不得不在一天内修复一个严重的故障,因为它影响了大量用户。那一天,我比以往任何时候都更有效率,原因很简单:我有一个特定的目标。我现在知道,当我不应该开始创建解决方案时,可能是因为我不知道我的目标是什么。当我有一个可以用一两行写下来的目标时,我的工作效率就会提高。这样做的原因之一是蔡加尼克效应,它认为人类是“寻求解脱的动物”。换句话说,我们讨厌开始某件事,也讨厌不完成它。明确标准后,您就会确切地知道下一步是什么。例如,当我要创建一项新功能时,我会写下一个简单的单行目标:更新持久性代码,使其使用AndroidXRoom数据库。重构特征X(或其中的一部分),使其使用MVVM模式。为UserJourneyX创建前两个UI屏幕”没有时间,就没有完成的动力,也没有进步。我总是想在创建MVP之前尽可能写得漂亮,然后具体需要做什么。漂亮,运行流畅的代码。我每天花几个小时在10行代码块上,只是因为它的行为方式不符合我的喜好。这种工作方式与我的意图完全相反。这不仅让我效率较低,但它也使我的代码充满了神秘的符号,没有解耦,并且更难测试。我意识到我所要做的就是交付一些工作产品-MVP(最小可行产品)。当然,你应该交付一个工作产品!但在工作中我可能忘记了我应该做一些有助于完成任务的事情。不多也做很多,恰到好处。特别是作为一名初级开发人员,我感到使用一些很棒的同事的一些新颖组件和库的压力。这不仅会让你想得太多,而且会影响你现在的任务,而且如果花太多时间在这上面,甚至会占用自我提升的冲刺时间,还可能会影响你以后的任务。那么你怎么知道什么时候停止工作呢?当一切顺利的时候。显然这里需要满足一些标准:代码框架是否正确?它能最大限度地减少故障吗?其他人可以理解发生了什么吗?是否涵盖所有用例?尽可能在单独的分支上工作它越复杂,就越有可能导致致命故障。这些致命故障可能只有在您将负责的工作合并到master分支进行彻底测试时才会出现。当我接到第一份重大开发任务时,我非常兴奋。该任务要求重构特征以使用MVVM,并用Kotlin语言编写。但是,我没有足够的经验知道如何正确测试我编写的代码。虽然代码还有很多错误,但我还是把代码发出来,并合并到主代码中。几天后,团队测试人员非常生气,所以我不得不在接下来的两周内修复很多错误。我阻碍了团队,因为我懒得正确测试自己的代码,而且因为我所有的更改都已合并,下一个版本可能会延迟。然后我意识到,如果我把独立的功能分支交给测试人员,我可以为自己和团队节省很多精力和时间。只要有可能,在完全测试之前,将新代码保存在单独的分支上。这样,您可以更快地修复错误并将致命错误与产品构建隔离开来。永远不要承担模棱两可的任务人们在开始一项新任务时都会有惰性。我们都有过许多相似的经历。当我们准备起床时,我们的身体聚集在一起并且没有反应。当我们想学习新东西时,我们不会上课。当你想为自己设定饮食时,你会纠结于吃什么、多久吃一次等细节。在软件开发中,开始创建新功能时的惰性或阻力通常以多种方式表现出来:必须浏览冗长的SDK文档,准确了解业务需求,甚至试图找出所需的依赖项。不知道大家有没有同感,作为一个开发者,我想做的就是开发。我不想成为产品负责人,检查UI副本或元素,一遍又一遍地编写验收标准,一直向后端团队询问有关API的问题……我只想做开发。所以我只会承担满足以下条件的任务:所有的依赖都安排好并移交了吗?用户界面是否最终确定并获得批准?我可以方便地联系到该功能的负责人吗?验收标准是否明确?如果我喝醉了看这些标准,我能看懂吗?如果需要,我可以使用带有许可证的工具或SDK吗?希望这能使您的工作效率大大提高!
