评论

收藏

[PHP] 超十年研发老将:优秀的程序员不能只懂技术

开发技术 开发技术 发布于:2022-08-26 14:00 | 阅读数:413 | 评论:0

妙谈嘉宾 | LigaAI 联合创始人兼CTO 张思
内容整理 | LigaAI
从赋能发力、撬动杠杆到降本增效、去肥增瘦,互联网行业正在经历前所未有的风波与挑战。全球范围的「裁员潮」席卷而来,行业去泡沫化和主业务收拢似乎正在为互联网「全员危机」拉开序幕。
外部环境呈现暂时回调,程序员应如何维持自身的上升趋势,持续构建竞争壁垒?技术工程师成长必经的分岔路——技术专家和技术管理,又该如何抉择?
本期妙谈嘉宾,LigaAI 联合创始人兼CTO 张思,将从自身职业成长经历出发,全方位分享程序员成长的「破」与「立」。
1. 经历分享:一个普通程序员超十年的成长变化
2. 能力模型:如何成为优秀的技术专家/技术管理
3. 可复制经验:程序员快速提升的三个建议
一、程序员到CTO,是不断务虚的过程
从程序员入行到现在,已经过去十余年的时间。我个人的职业生涯大致可分为四个阶段:程序员、架构师、技术管理和技术负责人(CTO)。
刚毕业做程序员的时候,碰到问题的第一反应是从技术层面考虑可行的解决方案,思考如何通过代码解决问题。
架构师阶段就开始需要从整体层面考虑更长远的中长期方案。写代码的时间减少,思考的时间变多:与其他技术/业务团队打交道,平衡各方利益关系,思考如何在企业内推行新的架构。也是在这个阶段,技术广度、沟通能力得到了很大的提升。
技术管理/研发总监阶段,真正对技术团队负责。新业务来临时,需要从资源管理的角度考虑「怎么做」:需求是否合理、团队能否消化等等,但最大挑战还是克服对代码的控制欲
早期管理时,总会不由自主地帮团队完成任务,接手核心的代码或者工作,但团队的成长和培养需要试错成本。更好的做法是培养团队骨干,授权他们冲到挑战最前线。技术管理一定要强迫自己改掉「事事冲到第一线」的冲动,给团队更多发挥和成长空间
做技术负责人/CTO时则站在更大的层面考虑「业务要不要做」并对业务和团队负责。决策决定的考量纳入了更多全局的、长远的因素,如业务对公司的帮助、与公司战略匹配情况、市场竞争分析等;团队管理上会更侧重团队成长和文化建设,不偏不倚地将业务的蛋糕做大。
总的看来,每个阶段的成长都是不断务虚的过程。 从纯粹、单一的技术视角开始,逐渐融合更多基于业务的思考、团队搭建和文化构建等等更虚的东西。
二、技术专家是冲锋小队,技术管理是教练
程序员的成长路径通常分为技术专家和技术管理两种。简单理解,技术专家就是战场上的一个冲锋小队:单体爆发能力强、有冲劲、能够吸引同类一起冲锋陷阵。他们的实力强劲,可以摧毁很多坚固的堡垒,歼灭精锐小队。
技术管理则像球队中的教练。 他不再冲在一线奋勇作战,而是赋能团队,因材施教,让团队发挥出最大的作用。
技术管理的职责包括平日练兵——提升团队的能力、根据成员特点将其放到正确的位置上,并且有意识地提升每个人的特色和能力特长;同时要为团队扫清障碍,提供合适的内部和外部资源,让团队有更合适的武器和工具,进而让团队发挥全部的力量。
01 技术专家的能力模型:专业深耕 业务理解 开放包容
技术专家首先肯定需要有足够优秀的专业能力,需要在技术领域深耕,持续地提升技术实力。
其次是要有业务理解能力。技术专家要理解业务、懂业务,而不能只是做技术,而且理解业务和理解需求还不一样。业务是你/公司正在做的产品或者提供的服务,不是一个单点的需求。理解业务的本质是要理解用户在实际使用中,如何通过产品完成一系列复杂的动作,实现使用目标。
一个优秀的技术专家必须要从用户实际使用的角度理解整个业务逻辑,从产品出发设计更好的解决方案。技术专家需要将需求背后更深层的东西理解充分,否则就会对设计方案产生影响。
最后,技术专家要有开放的心态,包含三层意思:
第一,对内保持开放。 技术专家要接纳内部的声音,其他成员总能接触到你不熟悉的领域知识。
第二,对新兴技术保持开放。 技术专家要避免领域深耕带来的「拥挤效应」,更主动地接受新鲜的技术或项目,不要排斥利于问题解决的新东西。
第三,对挑战和压力保持开放。 被予以瓶颈突破和困境破局等重任时,要勇于承担挑战和责任,主动地想办法解决问题,更开放地接纳和化解重任之下的压力。
02 技术管理的硬实力:技术实力和业务理解力
技术管理要用掌握的技术知识和能力,提高团队效率,完成目标并为结果负责。虽然研发团队并不要求技术管理要具备非常优秀的技术深度,但也不能完全不懂技术,至少要有能力评估技术方案的可行性或指导团队解决技术难题。
现在之所以习惯提拔技术实力前沿的工程师为技术管理,是因为大家反感「外行指导内行」。在实际中,对技术了解不够深入的技术管理,应该主动授权团队中的技术骨干提供专业意见,以弥补自身在技术层面的不足,更好地指导和带领团队
对于技术 Leader 和 C-level 而言,他们的硬实力主要来自对业务的充分理解:综合考量外部环境、市场环境、竞争分析、内部协作等等,理顺整个产品的商业逻辑。对技术管理者而言,业务理解力是不可或缺的硬实力之一
03 技术管理的软实力:广度 前瞻 建设 识人 善谈 责任
技术管理的软实力本质上就是团队的领导力,可以细分成技术领导力和管理领导力两种。
· 技术领导力
技术领导力是通过技术权威产生的影响力赢得的成员支持与信任。出于各种原因和牵绊,技术管理的技术权威会随着代码能力的下降而降低,而弥补技术权威缺失有两种办法:
第一,用技术广度弥补技术深度。 技术实力包含技术深度和技术广度,如果无法持续纵深代码能力,那么横向拓展技术的广度,学习和掌握更多的领域知识和最新技术,也能在团队遇到困难时提供可行的解决办法,建立领导权威。
第二,培养技术前瞻性。 技术管理要对决策负责,对团队前进方向负责。提高技术前瞻性,为团队提供正确的方向指导,尽可能降低试错成本,也能让团队信服。
· 管理领导力
管理领导力就是常规意义上的团队领导力,前面提到的「为团队提供合适的支持」、「因材施教地实施人才培养」都是建立管理领导力的方式。管理领导力还可以来自以下四个方面。
第一,体系搭建能力。 技术管理要有团队体系搭建的能力,能够根据业务的诉求,做出正确的排兵布阵,更系统地完成组织规划与建设。
第二,招聘能力。 为团队选择最合适的成员,更高效地完成目标也是技术管理的重要职责。管理者总是花很多时间找人、看人,因此,技术管理一定要锻炼识别千里马的「火眼金睛」。
第三,沟通能力。 与技术问题不同,涉及人的问题往往更复杂。技术管理要能够及时识别成员的情绪波动、团队的异常状态,做出适当的干预和调和。良好的沟通能力会加速紧密团队的建成。
第四,主动承担。 技术管理一定要主动承担风险和失败的责任,顶住来自上层或业务的压力,将功劳与奖赏分给成员,将压力和责任扛起来,替团队成员负重前行。
三、程序员的能力培养:清晰表达 做事靠谱 自我营销
无论深耕成为技术专家,还是多维发展成为技术管理,程序员都要不断地强化技术实力;同时,建议尽早地培养以下能力,构筑竞争壁垒以增强职场优势。
首先,提高表达能力。清晰地表达诉求、提出问题,让别人快速掌握并理解你的意图。
其次,增强责任意识:工作要负责,做事要靠谱,承诺要做到。尤其是工作上不清楚的地方,一定要主动地开口询问清楚,不要担心叨扰别人,也不要放不下面子提问。
最后,锻炼自我营销能力。建立内部影响力就是在提升领导力,因此要主动地在内部营销自己,让更多的成员熟悉你。将心得、总结、技术难题解答等制成公众号或个人博客,大胆地展示你的思考,不要担心内容深度不够,持之以恒,技术影响力就会慢慢建立起来;内部的公开分享也能让团队更快地认识你。
最重要的一点,不要吝啬提供帮助。多多地帮助别人解决问题,积极地寻找锻炼机会,与成员建立起紧密的联系;各种难题的解答也会反过来充实你的知识体系,帮助你快速实现能力提升。
任正非在近日的一篇文章中写道:“全球经济持续衰退,加上疫情影响,消费能力会大幅下降,对我们(华为)产生不仅是供应的压力,还有市场的压力。2023年甚至到2025年,一定要把活下来作为最主要的纲领。活下来、有质量地活下来。”
外部环境总是起起伏伏,但不论前路如何,我们总要坚持做「正确的事」,将正确做到极致;持空杯心态,追逐最好的自己。
了解更多敏捷开发、项目管理、行业动态等消息,关注我们 LigaAI@oschina 或点击LigaAI - 新一代智能研发协作平台,在线申请体验我们的产品。