在这个艳阳天的周末,来自成都各个角落的一群人聚集起来不是为了娱乐,而是为了学习知识、开拓视野。这就是 OpenParty成都 五月的活动:初夏迷音。在 奇诺咖啡厅 友情提供了几次活动场地之后,这次的活动转战到 ThoughtWorks 刚装修好的 成都办公室 举行,ThoughtWorks中国区技术总监 徐昊 也参加了本次活动。


(活动开始前,徐昊等人已经展开了讨论)


(签到啦~感谢ThoughtWorks的姑娘们帮忙组织)

从第一次活动时的十二三人,到这次活动的三四十人,OpenParty在成都发挥着越来越大的影响力。这可不是一个专属于IT技术男的聚会。还有来自其他领域的活跃分子参加。OpenParty的宗旨是“自由、开放、分享、互动”,更广泛的交流才能催生更强大的创造力。


(OpenParty不是专属于IT技术男的聚会,这几位是行走于IT世界边缘的艺术工作者)

OpenParty的形式也不只是传统的主题演讲。这次活动最受欢迎的一个环节是 李响 组织的游戏:大家一起建造动物园。两组同学玩得不亦乐乎的同时,也收获了很多心得:团队需要更多的沟通,与客户更紧密合作,才能更加高效地完成创造性的工作。


(李响带领大家玩游戏)


(同学们看着自己创造的动物园,爱不释手)

当然主题演讲也是少不了的。大卫张 的“债管理”,从一个完全不同的角度看待软件研发:所有的代码、文档、测试⋯⋯不是资产而是债务,引发了大家的思考。钱晓明分享自己的创业故事,听众们讨论极其热烈,超出了预计时间还意犹未尽。我讲了一些关于 可计算性 的科普和八卦,被同学们称为“脑细胞杀手”⋯⋯在火花四溅的脑力碰撞中,时间过得飞快。


(聚精会神听演讲的大家)

五月的OpenParty成都活动结束了,我们开始期待六月更精彩的一次聚会。

小广告:OpenParty成都 是什么? OpenParty成都是一群身在成都的技术爱好者共同组织的社交活动。 本着自由、开放、分享、互动的宗旨,采用“非会议(Unconference)”的形式, 为参与人员创建一个表达和交流的平台。 本活动的目标给参与者提供一个平等、自由的分享与获取知识的机会。 活动话题不仅仅局限于技术,还包括生活、旅游、艺术、创业、商务、投资、营销等各方面的话题。

“结果导向”是个职场里很流行的词。六年前我跟 夏姐姐 去校园招聘,她说如果是招销售的话就会更多要求结果导向。然而我现在发现,所谓结果导向,其实跟 测试驱动开发 是同一回事。所以像ThoughtWorks这样很认同TDD的环境,即使不是销售,做事同样要强调结果导向。

类似的话题其实我 之前也讲过 。我还可以再举一个最近的例子,读者们一起来做做思维练习:

你是一个项目经理。你带着另外两个兄弟漂洋过海来到A国,客户是A国数一数二的保险公司S。你要跟S公司的人一起工作一段时间,然后回到中国来形成离岸外包的局面继续工作。可是事情没那么简单。S公司这是第一次把核心系统研发工作离岸外包,公司上下没人知道这事情该怎么操作。倒是负责风险控制的部门知道哪些事情不能做,比如说把源代码弄到中国这事就不能行,更不用说信用卡数据了,那是压根就不能允许在中国的显示器上出现。客户的团队对你们也持怀疑眼光,连自己公司在A国的同事也有点搞不清你们到底需要什么帮助。

现在,作为这个焦头烂额的项目经理,显然你有很多事要做。噢对了,你们的签证只有六周⋯⋯

你会做哪些事?你会首先做哪些事?

