兴趣?

July 16th, 2010

我时常听到类似这样的说法:

“小时候我很喜欢音乐的,唱歌很好,老师经常夸我。我自己也很喜欢唱歌。可是后来上大学的时候家里人不让我报考音乐学院……”

结果呢,我看到的是基本被搁置一边的天赋,和大量的时间用来看花边新闻八卦杂志研究时尚美容等等等等。

“其实我是个写代码的。我不应该在这里,应该在一个角落里快乐的编写着代码。”

结果呢,我看到的是在真正需要写代码的时候,表现出来的迟钝和生疏。

我也看到很多很多时常将兴趣挂在嘴边,行动上却吝惜投入的人。相信你也看到。或者你就是。

兴趣是一种信仰。

当你真的觉得某些事情是你真正热爱的方向的时候,就应当真正的花时间去追求。原地期待不会有任何结果,朝三暮四更不会。朝九晚五然后说没有时间不是借口,全力投入的一两个小时的产出将远远超出你的想象。

我曾经劝说过很多人,放弃平凡的工作去追求自己真正热爱的人和事。然而真正接受建议的人很少。四平八稳往往是大多数人的选择。很多时候激情、冲动、莽撞之间划上约等号,弄的人搞不清楚这股情绪到底是什么。年长者考虑太多,出于善意,他们往往会说,

“年轻人,别冲动。”

可是,不冲动,是年轻人么?!

兴趣是一种信仰。而信仰要体现力量,需要长时间的近乎虔诚的朝拜和练习。整天挂在嘴边的兴趣不是兴趣。天天练习,以此为生活准则和行为习惯,并且得到广泛认可的小有所成,那才是真正的兴趣。

Disconnection(连接中断)

May 21st, 2010

连接中断这件事情其实不仅仅是物理现象。

《阿凡达》里面,氧气舱里Jack的连接线被拔除意味着他无法在潘多拉星球上与那些纳美人无法再交流。此时纳美人看见的Jack似乎是一个毫无生气的尸体,而氧气舱内的Jack则对发生在纳美人群体内的事情一无所知。还记得面对即将碾压而来的巨型机器,公主疯狂的拖拽着毫无知觉的Jack。而已经断线的Jack则像一个橡皮偶一般,毫无知觉。而一旦连接线被接上,Jack瞬间可以对现状作出反应。

《水云间》中,梅若鸿的十年前的结发妻子为了成全他而投湖自尽,大受刺激的梅若鸿近乎成为植物人,似乎他与整个世界已经断线。无数的好友、亲人都没办法叫醒他。最终是杜芊芊胸前的红玫瑰纹身,唤醒了他,使他与这个世界重新相连。


在我注意到的沟通不畅的现象中,很多情况是,参与沟通的个体与与整个沟通场景之间连接中断。如果只是一个人产生中断,那么沟通过程对于这个人而言会是比较痛苦的;但如果这个人非常重要,比如是领导或者其他话语权比较强烈的,那么其他人会比较痛苦。他们的痛苦,与上面描述的两个案例是没有太多不同的——花费了大量的气力,其实不是为了最终解决什么问题,而是为了与场景产生连接。简单的表现就是:花费大量的时间去描述问题本身,而非去谈论解决方案。

前一篇文章中,我发现我所花费的大量的时间所营造的,只是让每个参与沟通的个体与场景之间产生连接。在绝大多数情况下,一旦连接建立,问题就已经解决了一大半——剩下的事情就是依赖每个人的创造力去将问题解决。沟通最大的问题,是你以为它发生了,其实它没有。在《世界咖啡——创造集体智慧的汇谈方法》这本书里面,我看到大多数费尽心思的氛围营造——包括4-6人小圆桌,无处不在的摄像头,大屏幕,可以书写的餐桌布,等等,都是为了将连接建立的成本降到最低,让连接迅速建立,从而让沟通的效率更为集中的体现在价值创造上,而非问题澄清上。

