写点什么

按时上下班的程序员,做出来的东西没有“弹性” | DIVE 基础软件大会专访

  • 2021-11-26
  • 本文字数:4600 字

    阅读完需:约 15 分钟

按时上下班的程序员,做出来的东西没有“弹性” | DIVE 基础软件大会专访

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

编辑|辛晓亮

采访嘉宾|刘新铭

 

开发效率跟每个开发者和开发团队息息相关,高效率意味着可以在更快的时间内更好的完成更多的内容。但在互联网行业繁荣发展的同时不少企业还在使用“拼工时”的做法,加班、996、内卷等问题也是持续困扰多数开发者,似乎提高效率是一个很困难的事情。

 

在鉴释科技联合创始人兼首席架构师刘新铭(英文名 Shin)看来,关于如何提升研发效率的问题,要讨论的其实就是态度和时间管理。11 月 17 日,Shin 现身 InfoQ 大咖说,妙语连珠,结合自己的职业经历,给出了很多关于提升开发效率、做好时间管理等方面的思考和建议。

 

此外,在明年 3 月 25 日,Shin 还会在 DIVE 全球基础软件大会上做关于编译器的硬核技术分享,感兴趣的朋友不要错过。

 

以下内容节选自当天的分享,InfoQ 做了不改变原意的编辑:

工作其实是在投资自己

 

InfoQ:首先请您跟大家做一下自我介绍,包括职业经历,目前在做的事情等等。

 

Shin:我入行是 1984 年。从 84 年开始的 10 年时间,我都在做编译器,从最底层的开发人员做到惠普的整个工具链(Tool Chain)的负责人,负责整个工具链,包括了编译器、debugger 和性能分析器等,给惠普服务器、安腾服务器做的工具链。之后,我去做了两年操作系统,主要还是管理的工作,负责惠普分布性存储的内核部分,也是最难的部分。我们的主要工作目标是性能调优,把所有性能方面存在的大大小小的问题修复好。接下来还搞了三年的物联网,我在英特尔实验室做首席科学家,(担任)物联网实验室主任,在北京跟北京市政府合作做了几个物联网端到端的解决方案。后来,我就去了国外,在美国一家华人公司待过两年,帮他们做数字化转型,因为在那之前,该公司的软件都是用 Java 写的,我们把它变成更适合在现代的云端架构上面运行,所以这也是为什么现在在鉴释有关云方面的技术由我负责。

 

InfoQ:在您这么长的职业生涯中,遇到的加班情况多吗,您是怎么看待加班这种情况的?

 

Shin:我从入行到现在,平均一周工作时间不会少于 60 个小时,这算加班吗?以美国加州法律而言,这不算加班。所有的专业软件开发人员或者职业经理人,在他们的劳工法里是归类为“豁免”的,不需要打卡。所有的工作是根据给你的内容来定,你的任务就是把它完成,花多少时间是你个人的事情,与公司无关,不会有人强迫你一周必须工作多少个小时,而是自己去判断应该花多少时间完成工作内容。

 

所以在美国,对职业开发人员来说,不管软硬件开发,加班这个词是不存在的。这里可能有人会说,那你一周工作 60 个小时不是吃亏了吗。其实你工作有一半是为公司工作,一半是为自己工作,永远要注意个人与公司之间的平衡。

 

这里提到的为自己工作就是为自己职业生涯做投资。我做开发工作的时间多,又会去认真的思考的话,自然可以积累到越来越多的经验,个人的价值是会不断得到提高的。

 

从这个角度来说,我有一部分时间是在为自己工作,为自己加班,为自己投资。

 

InfoQ:您回国后感觉国内加班跟国外有哪些不同呢?

 

Shin:国内的加班情况跟国外完全不同。我刚才提到了我是每周工作 60 个小时,一周六天,平均一天就是 10 个小时。但是国内的员工就因人而异,我碰到过年轻的开发人员对知识非常渴望,对工作投入的时间会非常多,也遇到过斤斤计较,到点“失踪”的。这里面有一个很有趣的规律,你会发现一些比较重要或者难解的问题,慢慢会往愿意花多余时间工作的人身上去挪移。这些人会在公司里慢慢变成不可或缺的人。

 

另外做软件的话与硬件不同,软的意思就是说很有弹性。时间到了就要上班下班的人,他做出来的东西通常没有弹性,这是很有趣的事情。

首先做好个人时间管理

 

InfoQ:效率和加班是什么样的关系呢?

 

