你不懂技术,如何领导我们

上周,我和公司里四个技术负责人中的两个一起给应聘公司副总裁职务的候选人进行面试。屋里了所有人——除了我——都是典型的“技术型”人才——他们能写代码,有解决编程难题的经验,有计算机专业背景。我写最后一行PHP代码已经是2004年的事了,而且那些代码被一个真正的程序员在半年内给重写了。

技术知识


面试过程中,我们有下面的交流(记忆力有限,只是大概的复述):

托马斯—我们的一个技术负责人:
如何能设计出一个能有效的应对系统升级扩容(增加一些新的数据)的系统,实现这样的升级而不影响用户的使用,会遇到什么样的挑战?

应聘者:存储这些数据不会是个大问题——Amazon S3能解决这种情况。过程可能要费点力,但也不是很难。你需要思考的是如何让应用使用这些数据;预处理每个视图,预先换算也许是个蠢办法,但当用户需要反向排序时发现速度严重降低,这也许是更糟糕的事情。你可以使用(三个字母的简化术语)在内存中做一些数据转化。

: (点头)

应聘者:然后你需要确保…

:哦,等一下。抱歉;我不该点头。我不知道你说的(三个字母的简化术语)指的是什么。能解释一下吗?

每个人都露出了笑容,笑了起来(很友善的),应聘者解释了这个术语,然后继续说下去。

这就是我要说的问题。数年前,我曾经极度恐慌于在我所管理的团队面前解释被问到的问题。从我在其它一些公司的经验(做访问,做顾问,做咨询等)发现,这是一个相当普通的现象,特别是在管理层、CEO队伍中。当你管理其他人,你总以为需要知道所有的答案,或至少要了解所涉及的问题,不是吗?

但这是有条件的。在某些公司里,他们高度的政治化、等级森严的文化需要管理者表现的像个完人。我本人从来没有在这样的地方工作过,但我见到过,我知道,对于处在这种环境中那些家伙们,维护面子和展示强势是件重要的事。但在创业公司和创业者的世界里,这是我们需要拒绝的传统余孽。

像我这样非技术的人通常会有一种自卑情结,感叹于缺少某一领域的知识。我们在很多的行业媒体、博客以及论坛里都能看到那些鼓吹:真正的程序员应该鄙视同/为不懂技术的管理者、创始人、CEO们工作。你只需要看一看这些非常火爆的关于这个论题的帖子:

这些文章足够让像我这样的家伙们羞愧的无地自容,惊恐的在Sal KhanCodecademy找一个2周的速成教程,戴着面罩学习,直到取得第一张hackday MVP证书。在互联网的远古时代,我是个很烂的网页设计者,使用Dreamweaver和一些从论坛、谷歌搜索,或访问过的网站上偷来的代码拼凑成蹩脚的PHP程序,并把它们放到网站上。这也许就是我干过的最有技术性的工作了。

不像上面的那些文章的作者,我从来没有去花上数周的时间自学Ruby,Rails框架,去开发一个小的应用程序。甚至我曾有过好几百小时的时间可以让我在计算机科学上学习、取得成绩,以帮助我在招聘工作,面试,或写PPT,或在我下周的演说中表现的更好,或者在博客里使用。但我没有好好的利用。

然而,不管怎样,我们的Moz公司已经成为一个相对成功的技术公司。我们在西雅图找到了一批最好最聪明的技术人员,他们能处理最有挑战性的软件工程问题,而大多数情况中,我们都干的很不错。

在Quora上有个很火的帖子问到“软件开发中最常见的错误认识是什么? ”我想,这种认为只有懂技术的人才有资格管理和领导技术型软件团队的想法应该在这个答案清单中占有一席之地。确实有些人声称:一个优秀的软件公司不可能是由一个不懂技术的人创立或由一个不懂技术的人领导。但我却不以为然,有很多的创始人,企业领袖,或管理者,对他们的业务技术根本不了解,但却实现了伟大的成就。

