作者:Coursera  译者:无明

来源:http://i7q.cn/5OkaAv

我花了很多时间为开发经理提供建议,很多刚走上开发经理岗位的新手总是问我:“我应该写多少代码?”

网上有很多文章建议开发经理要么完全不写代码,要么最多花 30% 时间在代码上。

但问题是,太过关注开发经理需要写多少代码,反而忽略了开发经理为什么要写代码。

一名优秀的开发经理意味着你的优先考虑事项是管理以及与团队成员互动。你需要培养管理技能,而我认为最重要的是同理心。同理心意味着你需要从工程师的角度看待问题。

很多优秀的开发经理曾经也是工程师。然而,工程技术领域在不断发展,作为开发经理,需要与时俱进才能保持对团队的同理心。

因此,不要问“我应该写多少代码”,而应该问“我在什么情况下可以写代码”。

在 Coursera,我们的开发经理就是这种方法的最佳实践者。这样做不仅让我们可以“保鲜”我们的工程技能,同时又提升了对团队工程师的同理心。

什么情况下不要写代码 有时候,回答一个棘手问题的最好方法是回答反面的问题,比如“在什么情况下我不应该写代码?”。

如果人是开发经理的首要任务,那么通过代码塑造一个伟大的工程团队需要更多地关注测试、监控、代码评审、设计文档等。

完成这些任务所需的时间和空间只有全职工程师才有。如果开发经理去写代码,同时又期望其他人能够完成其他繁重的工作(测试、调试、文档、评审、监控、维护等等),那么开发经理将失去激励伟大工程团队的能力。

开发经理不应该在团队的关键路径上写代码。虽然这看起来似乎有所限制,但也带来了新的机会。

什么情况下要写代码

1.代码评审

编程活动包含了 10%的编码和 90%的设计、沟通、测试、阅读代码等。

因此,开发经理的另一种“编码”方式就是完全不写代码。

代码评审有助于建立团队同理心,同时还可以加强编程技能,并建立对产品更好的理解。代码评审要求评审人员能够阅读和理解代码——可以说是伟大工程师最重要的技能之一。

2.修复小 bug

有时候,开发经理有机会卷起袖子修复一些小 bug。与代码评审一样,修复这些 bug 不需要写大量的代码。

但它需要阅读与 bug 相关的代码,并需要一个有效的开发环境。

开发经理应该要十分谨慎,避免引入新的 bug,并在修改完 bug 后进行测试,但要尽量避免修复团队最近引入的 bug。

开发经理应该在存在巴士因素(bus factor,团队成员被巴士撞伤会影响项目进度,指某些事情只有某些人会做就会成为项目的风险点)的项目上这么做,或者负责处理那些老 bug 或琐碎的问题,因为这些问题只会消耗已经负担过重的团队成员的时间。

虽然团队专注于构建优秀的产品,但仍有很多机会改进用于设计优秀产品的工具。通过自动化改进这些工具或开发新的内部工具为工程师和开发经理提供了发挥影响力的绝佳机会。

例如,Nick Dellamaggiore(Coursera 的基础设施负责人)注意到,工程师使用了大量样板代码来监控事件管道中的事件。他希望减少这些样板代码,并避免为每个新监控器重新部署服务。后来,他做到了,甚至超出了期望。

我们现在都在使用他的方法对我们的产品进行性能监控和产品使用监控。

但是,如果这些工具变得非常流行且不可或缺,那么维护和开发新功能可能会成为开发经理未来的负担。为了避免这种情况,开发经理需要将工具交给新主人。

开发经理可以尝试构建更好的工具,帮助团队更好地完成工作,而不是寻找管理任务以外的事情!作为开发经理,可以通过代码来改进或自动化很多任务。

1. Google 脚本

几个季度前,我过了一遍之前所有的事故分析报告,从中识别出事故发生的趋势,并确定我们在跟进预防性问题方面究竟有多大的实力。

我们的事故分析报告太过分散,而且从每个报告中复制数字数据是件非常耗时且无聊的事情。

为了给我自己以及其他开发经理减负,我开发了一个 Google脚本。现在,工程师只需填写一个Google 表格,回答一组标准问题,就可以自动生成事故分析报告,同时将有价值的指标填入中央电子表格。

