课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
其实对于许多程序员来说,转型技术管理岗位是一个非常不错的职业发展规划。那么在转型管理岗之后是不是还需要继续写代码呢?针对这个问题我们做了一个简单的分析,一起来了解一下吧。
什么情况下不要写代码
有时候,回答一个棘手问题的好方法是回答反面的问题,比如“在什么情况下我不应该写代码?”。
如果人是开发经理的要任务,那么通过代码塑造一个伟大的工程团队需要更多地关注测试、监控、代码评审、设计文档等。
完成这些任务所需的时间和空间只有全职工程师才有。如果开发经理去写代码,同时又期望其他人能够完成其他繁重的工作(测试、调试、文档、评审、监控、维护等等),那么开发经理将失去激励伟大工程团队的能力。
开发经理不应该在团队的关键路径上写代码。虽然这看起来似乎有所限制,但也带来了新的机会。
什么情况下要写代码
代码评审
编程活动包含了10%的编码和90%的设计、沟通、测试、阅读代码等。
因此,开发经理的另一种“编码”方式就是完全不写代码。
代码评审有助于建立团队同理心,同时还可以加强编程技能,并建立对产品更好的理解。代码评审要求评审人员能够阅读和理解代码——可以说是伟大工程师重要的技能之一。
修复小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写了一个脚本,强制要求所有新组件至少包含一个单元测试。
开发经理因此可以花更少的时间在手动检查代码提交上,并花更多的时间深入思考如何激励团队进行更好的单元测试和集成测试。
作者:Coursera
译者:无明
节选:infoq
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。