17611538698
webmaster@21cto.com

CTO 如何保持技术敏感的六个技巧

领导力 0 1675 2022-08-15 10:44:34

图片


有一天,我决定离开个人贡献者(IC)角色,转而担任技术领导者角色。


当时,我觉得自己已经在多个计算机工程学科中积累足够的知识与技术深度,开始想尝试技术领导力。


和很多人一样,我做出这个选择的原因也有很多。我认为最明显的是,在我所在的公司中获得更多的权力、更多的声望、更多的报酬还有更大的影响力。还有比我更坦诚的吗?


但我进入领导层时发现,发现情况却并非如此。


个人贡献者 IC 也有很大的影响力和力量——至少在我工作过的公司是这样。


IC 和技术领导轨道往往相互反映。IC 轨道通常包括工程师、高级工程师、首席工程师和杰出工程师。同时,工程经理、高级经理、总监、副总裁和首席技术官 (CTO) 通常处于技术领导的轨道。


我开始意识到,这两个领域具有相同的声望与权力——有时,实际上 IC 比我们这些担任领导职务的人更有权力。


当我再次成为一家大型企业的 CTO,因此要跟上正在发生的事务,保持技术领先性是一个相当大的挑战。我认为这对于卓越的软件工程领导者来说是当务之急,因为这有助于保持技术决策能力,有助于在整个企业或组织中建立信任。


但是当你进入领导或管理层时,人员问题将占用大量时间。你必须进行绩效评估,你必须进行一对一面试,你必须召开员工会议,你必须花时间建立组织内和组织间的关系。你还要写博客、电子邮件和通告信息。你必须发展技术职业阶梯并建立工程技术团队。事实是,如果你选择领导这个轨道,你最终的技术含量会降低——这是现实没有办法。


这就是为什么选择进入领导层必须是有意为之。你必须喜欢管理人,你不能一觉醒来就认为自己在领导轨道上的技术水平要比 IC 高——日历上没有足够的时间来保持同样水平的技术深度和管理大型组织。


你还需要考虑所在团队的人员动态。


例如,在你成为领导者之前,你要考虑那些曾经是朋友和同事的人。当你开始尝试,关系就会不同。你可能需要改变他们的职业,改变他们的角色,甚至管理他们。成为领导者意味着能以专业的方式做到位,尊重他们的技术能力,并能够真正尊重他人。


在我进入领导层之前,我充分考虑了这些情况——我询问了来找我的 IC 人员,详细咨询他们将如何处理这些情况。


这是我作为技术领导者的真正想法:


我如何获得团队中比我技术更强的聪明人的信任,如何领导他们?我曾经在大型复杂项目上做编码工作。也曾在全球多个国家/地区配置网络,已经配置许多复杂并且技术含量高的系统。


但是我现在领导的团队并不知晓我的背景,也不知道我的技术深度。如果我保持一定程度的技术可信度,我的团队会更足够理解与尊重我,愿意遵循我想带领他们走向公司既定的战略、愿景与轨道。


我已经做出选择:我希望帮助想成为 CTO 的技术人员,既能做出技术决策,又能在技术上与自己的团队合作。当然,我需要在这种愿望与成为伟大领袖所需的时间之间取得平衡。这并不容易,但我在此过程中学到了一些东西,这些能够保持技术领导者的技术。


1.做一个贪婪的学习者


在任何指定的时间,我的办公桌旁边都有一摞书和不少打开的浏览器选项卡,其中包含我想读的博客和文章。如果你不喜欢阅读与学习,CTO 的工作将是一条无比艰难的道路。


如果你确实没有时间阅读,送你一个技巧:以 1.5-2 倍的速度收听播客。无论哪种方式,你都需要能够在会议之外拿到另外的数据,另外必须学会快速吸收信息。