这样不仅改进了事故报告的分析工作,我还从工程师那里听说,他们花在填写事故报告上的时间更少了。

最近,Priyank Chodesetti(学习体验团队的开发经理)也写了一个Google 脚本,用于自动化团队sprint 回顾过程。自从他发布了这个脚本以后,sprint 回顾的参与度得到了很大的提升。

2. JIRA

在 Coursera,我们使用 JIRA 进行 bug 跟踪和 sprint 计划。

Jerry Charumilind(学习体验平台团队负责人)汇总了一份关于我们团队在解决 ticket 方面的有效性报告。

虽然 JIRA 可以做很多事情,但很难通过内置插件来提取历史数据。不过,借助 Python 和非常有用的 matplotlib,Jerry 直观地向我们展示了我们的团队在这方面做得有多好。

最近,Jerry 又写了一个自动化脚本,可以向问题所有者发送有关问题时效性和优先级的通知。

3. Slack

slackbot 为开发经理提供了一个写代码的机会,同时还可以提高团队的工作效率(或娱乐性)。

去年,我创建了三个 slackbot:

Buggy——用于创建、搜索和分配 JIRA 问题;Foody——用于查询我们的午餐和晚餐菜单;Booky——用于搜索 gitbook 上的工程文档。

4. 检查器

伟大的工程实践也可以从编程中受益。Mustafa Furniturewala(学习体验团队的开发经理)在他希望改善团队测试文化时就遇到了这种情况。

在 Coursera 评审代码时,我们会自动执行 linting,阻止不遵循编码样式指南的代码提交。Mustafa 写了一个脚本,强制要求所有新组件至少包含一个单元测试。

开发经理因此可以花更少的时间在手动检查代码提交上,并花更多的时间深入思考如何激励团队进行更好的单元测试和集成测试。

5. 公司内部黑客马拉松

在 Coursera,make-a-thon(我们的黑客马拉松版本)为开发经理提供了绝佳的写代码的机会。在过去的三个季度中,几乎每个开发经理都参与其中。在上一个 make-a-thon 中,Richard Wong(Coursera 工程总监)因为他的项目能够自动从视频脚本生成音频而斩获了最佳表现奖。他的现场演示非常精彩!

一些开发经理喜欢参与宠物项目、副业或甚至是开源项目(例如,我在维护不是很流行的 emailjs )。这些项目为他们提供了编写大量优秀代码的机会。

外部工作为开发经理提供了有趣的编写代码的机会,与此同时,企业应该考虑采用更全面的方法来鼓励开发经理抽出时间来编写工作相关的代码,特别是鼓励健康的生活工作平衡。

什么时候可以认为开发经理写的代码够多了?我已经建议开发经理在哪些情况下可以写代码,当然,这并不是一个完整的清单。好的开发经理可以通过这些方法来为他们的团队建立同理心。

开发经理在适应了这些写代码的场景后,现在就可以更好地回答之前的问题:何时以及需要写多少代码。

我不认为它有一个正确的答案。这要取决于每个经理自己,他们需要确定他们在激励团队构建优秀产品时是否具有足够的同理心。

最近,我的一位工程师在调试她发现的 bug 时向我求助。我们花了大约 20 分钟阅读代码,并尝试各种输入,最后找到导致 bug 的根本原因。当我的团队很乐意找我寻求帮助时,这些互动告诉我,我写的代码已经够多了。

英文原文:https://medium.com/coursera-engineering/should-engineering-managers-write-code-wrong-question-ec5fc54d3903

PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。

大家一起在评论区聊聊呗~

关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。

猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别

9、2T架构师学习资料干货分享