Shin这纯粹是时间管理的问题。以我个人为例,我尽量把我自己每天开会的时间压缩到不足 3 小时,剩余 3.5 个小时做比较困难的需要动脑的事情,3.5 个小时做相对简单的事情。这样的话一天就被分成了三段。那些斤斤计较每天 8 小时的,减去 3 个小时的会议,一般解决难的问题花的时间比较多,再减去 3.5 个小时,就只剩下了 1.5 个小时去做比较简单的事情。

 

可是很不幸的,简单的事情一般是决定于你自己的设计够不够好。结果就是大多数人,一天除去开会处理邮件的时间,剩余几个小时都在做杂七杂八的乱事儿,没时间去思考。当你没有时间去想和解决新问题的时候,价值就不会得到提升。

 

然后主要难的事情还没做的时候就开始焦虑,加班是被压力压出来的,不是自我管理出来的。我即使是一天工作 10 个小时,我心态是很放松的,但压力压出来的焦虑加班,就很痛苦。

 

InfoQ:简单、重要、会议这三个阶段怎么执行顺序上会有什么要求吗?

 

Shin:我先讲一下我每天怎么分配自己的时间,通常的话我是早上 10:00 开会,我会 8:30 左右到办公室开始梳理当天的工作内容,会议要讨论的要点,要解决的难点痛点,就是把最好的时间放在最困难的事情上。到下午的时候才开始写代码,修改、测试、调优等,这些是不太用大脑的。

 

InfoQ:因为开发多数是为业务服务的,在这个前提下,不可避免的会有很多临时的会议打断你的工作节奏,那么如何解决这种突发的情况对效率产生的影响呢?

 

Shin:我在带新员工的时候也会遇到这样的情况,他们反馈说你让我做很多计划是无用的,因为不断有新的东西进来打乱工作计划。还是回到那句话,如果你设计的时候想的不够远,做出来的东西就会出现很多问题。你主动管理自己的时间,管理自己做的事情,积极主动去做设计。对自己做的东西有充分全盘理解的时候,即使是突然遇到的问题,你会比较轻松的定位到问题解决问题。

 

还是回到一个工作方法和态度的问题,一个积极主动的人他被动处理问题的情况要少得多。越认真的人,要处理的问题越少,也是很有趣的事情。看你把加班当成投资还是负担,在你付出的时间上,你是主动积极的做了规划,了解全盘,还是只是被动的去接受任务。所有的开发效率就是从这个过来的。

 

InfoQ:接着咱刚才提到的会议,现在特别流行一个“站会”(Standup Meeting),这个对效率会有提升吗?

 

Shin:这个在网上大为传播是 Facebook,他们一个小团队是 5 到 6 个人,有 PM、测试、开发,每天开“站会”。“站会”这个其实是有来源的,在 1988 年有个电影《Stand and Deliver》(中文名《为人师表》),讲述一个高中的老师在洛杉矶的郊区教一群墨西哥移民的子弟。这些人基本上已经放弃了自己的人生,他就跟自己的学生打气,要站起来把事情完成,Stand and Deliver,所以“站会”是这么来的。

 

“站会”最重要的工作是在协调所有人当天的优先级,比如说两个开发人员说我需要 PM 做哪些决策,测试人员说我需要开发给我这样的信息去做哪些测试。是人跟人之间协调沟通的机制,通常合理的“站会”不能超过 10 分钟,超过 10 分钟,这个“站会”就没效率。

 

通过“站会”,小团队里要定义好我当天要完成什么工作,注意是完成什么工作而不是要做什么工作,这是国内和国外最大的不同点。一个好的“站会”是我昨天的工作完成了没,如果没有完成原因是什么,我今天的目标是什么,我可能会有困难,我需要某某人帮助我解决这些困难。这个时候小组的 Leader 就会知道基于这个互动沟通的过程去协调工作内容。

 

InfoQ:所以“站会”做好的话是能明显提高开发效率的,那开“站会”的话多大的规模比较好?

 

Shin:这个确实跟团队的大小有关系,Facebook 的标准配备是不能超过 6 个人,80 90 年代我们一个团队不超过 3 个人。国内的公司的话不缺人,一个项目就是会投入很多人员进去,每天都要开很久的会,没时间去做真正开发的事情,这不是很好的现象。

 

InfoQ:Shin 上面提到 Facebook 开发团队是 6 个人,您之前是 3 个人,国内大厂可能会多一点,那这个大小团队开发在效率上的优势劣势都有哪些?

 