对组织中的工作方式有疑问?去阅读源代码,去阅读文档。我花了很多时间在 Github 上阅读。我阅读了Commit,阅读了文档,查看了测试结果,看看团队是否在正确的时间正确地发布了东西。


你不仅在学习自己需要学习的东西,也将看到整个团队的编码和文档模式,并能够分享你对最佳实践的想法。最重要的是,你将及时了解代码库中的最佳编码实践。


一个额外的小提示:向你的同龄人询问你每个月应该阅读的一两件事。总是会有新的东西要学习,有新的信息来源要发现。


2. 将代码作为一种爱好


我不想告诉你,当你登上 CTO 这道阶梯时,不应该将新代码推向生产环境。


如果你的公司并不是很大,你可能会亲力亲为。但请你相信我,一家大公司不希望 CTO 不停地将代码推向生产环境。


作为 CTO,我可以修复Bug并深入研究 repos,但我定期将新代码推送到生产环境的那一天,这对公司来说可能不是一个好消息。


正如上面所说的,当你晋升领导层时,需要花时间解决人的问题,这不允许你尽可能多地在代码中保持一致。作为领导者,你需要知道如何编好代码并及时了解更新的开发工具。


在 Shopify,我们使用称为 Spin 工具迁移到基于云的开发环境。


这意味着什么?为了编写代码并进入 Github 存储库。我们打开一个终端,然后输入:


spin up shopify


这会在我们的云主机中配置一个实例,检查我们最大的存储库,并设置运行时权限。使用合适的 Github 令牌,我们连接到存储库,并让你的开发实例启动并运行。这大约需要 30 秒。

    

接下来键入的下一个命令是:


spin code


它会直接调出 VS Code(或你选择的其它代码编辑器),将它直接放入 repo,然后你就可以立即编写代码了。


作为一种爱好,我经常经历这个过程。


我还使用基于云的环境来让自己了解我们的团队正在使用的工具,我还不定期出现在 Shopify 生产存储库中的副项目上进行编码。


作为技术领导者,我们仍然需要让编码成为自己乐趣的一部分,成为自己了解开发人员工具集、了解持续集成 (CI) 测试如何运行、持续部署 (CD) 如何运行的一部分,以及如何推动生产。你需要了解工程师们所看到的开发环境,因为它可以让你深入了解他们的日常工作,同时让自己保持技术先进性。


3. 参加黑客马拉松


我在 Shopify 内部和公司外部都参加了黑客马拉松。我最近参加了由 Shopify 在北美赞助的名为Technovation的活动。这是一个面向女孩和年轻女性(8 至 18 岁)的项目,她们以团队形式聚集在一起,开发解决现实问题的应用程序。


今年,我还报名了代码审查活动,并作为评委对项目进行评分。然后得分最高的项目将进入一系列全球季后赛,直到选出决赛选手和地区获胜者。


Technovation 确是一项很棒的计划,我喜欢支持世界各地对 STEM 教育感兴趣的女孩与年轻女性。 


我们还在 Shopify 内部举办了名为 Hack Days 的黑客马拉松。


因为我不经常动手编码,但我加入了各种项目并与团队合作,试图弄清楚我们如何为商家打造最好的产品和创新。我还参与审查数十个项目,评判顶级项目,并向整个组织的团队提供反馈。在 Hack Days 中,我们都在一起,成为该计划的一部分是另一个技巧,这样可以保持技术领先并了解未来的创新。 


4.招聘好人


管理一个技术团队需要大量的时间。如果让错误的人担任错误的角色,那么领导需要更多的时间填坑。你将不得不处理组织中的人事变动和领导力缺口。


接下来你可能很想快速填补这些空白,可能想走捷径,因为招聘需要时间和精力。但是,你真的需要花时间好好招聘。当你招聘得很好并且与团队保持良好的一致性时,你会发现他们会专注于所在组织的正确目标。 