这时候我给这个团队的建议就是:你们需要测试驱动。如果要为这六周的onsite工作写一个验收测试,这个测试应该是什么?这个spec应该写着“可以离岸外包”。如何测试可以离岸外包?你需要让至少一个人尽早开始以离岸外包的方式工作。当你们在A国的时候,这个人从中国开始以离岸外包的方式工作了,客户开始为他付钱了,这个测试就通过;反之,不管你在客户现场做得再high、客户对你再满意,当你回国以后一定会出问题。

这一个验收测试又会被细分为更多的功能测试,例如“可以访问源代码”、“数据安全通过检查”⋯⋯最终某些功能测试真的会被实现为自动化的测试代码,另一些将会是人为的检查点。重点在于,你在客户现场要做什么、要先做什么,不是由你预先设计的,也不是拍脑袋拍出来的,而是由验收测试驱动出来的。我应该动手解决数据安全问题吗?我应该建议客户增加一个迭代经理吗?我应该给客户做一个关于中国文化的session吗?答案都在于:你当前“红”的测试是什么?你做这件事将以何种方式使哪个测试变“绿”?

传统的管理者们会说这就叫“结果导向”。

类似的案例还有很多。比如说,如果你要为离岸外包交付这件事写一个测试,你会怎么测它呢?你应该很快发现,像“客户满意”这种虚无缥缈而又变幻莫测的东西,并不适合作为验收测试。一个既简单又明确的验收测试应该是“客户为我们的工作付钱”。那么当你用这样一个测试来驱动自己的工作,你就不那么容易犯下填错timesheet之类的低级错误,因为你会意识到:不管工作有多认真多高质量客户有多happy,如果你的timesheet里没有填那么客户是不会为你的时间付钱的,那么你的验收测试就“红”了。

所以,结论一:就像德鲁克说的,一切绩效都在企业之外。忘记什么角色定义啦工作流程啦职位分工啦绩效考核啦之类的bullshit吧,如果你用“客户买单”这样的外在成就来作为大多数事情的验收测试,你会把工作这件事看得清晰得多。结论二:好的程序员干别的事都比较有希望,因为我们会测试驱动。(潜台词:糟糕的程序员能转成好的项目经理这回事怎么听怎么不靠谱⋯⋯)

创业神话的黄昏

May 6th, 2012

首先,根本没有所谓的自由市场:一切的市场都是基于某些规则、某些限制的。例如中国的工人愿意增加工作时间以换取收入,这实际是更自由的劳动力市场,而西方世界对此感到难以接受则映射出一些被习以为常的规则和限制。为经济制定规则与限制的是政治。脱离政治的经济理论根本就是空中楼阁。

这是这本《 资本主义的真相 》——原书标题叫“关于资本主义他们没有告诉你的23件事”——所讲述的第一件事。这第一件事就勾起了我的兴趣,因为它讲到了点子上。当我跟澳洲的同事讲中国网游世界里装备不是靠打的而是靠买的,从他们难以置信的神情里我顿时明白了两件事:(1)中国的市场比西方发达国家自由得多;(2)自由市场带来的未必是令人愉快的结果。

于是,在一个饱受背部疼痛折磨的下午,我选择趴在沙发上读的书就是这本。不过其中最令我印象深刻的倒不是政治与经济的关系——毕竟这个调调我已经听老师说过很多次了——而是关于创业精神的神话。同样,这个“第15件事”之所以令我印象深刻,因为它讲到了点子上:仅凭创业精神不能培育出比尔盖茨,只能培育出一堆淘宝上和电脑城里靠杀价和宰客维持生意的小破店。

原因很简单。如果把传统理解的“创业精神”分拆细看:“好点子”之不值钱的程度基本上已经到了“我点子多得很一块钱一个你要多少”的地步;资本——不论来自小额信贷还是天使投资——对利润率有着相当高的期望然而点子的不值钱本质又使得保持利润率变得难于登天;全情投入的忘我工作态度⋯⋯呃,你不是在开玩笑吧?

