前言
基于业界实践、开发者调查报告和软件工程研究,总结并提出研发管理的挑战,包括管理者的挑战、开发者的挑战和知识浪费的挑战。
目录
一、管理者的挑战
2020年7月阿里巴巴取消周报制度,业界沸腾!
程序员感叹:阿里最难的工作是写周报!
阿里为何实行周报?
又为何取消周报?
取消之后又当如何?
2022年11月,马斯克要求Twitter员工通过邮件写周报,并附上代码,并引发全球热议:
In order to innovate rapidly on software, it is critical to understand what everyone is working on and who is coding what.
Moving forward, every Friday (this week, on Wednesday), please email the following weekly update to xxxxxxxxx@twitter.com with the following format,......
Twitter又为何要求员工写周报?
邮件能有效跟踪周报吗?
周报中又当如何追踪代码?
周报是工作汇报、计划、复盘和推动的有效工具,是项目管理的有效工具。
现实中周报却常常执行走样,易将周报作为工作量、工作态度的证明。
员工整理周报时,要么添油加醋、暗中较劲、成为影响工作效率的累赘,要么演变成一种固定格式、或者定时上报的形式主义。
周报,报与不报,如何报?究竟如何进行研发管理、掌控研发管理的进度与任务?可见,即使大型研发公司,都是一个挑战!
二、开发者的挑战
1.开发者时间报告
但2022年1月,Software公司通过全球25万开发者90天调查统计,发布《Global Code Time Report》,指出开发者编码时间:平均每天52分钟、每周4小时21分钟 。
CSDN《 2022-2023中国开发者现状调查报告》:仅不足 9% 的开发者每天有超过 70% 以上的时间编码,每天超过一半时间写代码的人不到 30%。
Retool公司通过600位开发者调查,发布《The 2022 state of engineering time》报告指出:开发者深度工作(Deep Work)时间平均每周仅10小时!
2.开发者时间耗费
开发者的时间都去哪儿了?
Retool调查指出每日影响工作效率的主要因素包括:核心框架与库的规模化迁移、等待机器、查找文档与上下遇到的文问题、等候他人等因素。
而CSDN也给出了每日影响工作效率的主要因素:
StackOverflow :《2022 Developer Survey》指出:50 名开发者的团队,每周花费333-651小时搜寻答案与方案,每周花费 278-568小时回答他人问题。
基于86位程序员使用 Eclipse 和 Visual Studio 记录的 10,000 个程序会话,并且调查了 414 名程序员后,发现:程序员工作常常被各种事务打断,5分钟的打断,需要10-15 分钟的恢复期,方可正常工作!
3.开发者的倦怠
2021年Haystack的报告《Study to understand the impact of COVID-19 on Software Engineers》指出开发者倦怠(Burnout)是开发者效率低下的一个重要原因。倦怠是指情感资源耗竭、继而沮丧和怠慢,严重降低效率。 83%的开发者患有工作倦怠。造成倦怠的主要原因包括:高工作量(47%)、低效的流程(31%)、不明确的目的和目标(29%)。
如何给开发者提供一个流畅的环境,支持高效信息检索和便捷沟通,减少工作打断,减低心理倦怠,提升深度工作时间,是研发管理的又一挑战!
三、知识浪费的挑战
知识浪费是重新获取团队曾经知道信息的成本。软件开发最大的浪费是知识的浪费、重复思考的浪费。
知识浪费的原因:人员变更而致的知识流失、工件丢失而致的知识损失、知识筒仓而致的知识隔绝、时间流逝而致的知识遗忘等。
知识浪费的表现:长时间的系统理解和设计意图揣摩、通过Relearing和Reengineering等方式Recreating the Knowledge、重复编写的代码、重复犯过的错误等。
2017年Xin Xia, Lingfeng Bao等于IEEE Transactions on Software Engineering发表论文《Measuring Program Comprehension: A Large-Scale Field Study with Professionals》,指出:开发者工作中58%的时间在进行程序理解,25%的时间在导航。
2021年Martin P. Robillard于ESEC/FSE ’21发表论文《Turnover-Induced Knowledge Loss in Practice》,指出开发者变更导致的知识流失和影响:
StackOverflow报告指出:超过48%的开发者,入职需要很长时间或相当长的时间。统计指出,新员工平均将花费 200 个小时来搜索或重新创建丢失的信息。
如何平衡知识管理的成本与效益,建设研发知识库,增进知识的创建、保留和迁移,减少知识流失,降低程序理解时间,是研发管理的长期挑战!
总结
本文总结和指出了研发长期面临的三个挑战:管理者如何掌控并实施研发管理、开发者如何提升深度工作时间、如何减少知识流失而削减知识的浪费。
解决研发管理的挑战,是软件工程、项目管理和研发平台建设必须面对并需致力解决的问题。