我是否每次都正确雇用?不是的,但是我会花时间有意招聘。如果你雇用错误的人,你的新员工可能不会专注于正确的技术,可能不会专注于正确的扩展,可能不了解业务的优先级。如果发生这种情况,想想你应该做到什么?你不是在阅读博客或收听播客,你不是一边编码,也不是参加黑客马拉松。相反,你应该正在进行人员绩效评估,并安排与 HR 的视频会议,以确保你提供正确的反馈。如果它们瞄准正确,那么你就不需要花时间进行瞄准——这意味着你可以花更多时间保持技术先进性。 


良好的招聘和保持技术的目标还有另一个好处——优秀的技术人员可能比你阅读他们的信息更快地教你一些东西。


当我招聘时,我会可以寻找技术精湛的技术人物。


例如,Shopify 在 WebAssembly 上下了大赌注,这是一种用于基于堆栈的虚拟机二进制指令格式,因此我们聘请了精通该技术的工程师。


我们还有几个Rails 核心团队成员和提交者 在 Shopify 工作。


当我需要了解有关这些技术(以及我们在此处使用的数百种其他技术)的更多详细信息时,我就阅读 Slack 频道、加入技术评论、查看技术项目简介,或者与更技术的人共度几分钟比我在这个主题上更快地了解技术细节。而且团队中优秀的技术成员喜欢谈论他们的项目并分享技术细节。


5. 组建一个技术顾问团队


另外,我发现拥有一支技术顾问团队非常有用。


这是我作为 CTO 保持技术性的另一种方式——本质上是对技术主题的有限众包。虽然招聘并在内部利用这些人很有用,但对技术的发展方向有更广泛的看法将是无价的。


我有一个私人 Slack 频道,其中有大约 20 位 Shopify 内部和外部高级工程主管。我使用该渠道提出问题,对我不知道的事情感到脆弱,并获得了针对特定行业的指导。这是一个我可以提出任何问题并尝试快速掌握技术的地方。在这个 Slack 频道中,我可能会询问我从团队那里听到的一项新技术、一项在行业中看起来很热门的即将推出的技术,亦或者有时是关于大规模使用给定技术的一些非常具体的问题。这个非正式团队的参与规则非常简单——提出问题、提供帮助与分享。


6.清除错误和积压


作为技术领导者,你还要必须管理运营问题。停机、中断、Bug和项目积压将扼杀你的良好行动计划。


这些事情都会让你陷入运行事件的杂草中,通过补救行动,让团队负责,以避免重复相同的操作问题。


作为首席技术官,我试图确保团队定期整理他们的任务积压工作。我确保了解最新事件中的补救措施,并积极寻求解决突出问题的方法。我确保以一种让他们既能创新又不会被技术债务困住的方式来驱动研发团队。


如果你也正在推动一个技术团队,并且正准备推出产品,而且你没有技术债务,那么你可以专注于创新。但是一旦你推出产品、新功能或服务,不可避免地会遭遇运营的相关问题。然后你需要思考,“我如何平衡运营问题和创新?” 如果你忽略运营问题,它们将开始消耗越来越多的时间。


到此,你不再是技术领导者——你正在成为一名战术消防员。 


领先处理积压中的Bug和补救项目,为团队分配时间来处理创新和技术债务,对于让自己专注于成为出色技术领导者绝对至关重要。


小结


作为 CTO 保持技术领先性,这并不是一件容易的事。花一些时间编码和审查源代码,花时间在黑客马拉松中玩得更开心,雇用更好的人,然后建立值得信赖的顾问团队。


作者:Allan Leinwand
编辑:洛逸

说明:Allan Leinwand 是 Shopify 首席技术官,负责领导工程和数据团队。

Allan 之前是 Slack 的工程高级副总裁和 ServiceNow 的首席技术官。他在多家公司共同创立并担任高级领导职务,编写书籍,并作为风险投资人冒险七年。他热衷于帮助 Shopify 成为适合所有人的最佳电子商务平台。


评论