牛耳教育吧 关注:340贴子:1,578
  • 0回复贴,共1

程序员都是日复一日的敲代码吗?

只看楼主收藏回复

提问:你印象中的程序员工作是怎样的?相信会有人回答:敲一天的代码、修一天的Bug,日复一日的披星戴月吧——一直以来,这就是我们对程序员的传统印象。
但事实似乎与我们想象的有些出入:据DevOps公司Software的第一份代码时间报告显示,大多数开发人员每天的编码时间根本就不到一小时。

每天编码不到1小时,周三最高效
伴随着软件领域逐年激烈的竞争,全球各大技术公司每年在开发人员身上的投资越来越多,他们协调分布在世界各地和跨时区的数百个项目和团队,争先为客户创造最好的价值,只为引领行业的创新步伐。
在这过程中,还有很多公司“掉队”了:工程团队在开发过程中遇到障碍和瓶颈,将一个想法投入生产可能需要几个月甚至几个季度。究其根本,在于开发人员很难全神贯注地将时间全部用来编程:无尽的会议、不断被同事中断、等待流程通过的繁琐…无法专注投入于编程的程序员,工作效率可想而知。
为此,Software公司统计了全球社区中25万多名开发人员的相关数据,得出他们平均每天的编码时间为52分钟——从周一至周五,工作中的编码时间总共约为4小时21分钟。
(注:Software将编码时间定义为在编辑器或IDE中积极编写或编辑代码所花费的时间,且为了过滤掉兼职开发者,Software的分析仅限于在过去30天中至少有7天编写过代码的开发者。)

在这之中,每天编码耗时超过1小时的开发人员仅有40%,每天编码时间超过2小时的仅占约10%。

除了真正花在编码上的时间,Software发现开发人员每天还会花费约41分钟在其他代码工作上,例如阅读代码、审查拉取请求和浏览文档等。
接下来,Software还就编码时间的主要发生时段,分别以一天和一周为维度做了进一步分析:
在一天中,只有10%的编码发生在上午9点到11点之间,大约45%的编码发生在下午2点到5点区间内,还有12%的编码发生在工作时间之后的下午5点到晚上7点。

在一周之中,开发人员普遍会在周三达到一个效率高峰,平均编码时间能达到55分钟——同一数据在周五只有46分钟。显然,即将放假的周五是最不受欢迎的编码工作日。不过这并不意味着开发人员周末就会完全“放飞”:Software调查发现,大多数开发人员会在周末继续编码,周六和周日的平均编码时间约为18分钟。

若诚如Software调查结果所示,开发人员每天的编码时间不足一小时,那他们剩余的工作时间都哪去了?如上文所说,大多都被分布在了许多其他事项中:规划项目、审阅文档、开会统筹、协作讨论。
高效工程师:每天100-150行代码
当然,如果只用编码时间或代码行数来评判一位开发者的工作效率,或许有些过于片面。
早在2017年,GoogleAdMob全栈工程师RaymondFarias的一番发言就曾在开发者圈中引起巨大争议:
“我的同事告诉我,根据以往的调查证明,一名高效的工程师每天能写100-150行代码。我一开始嘲笑他的估计值肯定低了很多,结果我汇总了我一个月的代码数据进行求和,并除以20(周末不上班)得出的平均数,居然真的等于150!!!”
为了验证这一说法的真实性,CSDN当时也在论坛上发起了相关话题讨论:“以代码为主要工作的程序员,一天写多少代码才算达标?”结果,征集到的回答几乎与RaymondFarias的说法没有出入:
很多时候都在分析问题,查看代码,写代码越来越少了。
如果写的话,基本上每天100到200行,但是更多的时候在开会、开会、开会。
真正优秀的程序员都拿着高工资,其本上不用怎么写代码,如果你还拼命在写代码,说明离“优秀”还有一段距离。
显然,这一数据与人们传统印象中的程序员相差甚远,但事实就是如此:即便代码在精不在多,不能否认的是,依旧有很多公司并没有有效部署其开发团队,反而安排了太多的繁琐会议和缓慢的审查流程,致使开发人员很难找到可以专心投入的编码时间。
为此,Software建议有这类现象的开发公司可从以下三个方面进行改变:
1、改善日常工作流程:查找破坏团队开发流程或阻碍开发人员效率的症结所在,改进DevOps实践以减少等待时间并改进日常工作。
2、让DevOps可视化:测量系统级DevOps指标,例如交付速度和后期返工等,了解推进过程中的障碍因素,减少会议和低效的审核流程。
3、用数据持续改进:工程团队应为改进工作预留开发时间和周期,以提高团队生产力,包括偿还技术债务、迁移、重构和重组。


1楼2022-05-25 15:50回复