程序员为了少加班想了这几招

news2024/11/19 17:50:27

📣📣📣📣📣📣📣

🎍大家好,我是慕枫
🎍前阿里巴巴高级工程师,InfoQ签约作者、阿里云专家博主,一直致力于用大白话讲解技术知识
🎍在这里和大家分享一线互联网大厂面试经验、技术人成长路线以及Java技术、分布式、高并发、架构设计方面的经验总结
🎍感恩遇见,希望我们都能成为更好的自己
📣📣📣📣📣📣📣

目录

谁偷走了程序员的时间

源源不断的会议

业务需求KO会议

技术评审会议

测试评审会议

故障复盘会议

其他会议

开发

碎片化的杂事

如何避免不必要的加班

不必要的会议能不参加就不参加

避免表面一致

琐碎事情统一处理

加强代码质量管理

总结


天天开会,我还有时间写代码吗?

接口自测过没,怎么联调还有这么多问题?

需求怎么又变了,PD到底有没有个准信?

又是版本发布倒排,需求这么多能做的完吗?

以上各种场景大家在日常的工作中是不是经常碰到,今天慕枫就和大家聊一个非常有意思的话题,程序员为什么总是要加班,到底谁偷走了程序员的时间,我们应该怎么做才能避免不必要的加班。

谁偷走了程序员的时间

要想少加班就要搞清楚是什么因素导致了程序员加班才能完成工作,也就是说我们得先弄明白程序员的时间到底被谁偷走了。我们先分析下程序员每天的工作主要包含了哪些内容,因为只有搞清楚程序员时间都用在哪里了,我们才能对症下药制定相应的优化计划,避免时间黑洞浪费精力资源在一些不重要的事情上,把时间和精力更多投入到重要的事情上以及需要完成的任务上。

有的同学可能会说,程序员嘛,工作不就是码代码嘛。如果真的只是这样,我想大家真的要烧高香了,实际上程序员的日常工作远远不至于写代码一个事情,甚至有的时候一天代码没写几行都在开会。

慕枫将程序员的工作主要划分到以下三大块内容中,接下来我们来具体分析下如何在这些繁杂的事项中把本该属于程序员编码、思考设计的时间给抢回来。

 

源源不断的会议

业务需求KO会议

在阿里,一般当业务方需求过来之后,PD或者产品经理会组织会议对技术同学进行产品需求进行KO或者澄清。在会议中PD或者产品经理需要讲清楚为什么要做这些需求、需求的内容是什么以及想要达到的业务效果,同时接受来自技术同学汹涌而来的挑战,一般这种会议打底要1到两个小时,有的时候讨论激烈的话可能都不止,甚至可能需要多次会议来回讨论才能确定需求。

技术评审会议

需求确认过之后,技术同学就需要进行对应的方案设计,我们想清楚如何做这个需求,同时输出相应的设计文档,设计文档中主要包含实现逻辑、修改点、时间计划、灰度策略等等,设计方案完成之后组内会先过下方案,把关下质量。同时负责这次整体需求的技术PM需要组织业务全链路节点的技术同学来对焦各自的技术方案,看看有没有什么遗漏之处,需不需要上下游业务节点的支撑,这个会议基本上1到两个小时。

测试评审会议

技术方案确认之后,测试同学就需要根据PRD文档以及设计方案来编写测试用例,也会组织会议找技术同学来看看测试方案合不合理,测试用例还有没有遗漏的地方。这个会议基本上1到两个小时。

故障复盘会议

这个会议大概是程序员最不想参加的会议了,在互联网公司出现故障是需要进行复盘的,一旦要开故障复盘会议就意味着出现了线上故障。程序员最担心的就是出现线上故障,如果搞出来一个P0级别的,基本一年就白干了,提前预定本财年3.25。

其他会议

还有一些其他会议,比如项目KO会议、平台对接会议、方案讨论会议、交互评审会议等等。

开发

技术同学开发编写代码以及功能自测,完了之后再和前端同学或者上下游业务的同学进行联调,这个过程也是比较耗时间的。因为在联调的时候总是会遇到这样或者那样的问题,比如环境问题、数据问题、代码Bug等等。其中最主要的就是代码Bug问题,因为有的技术同学可能由于时间关系根本没来得及自测就和大家进行联调,直接把联调当作自己的单元测试和功能自测了,所以这种情况下基本都是一边联调一边修改的状态。另外在联调的时候可能也会发现一些设计上对不齐的地方,这个时候也需要进行修改,同样需要耗费时间。

碎片化的杂事

杂事就很多了,比如别的团队的技术同学来向你咨询业务问题,你得花费时间向别人解答。小组内每个同学都需要进行技术分享,那你就得准备PPT,还得认真准备,因为我们需要不断建立自己的技术影响力,如果讲的东西太水了,实际上浪费自己的时间也浪费别人的时间。功能发布上线之前,TL以及组内的同学需要review你的代码,这也会耗费一个小时左右的时间。线上如果出现报警,我们就需要排查定位问题修复bug。类似这种碎片化的杂事充斥在我们的工作中。

