即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

IT程序员 or 超级英雄?你具备哪种编程超能力?

微信 InfoQ 47℃ 0评论

不同的coder有着各异的习惯与能力,有人总结了一个工程团队必须具备的四种超能力,InfoQ的朋友们,你对应的是哪个超级英雄呢?

Christopher Nolan主管和Looker创始人Lloyd Tabb之间并没有什么特别的联系,但是这两个人的世界观却很一致。Tabb是成功的创业者,他没有采用常规标准,而是用超级英雄的方法对其创业公司开发团队的工程师进行了分类。Nolan也借用《黑暗骑士》三部曲中的英雄和反英雄人物为自己团队的工程师分门别类,就像是Tabb对自己工程团队所做的那样。

除了计算机之外,同样吸引Tabb注意的是那些为计算机编写指令的人:工程师。同样也作为工程师,对工程师的研究既是对自我的反省,也是对能力的提升。在这次采访中,Tabb概述了一个工程团队必须具备的四种超级能力,并且分享了如何最大程度地认清和引导自己的能力。另外,他还介绍了一名工程领导者该有的形象,那就是领导者必须要控制住手下拥有非凡能力的工程师们,但是又不能限制他们的能力发挥。Tabb将要与自己的明星程序员和开发团队一起传授和技术人才的相处之道。

潜水侠 AQUAMAN

潜水侠的超能力是可以深入挖掘。这位工程师是用来解决大问题的。他可能好几个星期不写代码,但是他会通过对应用程序界面(API)的深入分析发现并处理潜在的问题。这个超级英雄要足够灵活并且拥有多种技术,才能穿透运营系统、数据库和控制器来挖掘出一个问题。他的这种不可多得的能力能够理解这些系统层次中的每一条代码,从而预测出可能出现的问题。

Tabb讲述道,“早些时候,因为我们将Looker建立在JRuby(Rudy Java VM)之上,导致其在SSL层出现了一个漏洞。我们的潜水侠花了一个月时间仔细挖掘JRudy,接着通过Java VM深入到SSL网络层。如果没有他屏住呼吸追踪到底发现了那个SSL漏洞,我们就完了。Looker会因为这个漏洞偶尔冻结,如果这样,我们很难长久维系整个公司。是他坚持下去发现了那个漏洞,然后将其修复。”

不过,潜水侠最不愿意做的事情莫过于建立标准的网站,比如说建一个电子书商务网站的基本功能。他们喜欢的是挑战。Tabb说,“他们并不关心用户界面或是用户体验,他们不在乎产品的外观或是用户的看法。他们关注的就是产品的深层次的工作机理。在Looker的团队中,我们的工作是分开的。一部分人写好自己的web服务器之后,还需要一个内行的潜水员来帮我们在这片水域导航。”

潜水侠能力分析

动力来源:深层次的问题。软件本质上的工作原理,有哪些做不到的功能。

优势:在解决非常棘手问题方面十分擅长;对API的所有数据层都非常了解。

行为:关注点十分奇怪,有着异于常人的毅力;可能几个星期不写代码。

管理办法:对其工作重质不重量;不用截止期限和完成产品数量来衡量。

滥用:这类英雄需要的是深层次的问题。如果没有什么深层次的问题,那么雇用他们不是个合适的选择。

失败模式:潜水不能缺少空气。请确保他有足够的自由空间和氧气(也就是资源),只有这样,他才能维持他的潜水模式。

工程师英雄都有其独特的超能力,但是共同的弱点就是:能力的滥用

闪电侠 The Flash

闪电侠的超能力就是神速。在众多工程师当中,闪电侠知道她的动力就是做展示。她热爱迅速将作品展示给众人的刺激感。“看看我做了什么”,这是她的内心的呼唤,最爱的时刻就是可以说出这句话的时候。当其他人都还在讨论什么能做什么不能做的时候,闪电侠已经迅速做好了原型准备展示了。这种展示可能不会是完美的,但也确实是有用的。这是因为她坚信做出来具体的东西才是激发其潜能并理解其功能的最好途径。