这个说法也可以解释为什么我们需要可视的状态墙进行任务管理,为什么需要将应用程序的原型图贴到到处都是,为什么需要尽可能多的保持结对更换、尽可能多的进行面对面沟通,一切都是为了保证连接是常在的,否则连接一旦中断,你期待着谁会在胸前纹上鲜艳的红梅花去让谁清醒呢。

访谈:发现团队真正的问题

May 17th, 2010

咨询工作期间,受邀去一个团队,帮助他们制定新的计划,以改善他们的交付现状,提升交付能力。

之前我并没有一个完善的计划。这类的访谈,如果话语权被管理者把持,访谈本身会迅速失去其意义。因此在我要求之下,他们整个团队进来了。开始之前,我并没有要求开电脑,场景被设定为一个圆桌旁边的开放聊天。

团队领导者先进来了,他迅速打开了电脑,熟练的打开了PPT。团队成员也陆续进来。我注意到几乎全部面色疲倦,表情灰暗。他们中有长相帅气的男生,也有年轻美丽的女生。然而他们默默的进来,除了抬头看一眼大屏幕上即将进行的PPT, 他们一言不发的坐下,等着,也许,这只是另一场没有任何不同的宣讲式会议。

管理者开始了。他描述了他理解的团队中的问题,并且提出了他自己的想法。我看着这些计划,心里毫无把握:这真的是团队想要的吗?这么多的实践操作下去,团队是否有空间去进行?他们是否深深的理解,这些实践是为了真正的解决团队中的实际问题,而非另一场运动?

带着这些问题,我环顾四周,我看到的仍然是面无表情的听众。

等管理者说完这些之后,我打断了他想继续表达的意愿,说:我想听听团队每个人怎么说的。用一个毛绒猴子作为令牌, 拿到猴子的人才能说话,其他人不能说话。第一个人开始了。我注意到他仍然不能自如的表达出来自己的想法。

“你们测试团队在另外一个地方?”
“是的。”
“在哪里?”
“A地。”
“哦,就是那个经常停电的地方吗?”

大家楞了一下,然后哈哈大笑起来。气氛立刻缓和了许多。很多人的眼神里面也有了神采。

“是啊!每次他们总找我们要文档!本来我们这里都讨论好了,由于他们在另外一个地方,因此不得不写些文档。但我们交付这么忙,写不全是常事啊!”
“——我总觉得他们做什么我们根本不知道。我们做完了得交给他们测试,他们测完了又要转回来,也不见得比我们测得全面。”

……

这些鲜活的例子一旦出现,似乎所有人的那根神经被触动了,一个开发人员说:

“有时候我不知道这些任务从哪里来的,有个人给我打电话,说这个东西很急,于是我就改了。”
“这些工作占据你日常工作的多少?”
“30%左右吧”
“等一下,我重复一下:你是说,耗费了你30%的工作时间,你居然都不知道你在为谁工作?”我故意强调了这个。
现场大笑。
“请问组长,你知道这个情况吗?”
组长讪笑着摇头。
我留意到现场有人眼神一亮,似乎有所感悟。

……

访谈过程持续了一个小时左右。访谈结束的时候他们的领导者出去,去询问这些参与者的反馈,回来跟我说:这次会议是他们觉得最有参与感的。

有了这个讨论作为铺垫,我将所有的可以进行的操作实践全都列出来,大家进行了投票,最终,一键式构建脚本、成立业务分析小组和识别并细分任务表成为优先级最高的三项。整个过程非常顺畅,细节几乎不用讨论,大家对这些工作的意义表现出惊人的一致。

三天后,我回访他们团队,发现状态墙已经建立了。询问他们领导,他们领导指着正在讨论的两个人,感慨地说:瞧,现在组内讨论很频繁,以前都很安静的。

事关信仰

May 17th, 2010

坐在办公室,听着容祖儿的《可歌可泣》,旁边的乱七八糟坐着的同事,开着让人哭笑不得的玩笑,想到这一次可能待上一个月,突然有点不真实的感觉。算算,自从去年初出差到新加坡到现在,一年三个月,15个月了。在这段时间里,在北京Office待了一周,西安Office待了几个中午。我几乎已经快要习惯做完一个项目就要收拾行李去下一个地方的日子了。

