尊重反动派

1、历史中
=====

我读熊逸的《春秋大义》时,便感叹了:无论是怎样的谬论,在历史中都能找到足够的论据。以
历史为大背景来看,正确与错误并不重要,重要的是哪种论调更符合发言者的利益。

如是,我现在也甚少与人论长短。在盛大工作的时候,Soul曾给我说:大多数的争论不是为了正
误,而是为了面子。这句我给写到了“架构师的能力模型”图中,作为架构师的修养之一,如何
看到“什么是正误,以及什么是面子”,是需要修炼的。

如同《春秋》被截成文字片断之后,各个部分就互相矛盾,而又能为甚至互悖的观点提供支持一
样,当一本书或一句话,失了去前提与上下文环境,仅仅只看文字的表面,便可以被不同的解释
者佐为谈资。如此我们追寻一本书的宏旨,便显得无比重要。在我看来,作者也可能说错话,也
可能想不清楚,写出来的文字如果有违于宏旨,那错就是错了,指了出来便是,不至于伤及作者
本心与本意。如果作者的宏旨便不对,那谈也不必谈,开骂就是。这就是出来找骂的,怪不得人。

历史中,出来找骂的多了。但开骂的人先看看别人的宏旨的,不多。

2、软件作坊
=====

《走出软件作坊》这本书是我荐给博文的。当时我只在阿朱的博客上读过几篇,觉得写得很真实。
我认为这种真实,是走过那些年的工程历史、公司经营的程序员与老板们都深有体会的。于是借
了一次机会,把阿朱推荐给博文的周筠老师。随后的进度,远出我所能料。这本书只用了不到半
年便完稿、发布了。

很幸运,这本书还是秉承了我荐它时的那种文字风格和中心思想。这种思想很简单,就是“反思”。
走了很多的路,许多人只会停下来找个地方喝喝酒、解解乏。而他们喝酒解乏的目的,是为了明
天走更多的路。而反思则不是这样,反思是“回顾所来之径”,看看什么地方不稳,什么地方有
坑,怎么掉下去,又怎么爬起来。反思就是这样,看到好的,也看到不好的。因为大家都从泥坑
里爬过来,走出来,所以反思就会看到脏东西。如果真有人一路平顺,他的反思也就失去了价值,
因为他成了特例。

软件作坊承认了一种公司和团队模式的存在:公司小,生存危机大;经验少,连写代码都还在学,
更不要谈架构、设计、工程之类的风花雪月。这种公司如果要去接大公司的单子,就还得看客户
挑剔的脸色,人家会说:我不是不给你们做,是给了你们我不放心。

“不放心”,需要依据吗?不需要的。客户的“不放心”没法衡量,不是象拿到名片去唬人那么
简单的事。很多工程专家开口闭口要原则、讲量化。你问他“客户不信任我们,怎么办”,他就
没了办法。因为大公司没这个问题,服务于大公司的顾问专家也就没有这个问题。所以大公司拿
得到单,小公司拿不到。——那么,接下来,小公司如何生存?

阿朱的《走出软件作坊》从根本上,就是从一个小公司、小作坊如何对外建立公司信任,对内建
立公司信心讲起。细节到人、到事,到方法。但是,看不以小作坊的背景,就觉得这些人、事与
方法都是啥白活,都没有“工程理论依据”。

3、我为啥好评《走出软件作坊》
=====

前些天给《程序员》写了一篇评阿朱这本书的文章,是《本来面目——大教堂、集市,与作坊》(*1),
发在09年3月份的那一期上。这篇文章对比了教堂、集市与作坊三种工程团队的结构与思想、目
标。这是我第一次站在这个角度上来想问题:为什么无论是哪种工程模式,放在国内去用的时候,
都会有这种那种的问题。注意我上面说的是“哪种工程模式”,而不是“工程方法”——我承认
一些具体的工程方法很有效果,而我问的是那些搬来抄去的“工程模式”为什么有问题。