如何避免不必要的加班

我们分析完了每天的时间都花在哪里之后,就可以进行针对性的进行时间压缩。

不必要的会议能不参加就不参加

这里举个栗子,在需求澄清会议中,一般会对一批需求进行澄清,这些需求很多时候只有一小部分和我们相关,所以在会议上我们对和我们相关的需求进行重点讨论和理解,在确认完需求内容之后就可以撤了,其他和自己不相关的需求没有必要再耗时间在会议上,这样可以大大压缩参加会议的时间。

避免表面一致

在整个研发活动中我们需要避免表面一致情况的发生,什么意思呢?就是我们需要真正把需求弄明白想清楚再动手写代码,否则在没搞清楚需求情况下写代码,很容易出现做出来的功能和产品要求的出现偏差的情况,那么在验收的时候就容易不通过,然后就是互相扯皮,研发说产品当时没有讲清楚,产品说是研发没有理解透需求。最后就是返工重新修改,白白浪费了时间。所以我们不如在需求确认阶段,多花点时间和产品经理进行需求的深入沟通,把需求吃透了确保没有理解上的偏差,避免表面一致,这样可以帮助我们节约很多时间。

琐碎事情统一处理

我们所负责的业务不可避免的会有业务合作方来咨询你如何用平台以及对接的事情,比如平台如何使用,有哪些开放能力等等。来咨询的同学一般呈现散点状,也就是说不固定时间来咨询,有的时候你正在奋笔疾书写代码,但是别人过来咨询就会打断你的编码思路占用开发时间。所以这个时候你可以考虑专门下午四点到五点固定时间段拉个群来统一回复别人的问题,或者说如何对接的写一篇文档,有别人过来问的就先让文档,这就好比智能客服一样,这样可以帮助你挡掉70%左右的问题。不免这种业务答疑打乱你原本的开发工作。

加强代码质量管理

自己写的代码的时候要注重代码质量控制,这样在和别人联调的时候可以保证自己没问题节约一部分时间,另外上线后没有问题,更加节省了后续在向上定位排查解决问题以及复盘的时间,如果代码质量不好匆忙上线可能会浪费自己更多的时间。

 

总结

本文主要和大家分析了下程序员的时间都花费在哪些事项当中,我们怎么做才能避免不必要的加班。如果文中有适合大家使用的小技巧,可以在实际工作中试一试。我一直觉得工作是为了更好的生活,所以我们努力减少不必要的加班,多陪陪家人,多分给生活多一点时间,相信可以减少我们的精神内耗。


往期推荐

【Redis精进之路系列】缓存数据丢了,原来是Redis持久化没玩明白

【代码精进之路系列】如何优雅的消除系统重复代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112431.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个简单的Linux内核字符驱动程序编写

一、背景 为了了解设备驱动程序的框架,在此编写一个简单的字符驱动程序,以此来对驱动程序的框架进行一个简单的了解。 二、设备驱动程序 所谓设备驱动程序,其实就是计算机硬件与外部设备进行通信的接口。由于硬件设备各式各样,…

【Ctfer训练计划】——(四)

作者名:Demo不是emo 主页面链接:主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

【kafka】学习笔记(三)

学习笔记七、Kafka-Eagle 监控7.1 环境准备7.2 Eagle 安装7.3、修改配置文件7.4、添加环境变量7.5、启动Eagle八、Kafka-Kraft 模式8.1、Kafka-Kraft 集群部署8.2、初始化集群数据目录8.3、启动 kafka 集群8.4、测试8.5、集群启动脚本九、SpringBoot集成Kafka七、Kafka-Eagle 监…

RabbitMQ 第一天 基础 4 RabbitMQ 的工作模式 4.3 Routing 路由模式

RabbitMQ 【黑马程序员RabbitMQ全套教程,rabbitmq消息中间件到实战】 文章目录RabbitMQ第一天 基础4 RabbitMQ 的工作模式4.3 Routing 路由模式4.3.1 模式说明4.3.2 代码编写4.3.3 小结第一天 基础 4 RabbitMQ 的工作模式 4.3 Routing 路由模式 4.3.1 模式说明 …

React 学习笔记总结(四)

文章目录1. 创建组件流程(以及脚手架环境流程)2. 样式 的模块化3. 常用快捷生成4. 通用性 组件编码流程5. React脚手架 配置代理5.1 React 引入 ajax库5.2 第一种配置代理方式(package.json)5.3 第二种代理方式(setupProxy.js)6. React List列表效果实现7. React 消息订阅与发布…

“内卷之王”vivo:成败即将见分晓

文丨熔财经 作者|XL 12月22日,随着年底收官之作S16系列正式发布,vivo完成了自己的年度答卷。2022年,vivo总体风头正盛,尤其在第三季度一马当先稳居国内出货量榜首,市占比提升到20.0%,领先第二名3%。这是一…