Tabb说道,“顾名思义,闪电侠感兴趣的是速度。她可以坐下来开始写代码,然后很快的把东西做出来。最终,她带领整个团队向前进发并且顺利展示。我合作过的闪电侠们可以在当天下午听到一个问题,第二天早上就演示出解决方案。他们都是通宵工作者,而且都拥有自己的百宝箱。我知道很多闪电侠都在使用Tcl,因为它对代码只进行一次解析,这样会大大加快速度;或者使用Perl来进行实时编程。他们为了速度可以不惜一切代价。”

在工程师行业中,闪电侠们的长枪就是技巧。Tabb说,“他们的武器有可能很锋利,也有可能有些迟钝,但毫无疑问他们是最快的。这就意味着在闪电侠的身后需要有一个团队可以在他们行动过后收拾战场。”

闪电侠能力分析:

动力来源:速度和展示。将软件展示给终端用户。他们更多关注的不是产品的工作原理,而是产品本身。

优势:能够以极快的速度完成工作或是阅读他人的代码。

行为:以难以置信的速度分配工作;编写代码的速度极快。

管理办法:让他们打头阵或是快速进行代码测试;在可控范围内创建结构或环境。

滥用:这类超级英雄需要的是站在最前头做先锋。不要把他们放在后方写程序。

失败模式:开发团队可能会疲于应对闪电侠的飞速代码,并且不再想和她公事。如果问题得不到很好解决,可能会导致闪电侠造成的混乱大过她的成就。

当别人还在探讨蓝图时,闪电侠已经开始构建房屋地基了。拥有建筑师的头脑,但却有承包商的本能,这类工程师喜欢实实在在的看见成效。

神父 The Priest

神父的超能力是正义。代码的顺序和质量是神父一直的追求。他将一个API从根本上视作一份法律合同,可以预测用户行为,从而编写出用户与软件的交互。他可以看到用户通过软件进行基于某种规则的请求和响应之间的交互。一位伟大的神父可以清理混乱代码,使得整个代码变得易于理解,这种做法不仅可以使他获得成就感,更可以重建他心中的秩序。

Tabb说,“相比较来说,闪电侠感兴趣的是程序的功能,而神父是以一种高姿态真正热爱编程。他热爱审核请求和代码审核这样的工作,既能完善他认为的秩序感,又可以使得整个代码变得更加易于理解。似乎这种工作不能算得上是在加快进程,但是他也确实使得工作变得更加有效,因为和闪电侠或是其他工程师相比,他的代码在最开始就不会有什么毛病。”

每个程序员心中都有一种秩序感,但是这种感觉只是学术层面上的,并不实用。而神父心中的秩序感是他工作的唯一准则。“然而,这种对秩序的执着也可能会变成一种固执,尤其是对于神父来说,毕竟他拥有至高无上的权威。这种时候,这个超级英雄就变成了超级反派,被我们称为狂热者。这种超级反派会一直反对各种框架的构建,以这种方式去破坏团队。我们曾经就遇到过一个神父变异成的狂热者,他对团队的破坏使得我们不得不重新编写他的所有代码。”这种破坏是灾难性的。

最后,神父也有可能出岔子变成面点师,这类人对API有着狂热的喜爱并且过于频繁地使用它们。“面点师会用一个API编写另一个API,就像是在蛋糕上涂抹一层层不必要的叠加。和狂热者不同,面点师追求的不是自我和真理,而是用工具解决每一个问题。手中有一个锤子之后,眼前的一切看起来都像是钉子。”

神父能力分析

动力来源:响应能力。使得软件响应变得更加便捷。

优势:拥有很强的抽象能力,善于创建完美的API。

行为:关注点与常人不同,智力非凡;有时候会有怪脾气,会拒绝编写某些代码。

管理办法:让他们利用结构优先处理。给他们跨职能工作机会,允许他们和其他工程师合作进行系统验证。

滥用:不要让他们制作原型或是快速周转的项目(这些工作最好交给闪电侠)