这个问题其实到某天我与韩磊在ZDNET的采访中才突然想明白。我当时给韩磊说:我们讲人情讲
面子,但哪本书是讨论到人情面子问题的呢?我们的团队——就是基于这样的人情面子建立起
来的团队,在一些根本不讨论到人情面子问题的方法、模式与学说的引领下,怎么做?

这个问题引发了我对《走出软件作坊》和《梦断代码》的重新品读。的确,如o6z所说(*2),软件作
坊是“研究国内软件开发落后现状的最佳标本”,但o6z说的是阿朱的“做法”落后,而我要说
的是,我们的工程对象、环境的落后。例如我们从来没有想过,客户其实不懂UML,却又要求我
们的工程师去向客户展示我们的UML图——因为这样展示,才显得我们正规而专业。

跟客户的沟通,不单单是建立我们“正规而专业”的印象,还要保障沟通的“有效性”——这个
我在《大道至简》中强调过。客户认为你正规而专业了,却对你所描述的“项目内容”一无所知,
那项目的成功又从何谈起?所以,在这种情况下的最佳实践通常是:开会时我们向客户的代表及
BOSS展示我们的UML,以表现我们毫不逊色于其它XX大公司,而会议下,该秘谈的秘谈,该小话
的小话,总之让客户知道我们最终要做成什么样子,并且为这些秘谈与小话而签下订单。

o6z当然可以说这样的行为是“丑陋的”,但可有想过其背后的环境之丑陋?所以我在《本来面
目》一文中所说的,就是那些(我们的现实)工程的本相:可能丑陋,可能落后,但我们还是要
挣钱吃饭。

07年的SD2C大会里,有一位国企的高工问我,说他的一些想法总是无法推行,因为在企业组织结
构里,有一些部门在设立上就是跟他对立的,而那些人跟他也对立。所以,大多数情况下问题不
是他想要做的对或不对,而是根本就不可能被接受。我当时跟他说,这就是权力、权利之争,不
是工程本身的问题。解决它的方法,就是清洗掉那些不利于你的组织与结构。你可以上窜下跳,
可以通过手段换掉那些人,或者成立更有实权性质的机构……总之,你要么改变环境,或者改变
目标。体制上不对,你就动体制,要么包容它,要么干掉它。这就是权术。我当时说到这里的时
候,那个高工汗都下来了。我说,结果要么是你被干掉,要么就是你把事干成。但是,这些与工
程本身无关,这是你的环境中的问题。

丑陋吗?现实吗?清理环境谈何容易?那可是抛头颅洒热血的事。所以我在《本来面目》一文中
说“权术可以弄,道理也要能讲”,那是委婉的,没这么血淋淋。

 

 


4、再说狭义工程
=====

从《人月神话》中,我注意到我们的——大环境下的——工程定义是有问题的。银弹问题中的工
程目标其实是:抽象软件构成的复杂概念结构。与此相关的次要目标是:将需求……映射成计算
机的执行逻辑。简单地说,这种工程的经典定义中,“完成一个项目”是次要的目标。

而我们大多数的公司,是在为“完成一个项目”而发愁。至于软件的、工程的本质复杂性,与他
们是没有什么关系的,也与当下的那个项目没什么关系。而我由此更深一步的认识是:完成项目
所得的经验,是了解工程本质所必须的依据。也就是说:实践出真知。

到这时我形成了关于狭义工程的两个主要观点:其一,狭义工程与广义工程,在(人月神话所述
的)根本目标与次要目标上是正好相反的;其二,狭义工程的结果,是广义工程讨论的基础,亦
即是实践与反思,是广义工程问题得以解决的必要前提。

这两个观点使得我认可了《走出软件作坊》中所体现的实践精神。我不反对对这本书的种种负面
评论,因其不足而愈显珍贵。我在那篇评论中说“《走出软件作坊》是具体工程的成功案例”,
并不是说阿朱的成功,而是说“狭义工程/具体工程(这样的理论)”成功地找到一个案例。