值得注意的是,比尔盖茨神话中的一些非常重要的部分一贯地被有意忽视,而这些因素才是比尔盖茨成为硅谷英雄而非自力更生的下岗女工王留香的根本原因:世界级的知识储备,盖茨读的是哈佛并且他的家庭条件使他在1968年就有机会以13岁的年龄开始编程;世界级的眼界,盖茨上大学时做的东西想到的就是要卖给IBM;以及如“第15件事”所说,完善的集体组织和制度。

即使是像爱迪生和盖茨这样的极为出色的个人,他们的成功也是因为他们背后有众多的集体组织和制度在支持着他们,例如整个科学基础设施可以让他们获取所需要的知识和进行各种试验;公司法和其他商业法还可以允许他们建立具有复杂组织的大型公司;教育系统可以为这些公司配备高素质的科学家、工程师、高管和工人;金融系统可以在他们需要扩张的时候让他们筹集到大量的资本;专利法和版权法可以保护他们的发明创造;他们生产的产品可以很容易地进入布场,等等。

所以,作为发展中国家的公民,统计数据已经告诉我们:我们缺的不是创业精神,而是有价值的、有意义的、至少比下岗女工王留香的淘宝小店更有社会影响力的创业实践。为此,值得被重视的条件包括:世界级的平台;相对完善的组织和制度;相对宽松的投资目标。这些条件很难在社会层面上得到,却相对容易在企业层面上得到。

所以——我渐渐发现——我真正想说的还是内部创业和 精益创业 。如果把创业当做一件严肃的事情来对待,就应该在一个足够好的平台内部先实现,而不是不负责任地把自己的事业扔进下岗女工王留香的淘宝小店中打拼使之被迫失去高尚与美好而变得残酷和丑陋。自由资本主义带来的未必是令人愉快的。

德鲁克在《 21世纪的管理挑战 》中这样说到组织形式:

所谓的唯一一种恰当的组织形式是不存在的,而只能是多种多样的,每个组织形式都有其独特的优势、局限性以及特定的应用方式。我们认识到,组织形式不是绝对的,它是提高人们在一起工作的效率的工具。同样,一个特定的组织结构是与特定条件和特定时间内执行的特定任务相匹配的。
任何组织都要有能拍板的负责人,即所谓的“老板”,他可以做出最终的决策,可以要求其他人执行这些决策。⋯⋯在有些情况下组织需要深谋远虑,而在有些情况下则需要团队协作。

听起来是很有道理的权衡。然而这背后隐藏着一种险恶的可能性——如果它不是那么显而易见的话,把它简化描述为下面的形式会更容易看清:

大事我说了算,小事你说了算,事大事小我说了算。

对于经验更丰富、在企业中更受重视的高级管理者来说,这是一条很陡的斜坡,因为当他决定“拍板”时,其他人既没有能力也没有权力来批评他,甚至于没有正式的渠道来提出反馈说他的决定以及做出决定的时机与方式是否恰当。职业经理人在这种情况下也许能处理得更好,而从一线打拼起来的领导者很容易因此进入一言堂的状态。

因此运转良好的、兼容了团队协作与果断拍板的组织形式,必须有一种与之相应的反馈机制,使领导者知道其领导工作是否行之有效。重点在于,为了使这种反馈及时和有效,它不应该来自领导者的领导者,而是应该来自于领导行为的受者:被领导者。

一言以蔽之,领导者的绩效固然来自于企业之外,然而针对领导行为的反馈却应该来自于其下属。

设计这样的一种反馈机制需要两件要素。首先是共享上下文,拥有共同的上下文之后才能理解决策及其结果,因此诸如财务收支、经营目标、客户关系、企业战略、风险危机、人事变动之类的信息,不仅不能锁在小会议室里,而且要强迫地塞进所有人脑子里。然后是赋予优先级,领导者必须将其领导行为的改进视作最高优先级的工作,为此需要从激励方式上确保这一优先级——如果薪酬是唯一的激励方式,那么就意味着领导者的薪酬(至少部分地)由被领导者决定。

