Category: Yurii谈工作

漫漫降级路

前些年互联网上有篇叫《降级论》,建议广大IT从业者不要削减了脑袋挤移动互联网等等热门方向,换种思路,在“不起眼”的传统行业中寻找IT技术应用的广阔天地。这篇文章一登出来吸引了大量关注,按照作者的说法,降级论俨然是条通往幸福的康庄大道:

“这些原始而纯粹的行业,正在等待IT精英们的降级,如同蒲公英一般的伞兵,在黑夜里从天而降,长驱直入,用最智慧的产品、最优质的服务拯救这些早就该死的行业,屌丝的生命将会绽放出银色的羽翼,无比丰满,无比性感”

不幸的是,我见到的现象却非常奇怪:许多尚未投身的读者谈起“降级论”却满怀憧憬,真正敢于“降级下凡”并成功的却寥寥无几。仔细想想,无论从逻辑上分析,还是从自身经验来看,“降级”之路都不算坦途。根据我的归纳总结,IT从业者(“精英”这个说法略带刺激性,我觉得“从业者”更合适)走上降级之路,有几大困难是必然要经历的。

Continue reading 漫漫降级路

软件开发的人文关怀

几年前,我从温伯格的《技术领导之路》中学到一点:技术人员往往更喜欢和机器打交道,因为他们“认为”自己更适合和机器打交道;但是,优秀的技术人员必须(也必然)具备好的沟通能力。所以,温伯格鼓励各位技术人员多加练习和其他人打交道的能力。温伯格的这个观点我是非常赞成的,好的技术人员一定需要“勇敢”面对他人,不能被“自实现的预言”局限在机器的世界里。

不过我也发现,“技术人员(当然我主要说的是软件开发人员)不适合跟人打交道”的负面影响不止于此,它还成了一种刻板印象(stereotype),进而影响到开发团队之外的人。这个问题其实很严重,它会导致其他人和开发人员沟通时自觉或者不自觉地切换到“和机器沟通”的模式上来,比如单纯依赖邮件而避免见面沟通,比如“你只管这么做出来就好了,别管我用来干什么”。以面向机器的模式来与人沟通,结果往往是完整的项目(而不是狭义的“软件项目”)割裂开来,皆不欢喜。

Continue reading 软件开发的人文关怀

程序可以止步于接口,思维不能

“面向接口编程”是程序设计的规则之一,它可以将具体实现封装为具有一定逻辑意义的抽象行为。这样做的好处多多,比如有利于在较高层次上思考,而不必操心细节;比如避免外部代码因为具体实现变化而作修改。广大开发人员,不管自己设计程序时有没有注意“面向接口编程”,都会或多或少地从“面向接口编程”中获益——我上大学时曾听某师兄说:“编程还不容易,从网络上找一些类库来调用就好了”。接口隐藏了背后的实现,可是,许多开发人员不但写程序止步于接口,思维同样止步于接口。接口背后是什么,他们写的程序不关心,他们自己也不关心,而且振振有词“我这是面向接口编程”。但是,这真的是好事吗?

我刚工作时,所做的项目里有几个问题是自己搞不定的,甚至整个项目组也没有人能搞定。好在项目经理很有办法,找了他之前的同事兼职帮忙,写出最难的模块,我们只管调用现成接口就可以了。当时大家都松了一口气,至少不会因为自己水平不够,耽误项目进展了,内心也非常感激这位兼职的高人。可是,随着项目的进展,我们搞不定的问题越来越多,于是越来越依赖兼职的帮忙,整个项目也因此越来越被动。我仔细观察,发现这类搞不定的问题虽然反复出现,归结起来只集中在某几个领域,而每次这位兼职高人给过来的程序,尺寸变化并不大。所以我认定,这些问题并没有太多难度,只要解决其中一个,应该就可以举一反三,顺势全部解决。于是我花了一周的业余时间,逐行细抠接口之后的代码,终于尝试独立解决了一个这类问题,给项目经理看过,他非常高兴,从此甚至对我有些另眼相待。当时我想,他这么高兴,是因为我为公司省了钱,再也不必烦劳以前的同事兼职了罢。

Continue reading 程序可以止步于接口,思维不能

浅谈领导和领导力