elementUI中el-table每行异常高度原因排查,累死

理论上不单独设置高度的话,表格每一个应该是默认的高度才对,我说的没错吧, 但是请看实际情况: 这是默认情况下的高度为48 还有两外一个表格,我也没有设置高度,但是但是:这个高度竟然达到了71&…

深入理解蓝牙BLE之“无线通信的调制解调”

FSK: Frequency Shift Keying,频移键控,即一种允许根据数字调制信号改变载波频率而进行数据传输的数字调制技术,比如在BFSK中,二进制1和二进制0期间传输不同频率的载波信号。由于这种调制解调方式容易实现&#xff0c…

我国水产养殖行业现状及趋势分析:不断推进产业机械化高质量发展

水产养殖业主要是人类利用适宜水域养殖水产经济动植物的生产事业,是渔业的重要组成部分。按养殖水域,水产养殖可分为淡水养殖、海水养殖、浅海滩涂养殖;按养殖对象,可分为鱼类养殖、贝类养殖、虾类养殖、蟹类养殖、藻类栽培&#…

AndroidR兼容性适配指南

AndroidR Android 11 基于 Android 早期版本构建,增加了多种功能和更新,以保障用户安全并提高透明度和可控性。所有开发者都应查看隐私功能并测试他们的应用。具体影响可能会因每个应用的核心功能、目标平台和其他因素而异。 Android 11介绍 Android 1…

day 10 模拟和高精度

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 #include<bits/stdc.h> using namespace std; int n, na, nb, fa, fb;//f:得分 int a[205], b[205];void fun(int ta, int tb){if(ta 0 && tb 1) fb;if(ta 1 && tb 0) fa;if(ta 0 && tb …

学习记录-mybatis+vue+elementUi实现分页条件查询

因为前端并不难&#xff0c;这里前后端就一起实现。一共分为四个步骤 步骤一 ① SQL部分 分页条件查询其实就是在分页的基础上增加条件&#xff0c;这里有两个主要的函数需要去实现&#xff0c;一个是根据分页以及条件去查询数据&#xff0c;另一个是根据条件去统计数据。 明显…

结构体嵌套函数指针

这次来记录一下结构体嵌套函数指针 这个知识点想了2天终于搞懂了。 先看代码&#xff0c;试着理解一下&#xff0c;不理解再看我后面的解释。 解释&#xff1a; 首先&#xff0c;和平常创建一个结构体一样&#xff0c;唯独不同的就是里面的变量是一个函数指针&#xff0c;关…

Spring Bean作用域

目录 什么是作用域呢 ? 那什么又是Spring Bean的作用域呢 ? Spring框架默认Bean作用域是什么呢 ? Spring Bean的作用域都有哪些呢 ? 如何设置Bean作用域 什么是作用域呢 ? 在JavaSE中,作用域就是指一个变量可生效的范围. 就比如一个变量的作用域是方法的代码块的范围…

fpga实操训练(signal tap调试)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 编写软件的同学都知道&#xff0c;如果需要调试软件的话&#xff0c;除了要学会打印信息日志之外&#xff0c;另外一个很重要的方面&#xff0c;就…

http 库的服务端实现

前言 net/http 库的客户端实现(上) net/http 库的客户端实现(下) net/http 库的服务端实现 上两篇文章介绍了 http 客户端的实现&#xff0c;这篇文章看一下服务端的实现 服务端 使用 net/http 库可以快速搭建HTTP服务&#xff0c;HTTP服务端主要包含两部分&#xff1a; …

5G无线技术基础自学系列 | 5G网络切换问题分析

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 无线通信的最大特点在于其具有移动性&a…

提高搜狗PR最好的方法与搜狗PR权重在线查询

搜狗PR是什么? 搜狗PR值全称为搜狗PageRank(网页级别)&#xff0c;是搜狗用于用来标识网页的等级、重要性的一种方法&#xff0c;是搜狗用来衡量一个网站的好坏的重要标准之一。 搜狗在揉合了诸如Title标识和Keywords标识等所有其它因素之后&#xff0c;通过PageRank来…

react学习

1. React概述 1.1 什么是react&#xff1f; React 是一个用于构建用户界面的 JavaScript 库 用户界面:HTML页面(前端) React 主要用来写HTML页面&#xff0c;或构建Web应用如果从 MVC 的角度来看&#xff0c;React 仅仅是视图层(V)&#xff0c;也就是只负责视图的染&#xff0…

Day44——Dp专题

文章目录子序列问题27.最长递增子序列28、最长连续递增序列29、最长重复子数组30、最长公共子序列31、不相交的线32、最大子序和33、判断子序列34、不同的子序列35、两个字符串的删除操作36、编辑距离37、回文子串38、最长回文子序列动态规划总结篇背包问题系列股票系列子序列系…