5、总是有问题
=====

所有我看到的关于这本书的书评中(无论正面或负面的),我认为最有价值的是caoz的一篇“
不出软件作坊
”(*1)。名字有点哗众,但底子里的确是有料的。因为caoz兄一眼看到了问题所在:“但
是,必须说,(阿朱所在的)那个行业和互联网行业完全不可类比。”他甚至强调:“如果你呆
在那些行业久了,进入互联网,还不如一个纯粹的新人进来……”

相当精彩。

如果一个人读这本书,忽略了阿朱所在的行业,所处的背景,那么阿朱那些方法也就失去了依托,
变成了怪招坏招。caoz兄指出“那个行业”与现在大多数人所处的互联网行业存在区别——当然,
具体何种区别却是没有详述的——这已经足以显出caoz的眼光之精到。

再看看caoz的背景,很好,在这篇文章中也讲到过:(caoz有特殊的工作背景和工作资历,)在
电信行业呆过,做过企业软件,呼叫中心,也做过网络安全,并且在互联网领域……所以他100%
可以理解“阿朱说的情况和故事”。这个,就是读者的背景,以及与作者的共鸣。同时,caoz也
由此指出阿朱的不足:他未曾在互联网领域有过经验。

事实上,不单如此,我第一次见阿朱,也给阿朱说过:你缺乏大公司的工作经验(正好这一点caoz
在后文中也提到了)。所以现下我们讨论这本书,要看到这些背景,书中对“大公司的模式”,
以及对“互联网的模式”讲述得是几近于无的。同样的,处于这样的背景中的读者来看这本书,
一定要小心而慎重——他或许可以帮你理解别人(例如你的客户、小公司),而对于你所在的环
境,则未见得适用。

再举一个有趣的例子。

o6z在“你的就是我的”引了一段评论(*2),这是robert回复阿朱的,说:“你的老板真是 NB,把决
定公司生存和发展的方向问题交给你这样的 CTO,自己天天忙销售忙资金忙公司管理来实现你的
方向,佩服佩服。”当然,o6z持以相同的观点,说“大家自己接着思考下去吧”。这个例子其
实相当地好,因为o6z并不知道,在许多小作坊里,老板其实什么也不懂,从做什么,到怎么做
一概无知。能“忙销售忙资金忙公司管理”的老板已经相当不错了,有些老板还几乎什么都不忙,
只是见客户拉关系找生意,事情到头了,全是CTO(或别的什么名头下的一个高管)去忙。这样
的公司可是不少。这样的公司,难说就没有必要存在了吗?robert以及o6z对“存有这样现象”
的公司一笑置之,而偏巧许多小公司就是活在这样的规模和环境之下。

所以,脱离环境去讨论工程,一如缘木求鱼,所得者非。

再到后来,o6z就提出了“公司老板,或者你的上级的想法,绝大多数情况下不要去揣测。只有
混子才会去琢磨老板的,因为他们是要混。”其实这同样是可笑的,因为在小公司规模下,老
板并不怕管理人员去揣测他的意图,反之,他更希望管理团队能理解他的想法和要求。因为团
队小,效率就更加重要,老板能尽可能明确表达的,就表达,表达不了的,在某些场合下不适
合说的做的,其它的角色就得补上。举个例子来说,大公司里秘书偶尔要给老板打打圆场,在
小公司里,连秘书都没有,跟着老板出去的就是挂个CTO头衔的那个“你”,你不打圆场,帮衬
一下,有些事情还真下不来。而进一步讲,要放在o6z的语境里,这个人就是个彻头彻尾的混子
了,当不得CTO这样神圣的角色了。

哈哈。在小公司里做过就知道,CTO这个TITLE下面,有时候也要打打杂地。