一些微型的团队,虽然没有专业知识,却能对创立的公司做出杰出的市场推广,把他们的宣传传播到了每个角落。缺乏销售经验或非科班出身的CEO在实践中学习取经,这样的例子比比皆是。旁观者看到他们没有MBA(包括会计,金融,管理,经济学等)知识,却能募集到大笔的资金,处理复杂的金融交易,雇用到杰出的管理人才,带领公司从创立到上市,人们对这些反而啧啧称奇。像旅游,媒体,移动,游戏,房地产等很多的领域里,外行的领导人都能根据实际情况而学习,雇用人才,把技术决策留给认可的专家。我几乎没有见过创业领域出来的权威人士会鼓励创业者们自己钻研这些专业知识而不去聘请外面的专家。

软件领域很特殊吗?

可能。

难道一个人能知道如何用程序语句来引用变量,或知道如何把数据存储到数据库中,就能本质的增加他在创业路上成功的几率吗?

也许。

但是我相信,有很多其他方面的专业的知识也能给创业的过程带来很大的正面影响,而且很多都是跟编程不相关的。

我至今仍在为缺乏工作中的某些知识而极度的难为情。但关键是,至少是对我,要承认自己是个笨蛋,正确的看待这种骂名,不再恐惧。并不是对这些视而不见,而是把这个环境当做自我勉励的舞台。但是,因为要做出正确的决策,你需要理解问题、故障和可能的解决方案。这并不一定需要你做深入的技术探索,而是需要你问大量的问题,其中一些可能是很傻,很无颜面的问题。

这种做法在很多我见到过的以权力为中心的公司中遇到了直接的阻力,甚至在Moz有时也会有。但也许是因为我的脸皮越来越厚,这种做法让我在各种专业技术中都获得了好处。我们雇佣到了人才,公司在慢慢的成熟,对于那些难题(我提出的或被问到的),我最喜爱的一个回答是“我不知道。但我会弄清楚。”

无论你在创业领域处在什么样的情形中,我想,显露无知总比掩盖无知好,即使是对那些被认为“无所不知”的人也是这样。对一个人因为他不会编码就对他的能力大打折扣,这似乎成了一个潮流。在Fackbook是这样;在谷歌某种程度也是这样;科技新闻界和风险投资家们推波助澜,似乎这就是真理了。我不敢苟同。

虽然这样,我仍然计划着在Khan Academy上找一些计算机科学方面的讲座来看。 🙂

[英文原文:Fear of Ignorance ]
分享这篇文章:

7 Responses to 你不懂技术,如何领导我们

  1. 忧郁 says:

    “显露无知总比掩盖无知好。我不知道,但是我会弄清楚。”我是一个无名小卒,总是把工作做的一团糟,自己不会,又碍于面子不去问。我掩盖自己的无知,对于自己不知道的事,我也基本认为自己不需要去知道,天呢,我都做了什么…

  2. jacky says:

    市场和产品观念更重要啦

  3. Fan says:

    说不懂技术就一定做不了领导肯定是不对的。但就软件开发来讲,我还是比较偏向所谓科班出身的管理人员,起码要有软件工程专业的学位或过硬的培训经历。主要是因为软件开发的管理看似简单,实则有太多太多的陷井。我见过半路出家的项目经理把一般的本科生在软件工程课上学过的常识性的错误一个一个犯过一遍。当然不能否定人的学习能力,但是这个过程对开发的各方都会是十分痛苦的。

  4. julio867 says:

    “显露无知总比掩盖无知好”,很喜欢这句话。其实作者的观点,在某些时候是对的,对于一些科技初创小公司,没有太多的资金聘请所谓的专家,这个时候只能技术人员自己做所有事情,而到了一定的规模之后,才会彰显编程之外的能力的重要性~

  5. liang仔 says:

    技术人员从技术的角度思考问题,而管理是针对商业,需要从商业的角度思考问题.

  6. Yanjun says:

    在一个不懂技术的leader下工作,如果这个leader很开明,也许会相处的非常融洽,项目金正也相当不错;否则,你会发现这个leader像是在用阿拉伯的腔调说着汉语——你大概理解他的意思,但是这着实很难受…

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据