按:公司基层主管培训,安排我做关于领导力的讲座,效果尚可。我把PPT的内容总结成一篇文章,在这里与大家共享。

如今,市面上关于“领导”和“领导力”的文章和书籍已经数不胜数,却不让人厌烦,新的资料仍然层出不穷;另一方面,对相当一部分人来说,“领导”和“领导力”又确实难以捉摸,看书似乎明白了,做起来却全然不对劲。为什么会出现这种情况呢?根据我的观察和思考,主要原因在于:领导和领导力,都是与人密切有关的学问,一旦与人有关,就不能依靠硬性规则来行事。但是,没有硬性规则,又会感觉虚无缥缈无法把握,所以下面我尝试给出自己的几条经验,供大家参考。

很多人都想知道,为什么要有领导呢?或者说,什么样的人能成为领导呢?一个人被上级任命为“领导”,他就是领导了吗?不。他如果做得好,才可以成为领导,如果做不好,就不过是“空有个领导的名头”而已。另一方面,民间的很多“领导”(领头人物)并不需要任命,也可以获得大家的认可。如果从这个角度来看,一个人会想办法,能出主意,他就是领导了吗?似乎也不见得。古代的军师和谋士最擅长此道,但他们似乎和领导不沾边;但是一个人如果没有谋划,也没有规划,当然也不算“领导”。所以,”为什么要有领导“,确实不是个简单的问题。

我们可以换个角度,看看没有领导的情况是怎样的。此时,基本只有两个元素:人和任务,任务由人完成。通常,大家独自完成任务,也可能大家互相帮助,自发协同完成任务。

但是随着任务量的增加,任务复杂程度的增长,任务已经不能由个人单独完成,也不能由多人自发完成,这时就需要出现一个人来带领、协调、组织其他人,完成更重要、更复杂的任务。这个人就是通常所说的领导。从人的方面说,他有权力(影响力)去安排更多人的行为,这就是我们常说的“任命”的必要性(民间领袖通常依靠威信);从人物的方面说,他有办法让这些人完成更多更复杂的任务,无论这种办法是他自己提出的,还是采纳别人的。

这样就产生了一个问题:领导的工作,到底是应该看重人,还是应该看重任务呢?如果看重人,就需要给予下属更多的自主权,比如容许他们自行制定规划,自行安排进度,但领导需要承担放开的后果;如果看重任务,就会要求下属在规定的时间完成规定的事情,哪怕是疯狂加班也在所不惜。两种方式,究竟哪种更好呢?

其实答案比较复杂。在一般(非外包类)的公司,除去人力资源等几个部门,对领导的考核指标,并不会由对下属员工的考核所构成,而是强调领导的业绩,也就是任务的完成数量和质量;可是,领导并不能事必躬亲,自己去完成如此多如此麻烦的任务,而必须借助下属——也就是人——来完成。换句话说,领导需要完成更多更复杂的任务,但他必须通过下属来完成,或者说“迂回”地完成任务。所谓的领导力,就是这种迂回中需要的能力。

我把自己对领导和领导力的理解画成一张草图:任务是由人(下属)来完成的,领导的行为对象是作为下属的人,但其领导行为最终指向的,却是下属需要完成的任务。图中的橙色部分是领导的主要工作内容,黄色部分是下属的主要工作内容。两者有部分重叠,表示领导的工作不能止步于下属的具体内容之外,下属的工作也不能与领导的工作脱节。

现实生活中的很多例子都可以印证这一点。读过点历史的人都知道,“文革”结束之后,改革开放之初,老百姓之间流传有“要吃粮,找紫阳;要放米,找万里”的说法,称赞他们制定的“包产到户、包干到户”的农业政策。紫阳和万里并不种粮,也不是农业专家,但他们制定了正确的政策,调动了农民种粮的积极性,扭转了人民吃不饱饭的局面。虽然最终种粮的仍然是农民,但农民的种粮活动是受到紫阳和万里的领导行为的影响。也就是说,紫阳和万里“间接地”解决了吃不饱饭的问题。具体的任务还是那些任务,解决任务的人还是那些人,但换了领导,结果大不一样,这就是领导力的展现。

最开始说领导力是与人有关的学问,原因就在这里。这个道理,温伯格在《技术领导之路》中的表述更加清楚:

所谓领导力,就是创造出一个环境,提升其他人的创造力和生产力,让每个人都能发挥出更大的能力,创造出更大的价值。

或者用我的话说,同样的人,同样的事。没有领导,这些人就做不成/做不完这些事情;非得有领导才能完成。这就是领导的价值。

既然领导力与人有关,领导就不能不了解与人有关的知识。如果我们把“人完成任务的能力”粗略地称为“人力资源”,那么,人力资源有几种特性,是其它类型的资源所不具备的,值得领导特别关注。

第一种特性是,人力资源的输出是不稳定的。计算机每秒的计算量是稳定的,驴一天拉磨的圈数是固定的,泉水一天出产的水量也是相对稳定的;但人力资源不是这样,人力资源的输出受多种因素的影响。如果员工失恋了或者家人去世了,他可能每天都来上班,但上班的效率为零。当然,这只是极端的情况,但人的情绪和状态确实会极大地影响人力资源的输出。

为了保证人力资源输出的稳定,就必须保证下属的情绪和状态的相对稳定。首先,要尽量保证工作的自发自愿性,一个人是作为积极进取的公司职员,还是作为被迫劳作的农场奴隶,其生产效率绝对是有天壤之别的。在分配工作时,应当尽量考虑下属的兴趣、意愿,最糟糕的情况,就是让下属去做他非常排斥的事情,这样几乎不可能有好的收效,第一个需要反思的就是领导自己。其次,平时注意营造积极乐观的工作氛围,打消下属在工作时的过多顾虑和担忧,并注意观察下属的情绪,如果发现波动,应当及时了解、抚慰。最后,要建立信任,尤其是对喜欢多想的下属,如果没有建立足够稳定的信任机制,任何一点小变化、小波动,都可能严重影响他的情绪;如果让下属信任你对他的一贯态度,对他的工作的一贯态度,就可以避免此类问题的发生。

第二种特性是,人力资源是具有持续成长性的。要升级计算能力,你可能需要升级计算机;要烧更多的水,你可能需要更多的电,更多的煤。但是要完成更多更复杂的任务,公司给你的资源和人力编制,并不会有同步的增长。另一方面,大多数员工也有对自身发展的期望。培养下属持续成长,就可以解决以上两个问题。

要保持人力资源的持续成长,领导必须花很多的心思。一方面,根据未来的目标,有计划地培养、储备人才,以便用有限的资源,解决更多的问题。另一方面,也需要为下属考虑学习成长之路。我们在招聘时,面试者经常会说“希望能多学东西”,但是很多人并没有培养出自动自发学习进步的习惯和能力,然而如果公司没有给他“学到东西”的感觉,他又会对工作和公司失望。所以身为领导,往往必须为下属拟定一系列的学习发展步骤,并持续实施,这样既可以不断提供给下属学习的成就感和满足感,又可以培养出符合公司业务需要的,能力更强大更全面的员工。或许也正因为如此,希拉里才说:“优秀的领导,会带领人们去到他们想去的地方;卓越的领导,会带领人们去到他们没想到但应该去的地方”。

第三种特性是,人力资源的转移很快。这里说的“转移”,是指员工的流动。员工的流动会给业务的开展造成非常严重的影响——我想,再也没有什么消息,比在准备大干一场的前夜听到业务骨干离职,令领导沮丧的吧。

员工的流动是不可避免的,但身为领导,应当将其稳定在可控的范围之内。通常,员工会留在某个公司,有两个原因:第一是觉得自己的工作有希望,第二是觉得公司有希望;而且,两种希望有相当的重合。但是有些员工的“希望”很明确,有些员工的“希望”只是“有希望的感觉”而已;另一方面,员工对于“公司的希望”,其实是没有上级领导了解的全面和细致的。所以,身为领导,应当尽量向下属阐明公司的希望所在,并且照顾到员工的希望——对“希望”很明确的员工,要努力寻找他的希望与公司的希望的重合地带;对“希望”不那么明确的员工,应当从公司的角度出发,结合其个人特点,具体化并不断强化这种“期望”,得到员工的认可。如果员工的期望与公司的期望完全绝缘,找不到太多共同点,则应当尽早选定后备力量,以防下属离职给自己的工作造成困扰。