失败模式:神父变成恶棍。有两种主要的类型:狂热者和面点师。第一种是因为自我膨胀对框架反应过激;第二种会使用他唯一的工具——API解决一切问题。

斯皮尔伯格 The Spielberg

斯皮尔伯格的超能力是心灵感应。有了科技的帮助之后,这种超能力可以让软件之间轻松交互。Tabb说,“这种类型的工程师当中有一部分人研究过电影。他们的灵感来源就是电影的叙事形式,然后将这种模式带回到自己的工作中。当他们看着电脑屏幕时,电脑以许多不同的方式与他们进行着交流。

比如说,他们看到Google Docs中就有一个共享按钮,作为其属性的一种。这个按钮有锁定功能,这就意味着你可以选择共享,也可以不共享。工程师大胆地将其设置为蓝色,用来吸引更多的关注和交流,而其他像是“粗体“和”斜体“这样的按钮就很小,而且还是传统的灰色。这些工程师的动力来源就是这种细小的差别。”

斯皮尔伯格喜欢制作软件,但是仅仅是在这些软件可以进行很好的交互并且可以达到期望功能的时候。每个组件都必须指向正确,无论是明示还是暗示。Tabb说,”我记得最开始斯皮尔伯格来帮助我们改进集成开发环境(IDE)的时候,那时候它还很粗糙。但是在很短的时间内——他还是个具有闪电侠速度的斯皮尔伯格——他就使得IDE变得更加直观流畅。他对于视觉语言和计算机语言都有着自己独到的见解。我想这要是在电影里,就是利用了铺垫的手法在叙事。这是一种信号式的交流。“

斯皮尔伯格能力分析

动力来源:隐形沟通,干净简单又经过美学设计的用户界面。

优势:对软件的目的和用户需求有很到位的认识。

行为:不断提醒众人回归软件初衷和用户需求。当用户界面不符合要求时会很不舒服。

管理办法:和产品团队合作。在聘用的时候要非常的注意,不然很容易会想要解雇他。他会表现出很强的审美倾向,并且你得尊重他的观点。如果你做不到,那就不要聘用他了。

滥用:给出创意范围。不要用一个狭义的问题限制他们的思维。

失败模式:他们开始做出一些超越其设计能力的事情,并且开始变得霸道,干涉他人工作。为了避免这种情况的出现,要平衡他和团队中其他人的反馈情况。

斯皮尔伯格擅长探索软件。这不体现在用户共享的迅速普及,而是体现在按钮的蓝色设计和可锁定的功能这样的小细节上。

圣骑士(The Paladin)和工程管理的艺术

如此强大的超级英雄团队一定要有一个强大的领导。他就是工程经理,他必须要管理好这些工程师们,但是又不能限制他们的天赋。Tabb说。”优秀的工程经理们有一些共性。我认识几个这样的十分难得的人才,他们几乎个个都是圣骑士。从历史角度来看,圣骑士是查尔曼大帝法庭上的勇士;但是对那些熟悉魔兽世界的人来说,圣骑士既是勇士,又是治愈者。工程经理最重要的品质就是他必须要能够治愈他的团队。“

对于许多工程师来说,相比于创业的业务方面,编程的世界更加困难也更有吸引力,但是Tabb很好地将两者平衡了。他说,”当创业公司的业务方面和软件方面产生冲突的时候,如何将两者之间的摩擦降到最低就是工程经理的工作了。

作为一个圣骑士,他能够保证团队的完好无损,同时保护好手下工程师的能力。这项工作也需要勇敢面对权威。总有人在耳边对工程师的工作指指点点。如果这种指点是不受欢迎的,那么圣斗士需要做的就是吸收这种负能量,耸耸肩,不让团队受到这种压力,保证他们的正常工作。“