建立一种旨在帮助领导者改进并实质上限制领导者权力的反馈机制,这是第一件需要领导者发挥其深谋远虑来“拍板”的事。

徐昊 的影响,我也想讲讲我对“团队”这事的理解。当然职场励志名著 Hunter x Hunter 我已经看了十年,不过相比主角的个人成长,其实我对其中的团队精神更有感觉。

首先,第一点,作为一个团队,看起来一定要有型!有型很重要啊有木有!正如老师说的,你要卖得贵,首先得看起来贵!

怎么能有型呢?有一种方式是 大家穿上制服 于是就很有型。然而从我截这张图就能看出,我更喜欢diversity——每个人各自不同并且各自都很有型,于是站在一起作为一个团队就更加有型。“每个人都很好然后形成一个更好的团队”,这是我对团队精神的核心认知,后面还会不断讲到。

在我看来,一群人要形成一个团队,有一个最根本的前提,那就是每个人都很强。强到什么程度?强到不管面前有什么困难都能搞定。能搞定自己的困难才能帮助别人,每个人都能帮助别人,这群人才是团队。前面有什么敌人?不知道。那我们的策略是什么?当然是正面突破。有什么敌人就打败他好了。

能帮助别人的前提,是不假设自己会得到别人帮助。所以团队不等于时时刻刻黏乎在一起。要做的事情很多,表白团队感情之前,各自搞定自己的问题先。看似薄情冷漠的行动,背后是对同伴的信任,反正不久就会再一起欢谈的。

团队不是一个强者照顾弱者的组织,幼儿园才是。我心中的团队,是强者与强者互相敬重的组织。而强者敬重另一个强者的方式,就是尝试去帮助对方,以此证明“我比你更强”。这种抢着帮助别人以证明自己的氛围,在我看来,是一切团队化学作用的基础。

带领这样一支团队的领导者,也不再需要有什么特殊地位。和每个人一样,领导者也只是团队需要的一个角色、一种职能而已。没有头衔,为更强而竞争,卓越的团队知道自己该做什么,不需要一个与众不同的领导者来管理他们。

所以,说到底,一支团队走到一起,不是为了儿女情长,而是为了成为强者,并与真正的强者在一起⋯⋯

各位在成都或是暂时不在成都、说四川话或是不懂四川话、已经加入或是将会加入我们的同事:

首先说说为什么我会给诸君写这么一封信。昨天在CMT的电话会议上,我被问到一个问题:成都办公室的文化建设,这件被放在2012年工作重心上的事,现在进展如何了?说起来惭愧,虽然帮着组织了几次 OpenParty 的活动、开了几次郑大晔校的课,可是成都办公室的文化究竟是什么,好像我还没有和谁正经聊过。

我是个性格内向不善辞令的人,写字往往比说话更舒服。所以我决定把我对这个“文化”的想法写出来和诸君分享。不过要先说明一点:之所以由我来写来说这些,只是因为我在ThoughtWorks呆得略久、对成都办公室的诸般事务了解略多,绝不表示我这些想法或是我本人就有了什么权威。稍后我还会继续谈论这个话题,现在先进入正文。

(我的新版名片:没有头衔)

在我的脑海中,一个会令我心向往之的企业文化,大概会有两个部分组成:第一,没有管理者;以及,第二,每个人都嗷嗷叫着往前冲。嗯,我知道这个表述不够高端,所以我把它们等价替换为两个高端的洋词组:(1)No Title;(2)Compete For Influence。

No Title

有几个原因让我相信,在一个卓越的知识型组织中,头衔的存在就是一种浪费:其中有对外的因素,也有对内的因素;有于公的因素,也有于私的因素。