比我还要过分的是袁英杰了。他进公司就没有多少人见过他。让我了解他更多的居然是在客户的公司,从客户口口相传的传说中,我了解到他的技术实力,他对C/C++近乎偏执的热爱。从他写的却众多引起冲突的文字中,我了解到他对于代码、设计的坚持;他写的关于C的编程实践,洋洋数万字,行文流畅,排版优美。相比之下,粗制滥造、妥协、应付,这些在我们工作中常见的问题,近乎绝缘。很意外的是,去年11月跟英杰聊起关于测试的种种,那样的投机。

原来是信仰。

正是对正确事情的信仰,让我们能够即便远隔千山万水,依然能够在精神层面保持联系。我很难描述这一种神秘的力量——这种联系超越了组织、电话、视频、邮件、通知、计划。这些正确的是什么?是对浪费、重复天生的抵制;是对完美绝不妥协的追求,一旦要做,就要超越普通人“应付”的认知标准,成为让自己满意并且自然让大众叹服的作品。

英杰说:君子和而不同,小人同而不和。深以为然。

我越来越悲哀的看到,信仰的缺失成为整个时代的悲剧。诱惑太多,扩张太快,进度太紧,组织的成功建立在无数的人放弃自己信仰的基础上,无数人放弃了自己的直觉,挣扎、痛苦中直至麻木。追求完美难道不是每个人天生的直觉吗?对新生事物保持如婴儿般的新鲜感难道不是每个人的直觉吗?对重复的抵制难道不是每个人的直觉吗?

不坚持,无信仰。


PS. 如果别人认为你是一个对软件开发狂热的追求者,对完美代码,对软件设计,对改善人们生活充满激情,不妨考虑加入ThoughtWorks,与一群同样充满激情的聪明人一起工作!

不信任的博弈

April 18th, 2010

很多人在怀念那过去的年代,那个软件英雄的年代:一两个人废寝忘食通宵达旦搞定某一两个关键问题,甚至对交付产生关键作用。最后交付成功了,这些人成为了英雄,在一年一年的口口相传中,成为英雄般的记忆。

说的是十年前的事情。

然而现在英雄越见少了——英雄们逐渐淡出一线开发视野。现在动辄几十人上百人的团队下,英雄的候选们发现他们处于一个相当悲凉的境地:即便有心救国,看着若干年积累出来的代码;或者正在积累中的代码,充满着无力的挫败感。我依然记得在某个项目中,只有20人左右的团队,当发现架构存在问题的时候,却也无法做什么:交付的压力持续不断的增加着,新的方式需要进行花时间验证才能得到证明,于是一方面团队按照旧的方式将代码往上堆,另一方面对此感到痛苦的不断地修改着——这个循环直到项目结束才算真正意义上的结束。

业务团队与开发团队之间的不信任感从此而产生——

为什么这么简单的一个功能要这么久?
不行,这个功能一定要在某月某日之前出来!
做不出来,丢了这个客户/市场,你负责吗?!

于是,迫于这种压力,开发团队只好采用更加临时的解决方案来快速解决问题——寄希望于某一天能够有时间把这些问题神奇般的解决——可是这一天从来都没有到来过。一个交付周期过去了,下一个接踵而至,带来更大的挑战——“什么?需要时间重构?没时间啦!这个客户比上一个更重要,一定要做出来啊!”

听到一个很形象的例子。一只蚂蚁只能拉100斤的东西。由于要交付更多的东西,蚂蚁工头对小蚂蚁说,120斤,挑战一下吧。小蚂蚁咬咬牙,挑战了一下。这一下真挑战成功了——120斤成功的拉过去了!然而它自己觉得隐隐作痛——受内伤了,它想歇息一段时间,可是工头说:不错,120斤挑战成功了,这一次我们有更大的挑战,150斤,努力吧!