除了治愈能力之外,圣骑士必须要维持各个超级英雄之间的秩序,分配给他们不同的职权,用不同的方法管理他们。这就需要他们要正确认识到自己的权力,不滥用自己的能力并且和团队很好地协同工作。Tabb说,”对于主要的几种超级英雄有一种管理捷径,潜水侠通常独立工作,所以可以基本不去干预他的工作,但是你也必须保证他有事可做。神父和闪电侠是很难在一起工作并且彼此欣赏的。所以重要的是公开肯定他们的长处,直到他们能够做到彼此尊重。“

这一切意味着什么?

Tabb的这种超级英雄式的分类方式肯定了团队中杰出工程师们的独特才干,并且在这个过程中为他们创建了最好的环境使得他们可以最大程度上施展自身能力。讽刺的是,Tabb不知道该如何定义自己。他说在不同的时段内都是不一样的,在某种程度上他是潜水侠,但在他身上也有闪电侠的影子。但是他确信自己不是神父和斯皮尔伯格。在熟知该如何推动并且保护所有这些超级英雄们之后,他意识到其实自己是圣骑士。

他说道,“听着,我们都想要得到重用。需要肯定的是,我们的工程师们所做的都是伟大的工作。他们都是超级英雄,时常有人做出了一项足以改变我们公司未来的成就,这样的事情一直都在发生。这当中就包含了未来的发展方向,工程师们必须要认识到这点。”

“神父说过,‘我们的软件是如此的完善,我们的未来一定会变得更好,并且这种趋势会一直延续下去。’闪电侠说,‘我看到了软件领域的未来。我们可以看到这个未来,那我们就会获得灵感并且完成这一切。’斯皮尔伯格说,‘用户可以在看到那么直观的软件之后理解我们所做的一切,这就是我们的未来。’圣骑士知道,他们说的这些都是事实,都是美好的事实。”

小Q说

在中国广袤无垠的土壤和全世界最大规模的网民体量下,也孕育出了一个叫KeyboardMan的群体。KeyboardMan的能力就是:“键盘在手,天下我有”。

当然,InfoQ的用户群体是高端深度专业的高素质群体,相信键盘侠的比例应该是非常小的。那么问题来了,这么高端深度专业的你,是哪种超级英雄呢?

  • 本文翻译已获授权,原文地址为:

  • http://firstround.com/review/how-to-spot-and-magnify-the-powers-of-your-engineering-superheroes/

延展阅读(点击标题):


本文系InfoQ原创首发,未经授权谢绝转载。


由InfoQ主办的全球容器技术大会正在6折售票中,这一场为你量身打造的技术大会,议题更加丰富,讲师更加专业,内容把关更加严格,只为给你更好的参会体验!

看到这里还不够心动?

点下阅读原文试试?

转载请注明:CodingBlog » IT程序员 or 超级英雄?你具备哪种编程超能力?

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情
(12)个小伙伴在吐槽
  1. 我只想知道我是不是第一 我可是投闪电侠的人
    slient's2016-05-21 01:02 回复
  2. 看了投票,想做潜水侠的人很多啊!infoQ都是爱技术的人/呲牙
    时雨大人2016-05-21 01:11 回复
  3. 正在成为闪电侠的路上
    Brian2016-05-21 01:49 回复
  4. 原来自己是圣骑士+潜水侠+神父/酷
    🍙Alan2016-05-21 02:23 回复
  5. 代码和小说一样,陷入进去会让自己产生无敌的感觉
    周霖2016-05-21 02:48 回复
  6. 我是知猪侠/得意
    二当家2016-05-21 02:54 回复
  7. 我是钢铁侠/得意
    畢鉢羅2016-05-21 05:55 回复
  8. 作为一个神父,让我带领你们走向神的怀抱吧/再见/再见
    梓豪2016-05-21 06:53 回复
  9. 德玛西亚
    扯赵赵2016-05-21 15:02 回复
  10. 我基本属于上帝\\(۶•̀0•́)۶////闪亮登场
    2016-05-22 01:43 回复
  11. 都超级英雄了,还要编程?我还是安心做码农吧
    阿布2016-05-22 05:48 回复
  12. 只认钢铁侠。
    L丶Booth2016-05-22 15:48 回复