团队管理者应该参与编程吗?

本文讲述了团队管理者参与编程的体验,强调了他们为何应选择非关键需求,遵循团队流程,以及如何通过编程增强团队理解和协作。同时提醒管理者注意编程与管理工作的区别,避免因速度慢和新手身份导致的问题。

 团队管理者如何既体验编程,又避免写Bug?

f4db11beed6d94724bbf615597051553.png

01

为什么团队管理者也要编程?

即使是一家科技公司,很多程序员变成团队管理者后,就不编程了。

最近,公司管理层统计内部Github的数据,发现在全公司内提交代码的员工比例并没有想象中高。有些部门开始以“工程师文化”为名倡导更多人应该参与编程,包括团队管理者们。

我作为技术总监之一,最近也参与了团队内某个需求的编程,目前已经上线。

我的主要目的是体验一下团队成员,特别是程序员的真实工作环境,从而和团队共情,更好地参与到团队的技术讨论,也可以和团队一起改进流程和工具,创造更好的工作环境。

02

我的编程体验

作为团队管理者,因为日常管理工作占据了大部分时间,我确实有一段时间没有参与编程工作了。那么,我面对的第一个困难就是要重新搭建开发环境。这往往需要花费数天的时间安装各种软件、申请权限和搭建环境。

得益于团队引进了DevContainer和Coder,让我可以在几分钟内获得一个完全配置好的开发环境(Web IDE),得以立即开始编程工作。

Coder提供了在线开发体验。通过与 DevContainer 集成,它提供团队一致的开发环境,无论成员使用哪种操作系统和设备。团队的程序员可以通过 Coder 用简单几步操作即可创建工作区来开始编程工作。

即使是新加入的程序员,只要获得GitHub的访问权限,就能在几分钟内启动编程工作。这也特别适合我这样偶尔参与编程工作的。

也因为团队在Github项目里的README给力,我很快可以在Coder里获得最新的代码和运行测试。也很快找到在哪里修改代码满足需求,并做出初步设计和团队讨论。然后开始编程和调试。

这个过程的体会是:

1. 编程所需要的时间模式和管理工作完全不一样

编程需要一大段专注的时间。管理工作很多时候是开会,时间比较碎片,很多时候需要一心多用。对于团队管理者们来说,如何找到一大段专注时间,是一大挑战。

所以编程工作对于大多数团队管理者来说,确实只能偶尔为之,以体验为主,不能成为日常工作之一;

2. 大多数团队管理者对编程已经非常生疏,编程速度慢

由于已经离开编程工作有一段时间了,更别提技术日新月异,有很多新的技术、框架、语法和编程范式需要重新学习,大多数团队管理者已经从原来的编程高手蜕变成“菜鸟”。

一个十几年前的Java程序员,不管当时编程能力多厉害,面对Lamdba和Stream这类新的Java语法,也是一脸懵。而我是从Java切换到Python的,跟Python确实不熟,要熟悉Python的语法和各种包的用法,需要一些时间。

编程过程中,你一定会被某些小问题卡住,而这一卡,可能就是一两天时间,这期间包括针对这些问题的各种搜索和尝试。

3. 调试和测试永远是编程的难点

如何获取程序执行过程的中间数据,是调试的关键。是否写自动化测试,也是一个很令人纠结的过程。理论上,任何变更都应该写自动化测试,但是要通过编程构造输入数据和验证程序输出数据所需要的时间和精力,远远超过手工测试。

简单来说,对于我来说,编程过程会比较慢,速度肯定远比不上团队里的其他程序员。

这个过程,也难免需要打扰到其他程序员。需求分析、设计、编程、调试、测试、部署、上线,涉及到多个过程和工具,我们的文档再完整,也不可能做到面面俱到,有一些测试需要的系统登录信息,也不适合以公开文档的形式共享,有些细节还是需要询问其他程序员然后记录在自己的小抄里。

和其他程序员进行结对编程,可能也是一种方式,只要你不怕暴露自己在编程上的生疏和新技术的空白。当然,这可能会占用团队更多的时间。

另外,作为一个曾经的程序员,这个过程也能找回我们的初心,从“本我”的角度,相对于跟人打交道,我们确实更擅长和更享受与代码为伍。哪怕过程中遇到各种各样的技术挑战,也会享受不断尝试和找到解决方法的过程。

03

温馨提示

在这里,基于我的体验,给要参与编程的团队管理者们一些建议:

1. 不要开发有时限要求的关键需求

由于团队管理者们比较难有一大段的专注时间,加上编程速度会比较慢,应该选择没有时限要求的边缘需求,这样时间上会比较从容。参与的重点是体验和共情,不是交付的结果。

2. 遵循团队的开发流程和规范

这些都是团队长期优化和调整的结果,哪怕一开始觉得不顺手或感觉不对,也应该先尊重历史,把整个过程体验完了,再和团队一起探讨改进方案。

3. 作为一个“生手”,团队管理者们的编程能力可能比不上团队的程序员,写出bug的概率也会比较高

这也是为什么要选择没有时限要求的边缘需求,需要在更从容的环境下对程序做更充分的测试,也应该让团队的程序员评审代码和测试。确保交付质量。

04

总结

作为科技公司的团队管理者,如果有机会参与编程,是可以重新体验作为工程师的初心,也能深入理解团队程序员日常工作的过程和痛点,从而和团队一起改善流程和工具,创造更好工作环境。

但由于写程序和管理工作的时间模式完全不一样,团队管理者们可能只会有非常有限的时间进行编程工作,加上编程速度可能不高,要避免开发有时限要求的关键需求,从而可以从容体验也避免写Bug,给团队添乱。

05

番外

技术团队管理者参与编程有另一个额外好处,就是能让团队里的技术大牛服你。

在我当初空降到云平台团队作为技术总监时,我可以感觉到团队里某些资深工程师觉得我的出现有点多余,特别是在一开始的时候,我对云平台和团队在做的东西需要一个熟悉的过程。

随着我逐渐融入到团队里,并为大家的工作环境带来改变,情况好转了。但真正折服他的时刻是我亲自参与了某个模块的编程以后。他说对我不是一个“离地”的团队管理者这一点印象深刻。

觉得文章不错,顺手点个“点赞”、“在看”或转发给朋友们吧。

af85647ee1fe3ec30f3b7193cffe8423.png

相关阅读:

金融企业云平台自动化运维之路

我们实现OKR的秘密武器是什么呢?

一次成功游说的三板斧

关于作者


4df5884f6bdedbcc38effafd48f17ba7.jpeg

关注公众号看其它原创作品

坚持原创高质量软件交付相关文章

觉得好看,点个“点赞”、“在看”或转发给朋友们,欢迎你留言

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值