临时的方案往往带来更多的缺陷。我听说过一些团队为了快速解决某一个问题写了100行的SQL代码——这些SQL代码成为后续维护的噩梦。业务团队发现了这些:虽然这些版本通过加班、通宵能够某种程度上如期交付,但是交付出来质量问题太多——不可接受。但同时要求质量和进度看起来是那么的不可行,于是,为了控制风险,好吧,以后做计划的时候给自己留下余量——不信任的博弈由此开始:

用户说,这个功能我要在2010年10月1日完成。
市场/用户服务部门想了想,说,对开发部门的领导说,这个版本必须在2010年9月10日完成。
开发部门领导想了想,对开发团队说,这个需求非常紧急,这样吧,8月15必须如期交付,否则我们就丢掉了这个客户!

一来二往,双方都清楚了这个游戏规则。然而作为生态链的最底端,开发团队做不了什么——既然整个博弈决定了进度第一,那么质量只好放在那些余量里面了。“先污染,再治理”,所有的临时解决方案被使用——配置文件满天飞,SQL随便写,各式的hack写法,等等等等。到了后期交付的时候,测试问题多多,改吧,加班、通宵改吧。

如果质量不是贯穿在开发过程中,那么通过最终的质检环节来提升质量无疑是低效的。Deming说,”Build Quality in”. 质量是隐含的。形成这个博弈的最大的原因是,从前到后对交付的轻视,对质量的轻视,对于软件演进必要的理解。进度必然是符合质量功能点交付,而不是狭隘的代码完成。

原来是人祸

April 15th, 2010

这里这里,读到了如下信息:

西南干旱后,很多人认为,是由于下雨少所致,也即天灾所致。但是,查一下新闻后,发现类似的“天灾”一直在上演(仅以云南的新闻为例):2004年,我国南方“遭受53年来罕见干旱”,云南在干旱之列;2005年,云南“遭遇近50年来最大干旱”;2006年,“云南遭遇20年来最严重旱情”;2007年,“云南大部地区降水不足,气温偏高,旱情日趋严重”;“2008年云南连续近三个月干旱”;2009年,“云南省遭遇五十年一遇的严重旱情”;2010年,云南“秋冬春连旱”百年一遇……

我实地调查得出的结果是:西南干旱,一分天灾,九分人祸。

如此险地都被刨开用作农田
如此险地都被用作农田

桉树
所谓的高经济作物桉树,让物种变得单一,成为绿色的沙漠:雨水来了泥土流失,大旱来了与其他植物抢水。


一旦金钱成为从上至下追求的目标,那么什么都变了。由于在认知上的局限性,当时空上因果关系看不到连续性的时候,人索性放弃了任何信仰。60年代建立的水库设施,在改革开放近30年的时间里,就不记得修葺,以至于雨季存不下水,旱季没有水;片面的认为绿化就是种树,将侵略性极强的桉树大面积栽种,所到之处,除了桉树草木不生,动物也不来,彻底破坏生态平衡;一旦没有水,没有想办法解决集水的问题就到处打井寻找地下水,导致地下水位下降,进一步造成不可预知的影响;“先污染、再治理”带来的是花10亿去污染,然后花10倍以上的代价去治理;为了城市供水,农业和农民一起被边缘化,为了GDP, 大量的炸山开矿填海围田……

一些悲剧正在上演:情人湖上的别墅听起来如同烹食天鹅肉一样让人悲愤;沙漠上好不容易防风固沙的沙棘生态林被弄成高尔夫;还有一些扑朔迷离的东湖填湖事件,就发生在我的家乡武汉——我不敢想象,失去东湖的武汉人,会愤怒悲伤到何种程度……

这些,我们又能做些什么呢?为什么生活越现代,信仰就越匮乏?《阿凡达》中潘多拉星球上的惨胜,或许只是导演一厢情愿的美好愿望——真实情况也许是,世界之树被连根拔起,所有的树木被砍倒,地面铺上水泥和柏油,大量的超导矿石被拉走——或者留下几棵树,作为观光景点,建立一片别墅群……在最终资源毫无利用价值之后,这颗星球被毫不留情的废弃,成为宇宙中的垃圾……