Shin:这个要看团队成员的素质。国内是最好的人在大公司,美国是好的人去新创公司,因为去大公司就是一个萝卜一个坑,你能碰到的东西是很有限的。在这种环境下,他那个小团队的人是很“饥饿”的,他们对知识的追求,对工作完美的追求是没上限的,这样的团队大了反而碍事。《Mythical Man Month》这一本书中也提到了,人数的增加不能增加你的产出量,到某一个临界值反而会降低你的产出量,因为你要花更多的时间去做沟通。当然小团队也有问题,如果成员素质差太多,沟通的成本也会上来。沟通的成本是由团队的素质、成员的数量、项目切割的碎片化程度三个因素决定的,效率也就因此而来。

工具对效率的影响

 

InfoQ:最近比较热门的云原生会对团队效率有所提升吗,这应该算是工具向的吧?

 

Shin:我举一个例子,我们从去年的 9 月开始,把我们的软件从一个 Server 上搬到了云上,我们当时选的是亚马逊的云,因为他们云原生的架构比较完整。上云之后,我不需要再搞很多东西,之前在 Server 上的中间件等都可以丢掉。所以云原生带最大的价值,你原来必须要维护的中间件,都可以交给他们去做,我个人觉得效能提升是巨大的。最大是因为中间件大家都是开源的。

 

InfoQ:工欲善其事,必先利其器,我们能看到选对或者配置好开发工具之后对开发者效率的显著提升,也发现了不少开发者陷入了工具中,反被工具所累,Shin 怎么看待工具对效率的影响?

 

Shin:聪明的人是工具为他所用。我个人的习惯是自己造工具,根据自己的需要造工具,不管做什么事情,用什么工具,都是完成工作的目标,假设工具不能为我所用,我不会在上面浪费一分一秒。我对用什么工具没有意见,重要是顺利的完成工作。

 

InfoQ:Shin 对今天讲的内容简单做一下总结吧?

 

Shin:我觉得主要是以下几个点。

 

第一,要改变自己的心态,你的工作是为自己投资,不只是还老板的债,让自己开心一点,为自己投资是开心的事情,还债是痛苦的事情。

 

第二,时间要管理好,每天要花足够的时间解决需要动脑的事情,这个东西其实是给自己设置了高标准,你不会去接完全是搬砖的活。这些是可以自己主动要求的,你有了第一个改变,才会有第二个改变。

 

第三,就是要评估自己工作的做的好不好。科学的做法就是大胆的假设,小心的求证。我个人觉得国内有个东西是不太好的。国内所有的团队开发人员,心理上对测试是排斥的,我个人不认为测试是单纯的测试,我把测试认为是一个求证的过程。

 

最后一个就是要看书,每周至少要花半个小时去看书,最重要的是你要跳出每天固定的思维,如果人一天一直是在一个圈里,长此以往,思维会固定住。也不建议看抖音,比较浪费时间,技术直播是可以看的。开车的是话可以听一些录音的书或者让自己放松的音频。每天多花点时间充实自己。


活动推荐:


InfoQ 决定于 2022 年 3 月 25 日至 3 月 26 日在北京悠唐皇冠假日酒店举办【DIVE 全球基础软件创新大会】,刘新铭作为本届大会【编译器】专场的出品人也会出现在会场与大家交流。本专场重点介绍全球编译器的发展方向和现状、编译器在国内的研发成果及在芯片等尖端行业的应用,给编译器这一底层技术从业者和爱好者带来一些新的启发和认知。未来十年将会是基础软件发展的黄金十年,如果你对这些内容感兴趣,一定不要错过。

议题提交页面:https://dive.infoq.cn/2021/beijing/track/1224

大会报名页面:https://dive.infoq.cn/2021/beijing/apply


专家介绍:


刘新铭,鉴释联合创始人兼首席架构师。主导鉴释面向 DevOps 的静态代码分析工具的核心研发工作。他在开发和交付高性能计算系统(HPC)编译器和性能分析工具方面拥有数十年的丰富经验,是业界公认的静态代码分析技术专家。

公众号推荐:

AIGC 技术正以惊人的速度重塑着创新的边界,InfoQ 首期《大模型领航者AIGC实践案例集锦》电子书,深度对话 30 位国内顶尖大模型专家,洞悉大模型技术前沿与未来趋势,精选 10 余个行业一线实践案例,全面展示大模型在多个垂直行业的应用成果,同时,揭秘全球热门大模型效果,为创业者、开发者提供决策支持和选型参考。关注「AI前线」,回复「领航者」免费获取电子书。

