1. 前言
程序员不单单只有技术的深度,更应该有广度的提升,比如产品思维,项目管理,运营,时间管理,沟通,领导力,.压力管理,冲突管理,目标管理,经济学,博弈论,商业模式,财报入门等等.
看看 程序员,技术主管(Leader),架构师 有什么区别:
技术管理最重要的两个任务:
- 完成工作目标.
- 培养下属.
在我眼中,我认为技术管理并不是真正的纯管理人员,只是一个懂技术的服务人员与领路人,有时候可以说是你成就了大家,倒不如说大家成就了你,也可以说是大家双赢.
技术管理者需要为团队成员服务,有人需要资源就给协调资源,有人不明白目标就帮助他明确目标并制定其个人目标,
不同的模块间接口无法确认就组织相关人员讨论,xxx任务完成的好就给予明确肯定,
xxx所从事的技术方向迷茫就协助找到发展方向,
有人突然情绪低落效率低下及时发现背后的原因并在必要时提供支持… …(感觉是不是像保姆)
影响力的六大原则也是应该知晓的:互惠原则,承诺一致,社会认同,喜好,权威,稀缺
激励别人无非就两个因素(基础因素与动力因素):
技术管理者还需要几点,以身作则,勇于承担责任,共情能力,时刻牢记公司,团队,项目目标,情绪控制,不传递负能量,不耻于下问 ,复盘 等等.
团队leader 负责工作罗列:
- 促织线上Carsh的修复
- 组织线上突发BUG
- 排查每日客人投诉的问题
- 解决团队遇到的技术难题
- 组织每周 Code-Review
- 组织每周例会
团队Leader一定要明确两点:
- 不要给自己分配具体的需求开发,会发现,管理工作会消耗掉你大量的时间
- 努力不要使自己成为瓶颈;很耗费时间的事情,及时分配到具体的开发人员。BUG如果都集中到自己手里,那么一定要及时分下去;
那些工作今早分出去给具体的开发人员呢?比如 Android项目的打包,代码混淆,设计 Lib 框架,技术调研,Monkey日志分析;
保持内心强大
- 要学会带领团队成长,不要事必躬亲
- 要多进行思考
- 要学会风险管理
- 要保持内心的强大
- 要学会邀功(要给团队成员邀功哈)
技术管理者的核心能力是什么?
- 技术判断力(某个技术项目“要不要做”,要做的话“能不能实现”,是否适合现在做,还要考虑技术风险,项目管理复杂度,成本等等,远远超出以前写代码的范畴)
- 技术判断力包含
- 对结果的判断(这个事情做还是不做,用什么样的指标来衡量它的好与坏,比如:开发人员提出要用Flutter对现有App进行重构,你要给出一个判断做还是不做。技术人员想玩一玩新技术,而你作为技术管理者,考虑的是现阶段公司App的关键问题是什么?假设说是App稳定性、开发速度不够快,那么Flutter作为一种新技术框架,能不能解决现有的问题?如果不能,那么现在引入它也许还不是最好的时候,可以安排一两个技术人员做预研,开始关注这项技术。),
- 对技术方案的判断(对技术可行性、可维护性、成本收益等方面进行判断,通常在技术方案评审环节给团队进行指导),
- 对风险的判断(技术风险、项目执行风险、团队风险等方面。技术管理者利用自己的经验、思考分析、团队讨论等手段,识别出主要的风险,并采取措施进行规避)
- 提升技术判断力,
- 团队日常技术和产品工作汇报(获取信息反馈,验证技术判断的大好时机,看看自己之前的技术决策产生哪些影响,有无需要调整的地方,也可以学到下属们的思考和经验,及时更新自己的技术和产品认知);
- 参与技术方案评审(尽量参加,结合自己的理解和经验给团队反馈,架构判断力也得到提升);
- 主持系统顶层设计和规划(担任或主持系统顶层设计规划,业务架构规划,系统各层的划分,子系统之间的数据交互协议,技术框架选型,系统容量规划等等,从技术整体架构把控,再由团队进一步展开更细的规划);
- 持续学习新技术(技术管理工作,并不是完全丢弃技术,只是放弃大部分代码工作,新技术的学习不能停止)。
CodeReview(代码评审)
每周技术分享 每周一次,每次1个小时,单周(技术Leader),双周团队成员轮流。Leader 主要偏内核修炼(比如设计模式,架构设计,等等),团队成员偏实战中的经验和心得体会,具体到代码和项目层面.(比如优化,重构用到的东西等等);题材可以不限制,当然也可以按照大家掌握的技术点打分,进行有效的技术短板提升;
2. 技术提升
每天进步一点或者看一会书,1个月,1年,坚持下来,慢慢就提升了,时间复利就是我们最好的朋友
程序员的主流成长发展路线,是明显的“T”形路线,纵深是技术的深度,横向上,是广度方面的,当然也包括技术专业之外的领域。
建议看看《认知天性》中说的后刻意练习时代:
1.学习的东西需要进行检索
2.穿插练习,有助长期记忆.
3.反思是检索的一种
结论:平时可以尝试技术分享,讲解给别人听,重构代码,严格要求自己,写DEMO,或者自己写一个小项目等等来检索或者练习 自己学习的设计模式,性能优化