德鲁克说过,企业的一切绩效都在企业之外。企业中的一名员工也是一样:我有多大价值,取决于我为客户、为社会创造多大价值。看清这一点之后,我就愈发清晰地感到:在企业内给自己找一个漂亮的帽子戴上并因此感到愉悦,实在有点自欺欺人。我是“高级”还是“资深”、是“首席”还是“总监”,有什么意义呢?客户眼里看到的,是这个人为它创造了多大价值;同事眼里看到的,是这个人为公司做了多大贡献;旁人眼里看到的,是这个人对社会有多大影响。既然如此,何不索性扔掉这帽子,走出“头衔”营造的虚假的追求和愉悦,好好寻找真正值得追求的追求、值得愉悦的愉悦。

另一个原因是为了团队合作。在我看来,所谓“团队”,只有每个人都能搞定自己份内的事并且随时准备帮助别人,才能算得上一支团队。技能越多的人,有可能帮助到的人就越多。徐昊就是一个好例子:不管是分析需求还是做测试还是写代码,哪块事情有困难他就能顶上。而这种 多能工化 尽管丰田已经用了几十年,仍然很难被大部分企业所接受,因为它本质上是和清晰的角色划分相抵牾的——你怎么定义徐昊的角色?他不是没有角色,而是没有固定的角色。每个项目在不同时期对不同角色的需求是变动的,能胜任越多的角色,能为团队、为客户创造的价值就越大。

(有鉴于我经常被误解为程序员沙文主义:我向往的不是没有角色,而是多角色。这两者是有显著区别的。)

第三个原因是为了每个人的发展。我认为“上班”这件事中最愚蠢的部分,甚至都不是每天八小时干一件无聊的工作,而是忍受每天八小时干这件无聊的工作竟然是为了在一个类似于猴群等级制度的体系中慢慢往上挪。人过三十以后我开始越来越感到时间不够用,相信诸君也会有同感。所以我实在不能把时间浪费在无聊的事情上。让自己变得更强,能做更多的事,把每件事做得更好,只有这个才是有意义的。三五年后诸君可能会有过档去别家工作的,也可能会有自己开店创业的,我真心希望每个人在离开的时候都能说:我没有浪费时间,我现在很强,我有信心搞定任何难题。

没有头衔也就没有老板和小弟之分——就像前面说的,大家各自搞定自己先,然后拼命帮助别人,看见什么重要就做什么。比如我来写这封信、我来思考这些问题,仅仅是因为我恰好有这些上下文和这些时间,所以我就先做起来。随后诸君有了更多的思考,随时把我这两条推倒重建,我必定乐在其中。

Compete For Influence

我知道有很多人是不能没有老板的。没有了老板,首当其冲的问题就是:我该干什么?我该为了什么目标去干?

恰好在我写这封信的过程中,李力岩写了一些他的感触:

在公司我们把Software Excellence作为我们的Pillar之一的同时我们也有不小的压力,因为技术的进步要求我们要不断的学习来适应追逐者的脚步。与此同时自己也要去影响其他人,从能够被别人影响,到影响你的同伴,到影响你的团体,进而影响你的客户。

于我心有戚戚焉。我这个人一向也没什么追求,对于工作,想要的就是两样:第一,做有意思的事;第二,让自己变得更强。这两样,前者是对今天负责,后者是对明天负责,我想对于诸君来说也是同样适用的。

如何做有意思的事?如何在工作中做有意思的事?那就要靠增加自己的影响力,把自己的好想法sell出去,让更多的人来帮着你一起做你想做的事。有意思的事未必非要多么惊天动地。我今天跟客户结对编程,引入了google-collections这个库,教客户用LISP的思想来写Java程序,客户被我影响了,于是我就可以写出几行漂亮的代码,这就是件很有意思的事。当然也有比这更大更有追求的例子,比如金明对云计算感兴趣,他就自己花时间折腾出一套持续交付云的解决方案,现在他就能用工作时间带着更多的人一起去实践他的想法,这就是更有意思的事,他也在这个过程中学会了怎么跟客户打交道、怎么带领更多的人,他变得更强了。

