「轻阅读」“来我公司做技术总监吧” “要写代码吗?” “不写代码你来干嘛?”

技术小白 2019-05-28 15:08:23 ⋅ 871 阅读

作者:黄哲铿/《技术管理之巅》作者、特约撰稿人


标题来源于一段真实的对话,老赵,小李都是我的朋友,我作为中间人介绍他们认识,我们约在上海码农圣地--张江某咖啡馆。


老赵,某创业公司老板,已经B轮融资,技术团队30人左右,已经难以支撑业务的发展,迭代速度缓慢、系统经常宕机影响到了业务,老赵几次三番委托我给他物色一位技术总监,解决技术团队目前的问题。

小李,某点评网高级技术经理,毕业后就一直做技术,5年开发+2年管理经验,目前负责60人的技术团队,在我看来是非常合适的人选。


老赵一上来,咔咔咔画了张大饼,业务如何如何正在风口上,公司如何如何受到资本青睐,根本不缺钱,现阶段重点把技术和业务理顺了,再到资本市场搞票大的......

小李是比较典型的技术男,人狠话不多,坐在一边听,不时的点头,我也分不清他是真的感兴趣,还是在秀演技,总之我听得云里雾里快睡着了,猛喝了两口咖啡,提振下精神。


我看了看表,一小时过去了,老赵还没有停下来的意思,说真的,创业太委屈老赵了,就凭这口才要是改说单口相声,早就冲出张江镇,火遍高桥镇了。

我说,老赵啊,已经说了一个多小时了,差不多得啦,都是自已人,直奔主题吧。

老赵正讲到兴头上,被我打断有点不高兴,又不好意思发作,毕竟小李在场,大家都是有朋友圈的人,待会还要晒合照秀友谊的。

老赵说,哦,介绍得也差不多了,反正就这么个情况,小李啊,来我公司做技术总监吧,我们谈得挺投机的,可以说是一见如故,你是有能力的人,我能感觉到你内心有一团火。

我没有提醒老赵,这一个小时里,小李总共说了三句话:“嗯”、“啊”、“哦”

小李说,赵总,我想问一下,您对技术总监的期望是什么样的?比如偏管理一些,还是偏技术一些,偏技术的话,需不需要写代码,可以说得具体一点。

老赵回答,技术总监当然要偏技术啊,不写代码你来干嘛?

被老赵这么一怼,小李竟然无言以对,或者是话不投机吧,小李端起咖啡,自顾自地喝起来,老赵又聊了一会梦想啥的,也自觉没趣,没过一会就走了。

老赵走后,小李话开始多起来,每个IT男闷骚的外表下,都有一颗火热的心。


小李说,赵总这个事,看来我是帮不上忙了。我说,没事,这种事情是要看缘分的,可能是缘分没到吧。


小李接着说,我们难得见一面,好好聊聊,其实我一直有个困惑,我们做技术管理的,写代码的时间越来越少,手越来越生疏,但是参与了更多的技术评审和技术决策,似乎是很矛盾的事情。

小李拨弄着咖啡杯里的小勺子说,我时常感到很焦虑,自已技术能力越来越差,日常管理工作又非常琐碎,没时间提升技术,会不会有一天年龄大了,失去了价值或性价比,就被行业淘汰了。

01 技术管理者的核心能力是什么?

我一边搅拌着咖啡,一边对小李说,其实你说的是两个问题,第一,技术管理者的核心能力是什么?第二,技术工程师和技术管理者的技术能力有什么差别?

我喝了一口咖啡接着说,先说第一个问题,技术管理者的核心能力是什么,说实话这也是曾经困扰我的问题,直到有一次上MBA课的时候,教授的一句话让我一下子通透了:

管理者的核心能力是什么?是职业判断力。

我继续说到,2013年阿里巴巴的张勇看到了移动互联网的未来,提出“All in移动”,帮助淘宝顺利拿到移动互联网的船票,这是职业判断力。

海尔张瑞敏,在互联网时代来临时,提出“人单合一”模式,革自已的命,企业获得了重生;在万众创业的时代,提出“创客模式”,把企业变成创客平台,释放了企业的创新力,这是职业判断力。