2021-11-26 14:242947

评论 5 条评论

发布
用户头像
内容很好,用标题吸引眼球不太行
2021-12-04 18:15
回复
用户头像
这和福报没啥差别
2021-11-27 16:21
回复
更多的是心态上的不同
2021-11-29 09:53
回复
更多的是幸存者的偏见。幸好有得选择,否则还不如机器。
2021-12-04 08:40
回复
本来我也很羡慕那些一天不用睡觉,天天扯淡的人,他们的能力很强,但是我后面发现,我不是这样的人,天生限制了,我只能做一条咸鱼。
2021-12-04 08:42
回复
没有更多了
发现更多内容

阿里P8级架构师十年心血终成Java核心精讲与网络协议文档;

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Python从0到1丨带你了解图像直方图理论知识和绘制实现

华为云开发者联盟

Python 人工智能 华为云 华为云开发者联盟 企业号 5 月 PK 榜

华为与阿里等五位架构师一起奋战七个月,写出这一份Java并发编程

做梦都在改BUG

Java 并发编程 多线程 并发实现

索信达助力,贵阳银行荣获“金融行业数字化转型最佳创新应用奖”

索信达控股

数字化转型 金融 银行

百度Q1财报发布:文心一言性能提升10倍,大语言模型带来革命性潜力

飞桨PaddlePaddle

飞桨

8张图带你全面了解kafka的核心机制

做梦都在改BUG

Java kafka 消息队列 消息中间件

IDD Swap算力LP挖矿部署流程(详细

Congge420

众筹互助软件架构搭建原理

Congge420

Planner 5D:设计您的梦想家园

理理

Planner 5D for Mac 苹果mac软件下载 室内设计工具 Planner 5D中文

第二届全国博士后创新创业大赛报名开始啦!海内外博士、博士后

科兴未来News

博士后 双创比赛 博士

flutter系列之:使用AnimationController来控制动画效果

程序那些事

flutter 大前端 程序那些事

魔改xxl-job,彻底告别手动配置任务!

Java你猿哥

Java 分布式 定时任务 ssm Job

高效研发团队都在看!一套方法论带你找到适合自己的效能提升路径

万事ONES

2023年辽宁省等级保护测评机构名单公布

行云管家

等保 等级保护 辽宁

京东顶级架构师是如何应对几天后618狂欢节的,带你走进顶级大佬

做梦都在改BUG

Java 架构 系统设计 高并发 亿级流量

Git 代码分支管理 | 京东云技术团队

京东科技开发者

git 京东云 企业号 5 月 PK 榜

美团二面:聊聊ConcurrentHashMap的存储流程

做梦都在改BUG

Java hashmap ConcurrentHashMap

华为首席架构师推荐的《云原生架构下微服务最佳》

做梦都在改BUG

Java 架构 微服务 云原生

关于接口可维护性的一些建议 | 京东云技术团队

京东科技开发者

京东云 接口设计 企业号 5 月 PK 榜

AntDB亮相DDIS 2023数字驱动创新峰会,共推数字经济创新力量

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

未来源码|Dart 3正式发布:100%健全的空值安全、迄今为止最大版本

MobTech袤博科技

8张图带你全面了解kafka的核心机制

JAVA旭阳

Java kafka

免费堡垒机有哪些?功能多吗?后续可以升级吗?

行云管家

安全运维 免费软件 免费 免费堡垒机

技术驱动,数据赋能,华为云GaussDB给世界一个更优选择

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

GitHub项目免费教你提示工程,全中文教学,小白也能懂

Openlab_cosmoplat

人工智能 GitHub 开源社区

如果你项目使用了MyBatis-Plus你一定要用它

Java你猿哥

Java mybatis ssm Mybatis Plus

楠姐技术漫话:图计算的那些事 | 京东云技术团队

京东科技开发者

京东云 图计算 企业号 5 月 PK 榜

Java中的正则表达式详解

timerring

Java

GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】 | 京东云技术团队

京东科技开发者

gpu 京东云 ChatGPT 企业号 5 月 PK 榜

ChatGPT人功智能开发方案详情

Congge420

OpenMLDB v0.8.0 发布

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

按时上下班的程序员,做出来的东西没有“弹性” | DIVE 基础软件大会专访_文化 & 方法_辛晓亮_InfoQ精选文章