用结果导向的眼光来看,是不是在做有意思的事、有没有变得更强,影响力是一个重要的衡量标准。我说我在做件很有意思的事,但只有我自己下班以后做,别人听都没听过问都不想问,那这事真的有意思吗?我说我变得很强,但是客户、团队都不受我影响,那我到底强在什么地方了呢?所以在一个没有头衔没有职位可以追求的地方,大家就追求影响力吧。从每天的工作中找出有意思的事,让自己变得更强,拿这些去影响你的队友你的客户,从而证明你真的做了有意思的事、真的变得很强。

在力岩的感触之外,我还想加上一点:只要不被压得喘不过气,就要随时想着怎么影响公司之外更多的人、更大的社会。六年前我在印度上TWU的时候,Roy跟我们讲的一番话,现在我转赠给诸君:“我们在舒服的环境里学习工作,吃着美味的晚餐,抱怨草坪上蚊子太多公寓里空调太吵。与此同时印度和中国的很多穷人没有足够的食物和衣服,没有干净的饮用水,没有受教育的机会。我们已经是如此被庇佑的一群人,我们应该多想想怎么为这个社会做贡献,让这个世界变得更好。”所以我说的影响力,不仅限于ThoughtWorks公司内部,当然更不仅限于中国公司甚至成都办公室,更是对成都的IT社区、对中国的IT行业、对中国社会的影响。

比起对猴王唯唯诺诺并寄望在猴群的等级体系中慢慢往上挪,这样对影响力的追求不是更有意思吗?

××××× 结尾的分隔线 ×××××

不知不觉间就写了这么长的一篇,先向看完了我所有唠叨的读者道谢。眼看着软件园E区的办公室一天天被装修成我们三个月前预想的样子,我就会开始想象一年后、两年后这个办公室里应该是什么氛围,然后从这个想象开始倒推,于是就有了我认为应该有的文化要素:No Title;Compete For Influence。不过另一方面,我相信我的各位同仁比我更优秀,所以有很大可能最终我们会得到一个和我想象不同并且更好的成都办公室。

作为一个最年轻的办公室,成都办公室从组建之初就得到来自北京、西安、悉尼、布里斯班⋯⋯整个ThoughtWorks的全力支持。我希望成都办公室在渡过了艰难的初创期之后不仅能输出强大的人,而且能用强大的文化反哺其他办公室。搞定一个两个项目算什么?这才是我对——已经加入和暂时还没加入的——诸君的第一次挑战。

大数据:方法与技术

February 25th, 2012

(商业读书会第23期的题目:Big Data。文章有三篇,一篇 Economist 的,一篇 McKinsey Quarterly 的,和一篇 Forbes 的。)

其实这三篇都是空话。通篇无非就是在讲(1)数据真的很大;(2)各行各业都要学会处理大数据。然而我真正关心的是“怎么做”。于是 另一篇文章 进入视野。不过最精彩的还是麦肯锡的 分析报告 ,其中最吸引我的是“方法和技术”的部分。

关于“怎么做”的这部分,麦肯锡的报告里分成三个部分:分析方法;技术;可视化展现。其中第三部分相对简单。我对前两部分又做了一次细分。首先是如何使用大数据的方法,我把它细分为ApplicationsApproachesAcademic Disciplines三个子类。这部分讲的是大数据这件事有哪些具体的工作,需要用到哪些知识基础。

说实话,这部分的内容(尤其是“应用”部分)有点超出我最初的想象。显然大数据远不止是BI。它实际上是 Validated Learning 的必要前提。大数据与敏捷、精益的结合将是必然的趋势,为支持精益运营而做的BI不可能六个月才交付一次。

相关技术这部分,我把它细分为ToolsConceptsFundamentals三个子类。这部分讲的就是处理大数据所需的软件技术。这部分的最大困扰在于:想学习这些技术比较难找到练手的场景。所以我还在豆瓣上标了几本书,例如 Manning的这本 看起来应该是不错的入门。

接下来的学习从两个角度开始:理论基础,和实践。找一本合适的书,做一个合适的例子,熟悉这个领域的信息地图和术语。