6、尊重反动派
=====

在QCon的讲演里,我就说到过这个小故事,叫“尊重反动派”。这句话其实来自《老子》中的
“反者道之动”。我以前很为这句话困惑,一度将它理解为“反者,道之动能”。亦即是说,
道的运动,是其相反的力量所推动的。这在一些情况下也是适用的、合理的。比如一些人见别
人骂它,便一鼓作气写下三十篇长文来回骂,这就是“反动者”的动能。

但是,这句话还有另一种理解,即“反者,道的动向”。亦即是说,道,总是向着与它相反的
方向运动,正所谓物极必反,便是这个道理。从我理解后面这层含义之后,我便愈少与人争辨。
此前说的“争论可能是面子问题”,那是使我在形式上减少了与人争论的兴趣,而对上面这句
话的理解,使我在本质上对争论失去了冲动。

既然物极必反,那么所谓正确与错误,都与时间、场景相关。一个观察所得的现象与经验,在
时间飞逝之后,现象的本身便没有意义。存在意义的,是对现象的思考与所得。更深层面的,
是对现象背后的种种关系的剖析之所得。而这些得,即便是“道”一样的至理,最终仍然向与
它截然不同的方向行去。

所以我说“尊重反动派”,因为他们其实是你的目标。你看到他们在反对什么,其实你就在追
求什么。阶段性的,你可能需要维护自己的言论,亦或得失面子,但长远地来说,反动派既是
你的动能,也是你的动向。比如说,o6z说“这么写作混乱,内容组织莫名其妙,命题奇怪的文
章,不应该是一个CTO的作品”,其实的意思不过是说:阿朱,我更希望看到你对这些内容的提
炼,而非仅仅是杂陈地叙述。

感谢那些反动派吧,如果他们还将固执地存在。

7、其它
=====

其实阿朱并非不知道这本书所限的环境。他在作者序里说“我只在企业管理软件开发公司工作
过,而且只工作了十年,只服务了两家公司,所以我的见识恐怕难免狭隘,欠缺普遍性。有些
网友问我硬件开发公司、网站开发公司的开发管理问题,我答不上来。如果哪位网友看了书后
非要生搬硬套应用到自己的工作中,我奉劝您千万别这么干。因为每个方法都有它适用的基础
条件。比如说……”,所以说阿朱起码是诚实的。至于批评者,如果连作者的序言都没读过,
便要开始评论了,起码,也是有失厚道的。

不要一味地听广告。广告总是要打的,酒香也怕巷子深呢。但是广告总是片面地强调“产品”
的某些特性,而忽略其它。读者如果只看广告,那就掉沟里了。多读些不同的书评,尊重一下
书评中自己“并不那么喜欢”的言论,多冷静下来问问自己的所得所见,才是真读书者。

广告嘛,总是会夸张些。比如今天CSDN里有一个关于JAVA视频培训的广告写着“空前绝后的超
经典之作”,你跟这较什么真呢?真要绝后了,难不成天下人都死光了么?所以这广告叫可笑,
跟这广告较劲的,也叫可笑。可笑可笑,天下之是之非,可笑而已。

不要认为什么都是错的,也不要认为什么都是对的。好或坏,是有语境的。

不要以为立场摇摆的就是墙头草,不要以为言不切实的就是老油子。需要决策的时候果敢,需
要分析的时候犹疑,是好的特性。分不分得清什么时候在决策,什么时候在分析,才是问题。

在数年之后,也许我们仍然可以说“阿朱没有在大公司工作的经验”,但也许,他已经有了
“把公司做大”的经验。在此,祝他一路走好。亦愿读者能慎思、明见,以及读有所得。



==========
  (*1)《走不出软件作坊》:http://hi.baidu.com/caoz/blog/item/cc99033b905954ed15cecb93.html
  (*2)《你的就是我的》:http://ozzzzzz.javaeye.com/blog/362498


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值