同样的道理,技术管理者的核心能力,就是技术判断力。技术判断力简单说来,就是某个技术项目“要不要做”,要做的话“能不能实现”,是否适合现在做,还要考虑技术风险、项目管理复杂度、成本等等,已经远远超出了写代码的范畴。

02  技术工程师和技术管理者的技术能力有什么差别?

我接着说,第二个问题,技术工程师和技术管理者的技术能力有什么差别?简单说,技术工程师的技术能力,就是写代码,做具体的技术实现。技术管理者的技术能力,是技术判断力,通过在技术领域和非技术领域的长期积累,培养起来的技术决策能力。

小李有所感悟,哦,原来我一直把技术工程师的技术能力,跟技术管理者的技术能力混为一谈了,这样看来,讨论技术总监应不应该写代码,是非常可笑的。

我说,这个要分场景来看,比如创业团队,缺乏资源,技术负责人当然事必躬亲,动手写代码,当团队慢慢壮大,技术负责人就要把重点放在做技术决策上面。

小李接着说,也就是说要看团队所处的阶段和团队规模,以及技术负责人的角色定位,来决定他的工作内容,究竟是做技术实现,还是做技术决策,还是两者兼而有之。

我点点头,表示赞同,技术总监或CTO是否写代码,离开具体场景的讨论是没有任何意义的。

小李接着问,那赶快说说,技术判断力都包含哪些方面的事情?技术管理者又该如何提升技术判断力?


03 技术判断力,都判断哪些方面的事情?

我放下了手中的咖啡杯说到,技术判断力主要体现在三个方面:

第一,对结果的判断。即这个事情做还是不做,用什么样的指标来衡量它的好与坏,比如:开发人员提出要用Flutter对现有App进行重构,你要给出一个判断做还是不做。技术人员考虑这个提案的出发点也许是想玩一玩新技术,给自已的简历上加分,而你作为技术管理者,考虑的是现阶段公司App的关键问题是什么?假设说是App稳定性、开发速度不够快,那么Flutter作为一种新技术框架,能不能解决现有的问题?如果不能,那么现在引入它也许还不是最好的时候,可以安排一两个技术人员做预研,开始关注这项技术。

小李感慨到,原来技术工程师跟技术管理者对同一个问题的思考角度和维度差别这么大。

我回答,没错,我们继续往下说。


第二,对技术方案的判断。即对技术可行性、可维护性、成本收益等方面进行判断,通常在技术方案评审环节给团队进行指导。比如这个方案是否具备技术可扩展性,能不能为公司建立起技术壁垒,技术框架里有没有详细日志记录,出现线上故障是否有预警,并且提供详细的错误日志进行分析,选择这项技术的机会成本如何?所谓机会成本,即选择这项技术就会放弃别一项技术,有没有可能另一项技术的收益更大?

小李点点头说,技术管理者对技术方案的判断,也比技术工程师思考得更深、更全面,技术工程师或许只考虑,好不好实现,而技术管理者要确保方向上不出现大的偏差。

我说,是的,我们继续说第三点。

第三,对风险的判断。包括技术风险、项目执行风险、团队风险等方面。技术管理者利用自己的经验、思考分析、团队讨论等手段,识别出主要的风险,并采取措施进行规避。

小李很有感触的说,原来我平时做的技术评审、项目回顾、技术方案规划等工作,就是在做技术判断,我的技术能力并没有变差,因为我作为技术管理者,技术判断力在日常工作中,得到了持续的锻炼和提升。

我点头表示赞同。

小李继续问,那快说说如何提升自己的技术判断力,有哪些方法?


04 如何提升自已的技术判断力?

我喝了一口咖啡继续说,新技术管理者的技术判断力,主要来源于之前写代码和做项目的经验积累,这时候要做好知识迁移,将技术工程师的经验认知,转换成技术管理者技术判断的认知。

小李露出一丝微笑,仿佛回忆起刚开始做管理时的情形。

我继续说,技术判断力的提升,主要有四个方面。

第一,团队日常技术和产品工作汇报。团队在汇报技术和产品进展时,是获取信息反馈,验证技术判断的大好时机,看看自己之前的技术决策产生哪些影响,有无需要调整的地方,也可以学到下属们的思考和经验,及时更新自己的技术和产品认知。

小李说,是的,我非常重视团队的汇报,并从中学习。

我表示赞同,我接着说。