开发经理是否应该写代码?​相关推荐

  1. 为什么项目经理依然想写代码?

    [CSDN 编者按]从工程师或技术人员过渡到经理的最大困难之一就是认识到生产代码不再是您的主要目标,然而这么久以来"经理应不应该继续写代码"成为了人们口中经常谈到的话题,对此你又是 ...

  2. 傻瓜式软件开发工具推荐!无需写代码,拼图式极速制作手机APP

    因为从事互联网领域的工作,所以总会收到很多朋友的询问,表示想建立一个App,或创业,或是增长线上渠道,或者仅作为个人的一个小工具,小平台,但是又苦于不懂软件开发技术,咨询专业的外包公司,价格都太高,不 ...

  3. python桌面界面开发在那种编译器写代码_Python智慧编程——第1讲 遇见Mu editor

    第1课Python智慧编程 1.1聊聊编程与计算机语言 和人类一样,计算机使用多种语言来沟通,这里所说的语言就是编程语言.简单地说,一种编程语言就是一种特定的与计算机交谈的方式,这种方式使用计算机和人 ...

  4. 写代码太累,找一款低代码开发平台吧

    现代社会变化太快,一个好想法,如果不尽快落地,很快就会被其他公司抢先了或者错过了行情.软件行业尤其如此,因为传统开发程序的方法耗时长.成本高,还没等你开发出来,要么其他公司做出了类似产品,要么因长时间 ...

  5. 不写代码也能进行物联网开发

    一.前言 ​ 在2020云栖大会上,阿里云智能发布了一款加速AIoT中小开发者创新的积木式平台-HaaS(Hardware as a Service),该产品旨在帮助AIoT中小开发者聚焦业务,低门槛 ...

  6. [歪谈]经理该不该写代码?

    这个话题我在好几个地方看到过,基本上大家的意见有几种: 1.小公司别说经理.老板都得写(这是在说我吗?) 2.一般到100或200人以上的公司,经理非常少会直接參与代码的编写. 3.大公司(BAT?这 ...

  7. linux不写代码,不修 bug 也不写代码, 项目经理干了啥?一位 PM 的自白

    项目经理该干啥?来自一位东航项目经理的自白书. 自 Project Manager 被翻译为项目经理以来,就一直伴随着因"望文生义"导致的种种误解.很多人通过字面意思去想象项目经理 ...

  8. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序

    SailingEase WinForm Framework WinForm开发框架开发手册:http://docs.shengxunwei.com/Home/Browser/sewinformfw/ ...

  9. Silverlight C# 游戏开发:未写代码先设计

    本文只有两个主题: 1.游戏设计清晰的必要 2.循环逻辑的代码设计 游戏设计: 未写代码先设计,这是一个非常重要的建议,如果在写代码前还不知道要开发一个什么游戏,那么会遇上很多问题,这些问题包括: 代 ...

  10. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序...

    GitHub:https://github.com/iccb1013/Sheng.Winform.IDE SailingEase WinForm Framework WinForm开发框架开发手册:h ...

最新文章

  1. linux 僵尸进程 defunct
  2. javascript改变样式(cssFloat,styleFloat)
  3. 问题合集 ------- 用 Eclipse 平台进行 C/C++ 开发
  4. qfp封装能够linux,QFP、PQFP、LQFP、TQFP封装形式及PCB详解
  5. IT职业教育行业报告
  6. 腾讯,创新工场,淘宝等公司最新面试三十题(第171-200题)
  7. maven常见问题归纳
  8. 高大上的集团名字_中国办公家具行业“高大上”的企业文化节 非中泰龙集团莫属!...
  9. C++vector基础容器3.0
  10. 熵、条件熵、互信息等概念
  11. HTML 两种对密码加密的方法
  12. 沃特玛采集均衡模块_采集均衡模块以及电池管理系统_2016212573884_说明书_专利查询_专利网_钻瓜专利网...
  13. 麻将游戏简介firefly游戏框架介绍
  14. ubuntu 截图快捷键设置
  15. 前端“Wed, 22 Sep 2021 15:48:33 GMT“时间转换成“2021-09-22 15:48:33
  16. Android 12.0 锁屏页面禁止下拉状态栏
  17. 实习生招聘--CVTE笔试【1】
  18. 微信字号调整问题 html,微信H5适配 解决微信调整字体大小导致Html5页面混乱
  19. eai java,EAI与SOA
  20. 一个创业者的心理独白,是美妆溪妍给了我希望

热门文章

  1. 除了数据恢复,EasyRecovery还有这样的功能!
  2. matlab练习程序(Prim最小生成树)
  3. Android 自定义 View
  4. Exchange 2007 前端 IIS 内存占用过高
  5. 绿盟科技:“无敌舰队”DDoS勒索防御关键是应急经验积累
  6. 《Java安全编码标准》一第 1 章 概  述
  7. 复制id_rsa命令
  8. C# 使用Log4Net记录程序日志
  9. CentOS部署×××
  10. 【转】HTTP幂等性概念和应用