何为完美

April 13th, 2010

iPad出来了,这个被压扁的iPod立刻引起了大众的吹捧。当然也迎来了众多评论家挑剔的眼光,什么不支持多任务,没有摄像头,没有USB插口之类的“七宗罪”。作为乔布斯粉丝,我一笑而过:乔布斯如此聪明并且追求完美的人,难道没有意识到这些缺陷吗?在他眼里,难道这些不值得去做吗?

无独有偶。今天有个人打开浏览器窗口,打开CruiseControl的Dash Board页面,等着看Build Result Tab下面会不会出来构建过程的输出结果(其实就是构建控制台的输出)。他等啊等啊,5分钟过去了,就是没等到。

“你为什么要看到这个信息?”
“因为这个信息有用啊”
“有什么用呢?”
“这是用户友好的一部分,不然我只看到一个正在构建的图片,却不知道他正在做什么”
“……嗯,听起来有道理,那么,即便你能看到了,又能做什么呢?”
“……还是有点用的吧?”
“你看到这个信息无法停止无法取消只能等着,如果你真的想看,完全可以到CruiseControl服务器上看,否则只能影响自己手头的工作。再说了,哪个人提交之后会等着刷这个屏幕来看构建信息呢?”

我承认能够显示这些状态当然更好。但是在过去多年使用持续集成服务器的经历中,我却不记得是否真正想起看这个构建过程——老实说新版本的dashboard我一直是不喜欢用的 – 老式的更好用一些,信息精炼,有效,迅速,直观,加上声音指示,团队所需要的仅此而已。完美的持续集成服务器,就像所有的服务器应用一样,需要的是健壮,稳定,不错报,主动通知,而不是像愚蠢的Windows更新程序一样,隔一段时间弹出来告诉你,我要如何如何了,你是否同意——很多时候都没有选择(现在的更新程序已经好很多了)。

我见过许多在错误的完美之路上走得太远的产品:Notes – 大量的功能堆砌,我敢肯定80%的菜单都没人点开过;HTC Dream (G1) – 在硬件尚不完美的情况下使用Android多任务操作系统导致系统响应毫无悬念的变慢;Windows Vista – 错误的认为华丽是系统的首要任务而将可用性置之于外;金山的剑网三 – 模仿了魔兽大多数设计在山水场景花了太多功夫但打击感和操作感觉使其无法真正引人入胜。

你要的完美是什么?这是一个值得思考的问题。有时候我们被完美蒙蔽了眼睛,过多的专著于某些细节不能自拔而对主功能产生忽视。精雕细琢的局部完美往往耗时过久,如果这些不能在真正意义上产生巨大的价值那么就是一种更为巨大的浪费。例如37Signals的Campfire – 直到现在开发团队都拒绝在聊天框里加入富文本编辑的功能(例如加粗、笑脸符号之类的),他们说“用户完全可以通过字符,例如 *强调* ^_^ 笑脸 来表达。这种功能,我们不会做”。但是与此同时,他们在图片的分享,复制粘贴的支持上花了大量的功夫。

完美不完美,取决于产物想向外界传达的意图。只有充分理解了这些意图,才能真正明白完美的局限性 – 不是处处完美,而是在必要的地方。

成长的分量

March 25th, 2010

作为咨询顾问,近大半年以来我都很少在工作时间触碰键盘。思考得太多,然后迅速的在工作场合释放,思考的过程很难传到指尖行之成文出来。

今天进入一个新的团队。一个物理位置四分五裂的团队。开始搭建项目管理工具。花了大约20分钟之后,在繁杂的页面流转中,终于开了个头。想到还有很长的配置工作没有做,客户长舒一口气之后,问到:为什么这么复杂的工具,我们自己公司还要推行呢???