第二,参与技术方案评审。小到每次code review,大到系统整体方案评审,都要尽量参与。尤其是大型系统整体架构评审,这是系统化提升技术判断力最好的机会,架构师的讲解,包括架构设计的逻辑,每种技术的特性等等,结合自己的理解和经验给团队反馈,架构判断能力也得到提升。


第三,主持系统顶层设计和规划。技术管理者可直接担任或主持系统顶层设计规划,业务架构规划、系统各层的划分、子系统之间的数据交互协议、技术框架选型、系统容量规划等等,从技术整体架构进行把控,再由团队进一步展开做更细的规划。

小李说,所以大的技术方案设计和规划,还是要参与的。

我说,没错,不要错过每一个提升技术判断力的机会。

第四,持续学习新技术。从事技术管理工作,并不是说完全丢弃技术,只是放弃了大部份的代码工作,但是新技术的学习是不能停止的,比如人工智能的技术框架、机器学习的几种模式以及擅长解决哪些问题。

再比如区块链几种共识算法的特点、实现原理、加密算法、记账方式差异等等。关注的是这项技术解决什么问题、实现的原理和机制,而不是如何熟练使用这个新技术写Hello World,当然写一些demo加深理解是有必要的。

小李笑着说,跟你这么一聊我也通透了。说着,一边搅拌着咖啡,一边望着窗外陷入了思考。

---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦




全部评论: 0

    我有话说:

    「转发」数据库读分离这个坑,应该踩过

    作者:楼下小黑哥原文:https://www.cnblogs.com/goodAndyxublog/p/14106692.htmlHello,大家好!是楼下小黑哥,了~ 今天分享一下刚入职

    Google技术了解Google最新发布的JS代码规范 的最佳实践

    Google为了那些还熟悉代码规范的人发布了一个JS代码规范。其中列出了编写简洁易懂的代码所应该的最佳实践。

    淘宝开源代码质量检测工具!

    好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目

    阅读」“完”和“好”的区别

    在工作中,“完”和“好”虽然仅一字之差,但前者只是完成了某项工作,而后者则不仅是完成了工作还有一个好的结

    总结】前端5大常见设计模式,代码一看就懂!

    代码示例掌握前端5大设计模式

    「开源资讯」陌陌安全团队开源Java静态代码审计插件

    陌陌安全本次开源的Java静态代码安全审计插件,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。 此插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险

    刚刚入职新公司,为什么老大让用Lombok?

    刚刚入职一家新的公司,在业务的时候引入了Lombok 结果在老大在代码审查的时候在微信群里截图说让在项目里面用Lombok,说是会带来各种问题,大家都还在用

    阅读」为什么在微服务设计的时候需要DDD?

    的设计蓝图里为什么没有看到DDD的影子呢?

    阅读】为什么越来越多的系统在服务化?

    脱离业务实际情况的架构都是耍流氓,所以是所有系统都必须服务化,也不要为了服务化而服务化。

    阅读」阿里云-开放平台高级技术家教搭建微服务架构的四大金刚利器

    孔凡勇,花名云狄,阿里云-开放平台高级技术家,对高并发、高性能、高可用、可伸缩的分布式系统架构设计有丰富经验,Cloud Native坚定拥护者,坚守开发一线打磨匠艺的架构师。

    「强烈推荐」这是看过最接“地气”的代码问题与重构实践

      这个文章是因为前段时间确实因为公司的业务开发太忙太紧,所有开发都处在于加班赶项目,并且加入的新人较多造成了一系列代码不可控的质量问题。 文章针对这段时间代码出现的各种各样的问题

    后端Coder如何代码设计?

    来源:http://r6d.cn/C5Ja 说明:生鲜电商属于一个软件的产品,那么如何代码设计呢?代码设计,是程序员项目时,在coding之前非常重要的一个步骤,可以说关系到整个系统

    阅读」移动端适配必须掌握的基本概念和适配方案

    随着技术的发展,移动设备越来越流行,并且同设备间屏幕尺寸和屏幕像素的差异,移动端开发面临着多分辨率适配的问题。

    阅读」美团开源的QPS压测结果近5w/s的分布式ID生成器leaf的调试实战

    大型互联网项目的ID保证全局唯一,一般在用数据库自带的id自增了,一般都会用分布式id生成器。