我也奇怪的问。这些违背直觉的行为背后的原因是我一直想探讨的。得到的答案是这样的:

“当初也就有一个人找到了。看到公司有人帮你把流程配置好了,帮你把服务器弄好了,你只需要用就好了,那就用呗”

“那么。。。这么复杂,难道不觉得难用吗?”

“难用啊,后来就不用了呗。我以为只有我不会用……这么复杂的功能,感觉挺专业的……”

我无语的看着他们。

我想他们只是没有意识到,工具本身远远不知自己看到和用到的。工具背后所支撑的方法学和理念,是无法被给予的。逃避学习的痛苦,逃避选择的痛苦,最后逃避指出真相的痛苦莫非是从小孩到成年人的通病。在完全没有了解真相的前提下,去接受他人的选择,这些原本不属于自己的信息,如果不去思考,永远无法与自己的大脑产生反应成为自己的知识。

什么忙碌啊,都只是让自己大脑放弃成长的借口。

体制化

February 7th, 2010

These walls are kind of funny like that. First you hate them, then you get used to them. Enough time passed, get so you depend on them. That’s institutionalizing

来自《肖申克的救赎》。

越来越觉得,所有的咨询工作,最终的目的,是唤醒被体制化的人,唤醒他们原本的认知,唤醒他们原本为之追求的希望,唤醒那些原本属于他们现在却不得不依赖于指令规则的直觉。

杂记:这乱乱的秋季

November 4th, 2009

1. 用上ubuntu 9.10了。感谢小罗,在我的刻录机坏了的情况下帮我下载好,然后把把ubuntu.iso文件直接刻进了光盘中,于是乎光盘中只有一个文件:ubuntu.iso. 我纳闷了好久,为什么光盘启动不来呢…

2. 说到换操作系统这个事情,我原来也以为会惊天地泣鬼神一把将所有文件该刻盘的刻盘,该保存的保存,结果发现什么都不需要。大多数的稍微有点价值的东西都在公司的svn里;在dropbox中,在Google Doc中,在slideshare里,在DreamHost的虚拟主机的Mercurial里,于是乎,毫不犹豫的Format整个磁盘重装。Ubuntu 9.10比起以前配置简单太多了,配上cn99的源,安装上无线和显卡驱动,半小时搞定……散热问题:遥想6.04的时候,写两个小时代码左手中指小指无名指就该烫熟了。ibus比SCIM输入那个舒服啊。以后PC笔记本就Ubuntu了。。。

3. IDEA开源了。终于可以堂而皇之的干掉eclipse这个不思进取的东西了。我仍然记得三年前Shane说,Eclipse的快捷键命名比IDEA容易记忆,例如绝大多数的重构都是Alt+Shift+XXX, 而IDEA则F5, F6, Alt-Shift全上。然而为什么这个不规则的快捷键没有成为IDEA的阻碍呢?也许,也许只是在“好用”与“合理”之间,“好用”带来的非理性稍占上风。

4. 到了11月天气迅速冷了下来。记起很久以前穿着破了两个大洞的牛仔裤,凉风肆无忌惮的灌进来,凉飕飕的感觉

5. 最近在阅读《第五项修炼》,建议咨询工作者都读一下,特别是OT相关的。对我而言,几乎是字字珠玑;书也挺厚,晚上在床上敲键盘垫上,避免烫到大腿。

6. 儿子明天满两个月,好动,很不老实,话多,真是集他爹妈之大成。

7. 新闻版署要终止网易《魔兽世界》审批,并酌情处罚。不说什么了,”互联网数据中心主任胡延平表示,这是网络游戏管理乃至整个互联网治理历程中极为荒唐的一个事件。本来国务院已经明确了管辖权和管辖范围问题,文化部主导网游管理,但是新闻出版署在十一前后的一些举措以及针对网易的惩罚动作,使得局面又一次陷入混乱。惩治网易,杀鸡给猴看、明示管辖权的意思远远大于个案本身。” 丢人。丢人。丢人。

8. 这个年代,破坏权威的东西一般来说是好的。