尊重反动派

尊重反动派(上)

--再说阿朱的《走出软件作坊》

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

尊重反动派(下)

--再说阿朱的《走出软件作坊》

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

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

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

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

5、总是有问题
===
所有我看到的关于这本书的书评中(无论正面或负面的),我认为最有价值的是caoz的一篇“

不出软件作坊”。名字有点哗众,但底子里的确是有料的。因为caoz兄一眼看到了问题所在:“但
是,必须说,(阿朱所在的)那个行业和互联网行业完全不可类比。”他甚至强调:“如果你呆
在那些行业久了,进入互联网,还不如一个纯粹的新人进来……”

相当精彩。

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

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

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

再举一个有趣的例子。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. #1 by on 2009年04月27日 - 12:58 下午

    在CSDN上读了阿朱的几篇文章,觉得很能引起共鸣,可能是因为自己也做过ERP外包和CRM相关系统的项目。目前项目经验仍然很浅,但是,至少我觉得阿朱的经验是对指导我们将来的工作很有意义的。至少目前为止讲实施这一层的文章不多,而这个又对小公司非常重要。真的感觉现在国内小公司能把一个项目从头做到尾还能收到钱的本身已经是很不容易了。

  2. #2 by xin on 2009年04月27日 - 1:20 下午

    文章的字体可以设得更好一点,不知道为什么,看着比较眼花。

  3. #3 by Aimingoo on 2009年04月27日 - 3:30 下午

    这个这个,邹老师,这个得怪MS的Live Writer。那上面的字体设置跟MSN Spaces上不一样。刚改回来,不过看起来,好象也好不到哪里去。毕竟不能象WORD里一样排版。

  4. #4 by xin on 2009年04月27日 - 9:54 下午

    现在好看多了, live writer 也可以进行简单的字体,格式的排版。

  5. #5 by 中元 on 2009年05月5日 - 11:01 上午

    老周有进步~

  6. #6 by jacket vest womens on 2017年05月4日 - 4:07 上午

    With havin so much content do you ever run into any problems of plagorism or copyright
    violation? My website has a lot of unique content I’ve either authored myself
    or outsourced but it seems a lot of it is popping it up all over the web without my agreement.
    Do you know any ways to help reduce content from being ripped off?
    I’d truly appreciate it.

  7. #7 by platform shoes on 2017年05月13日 - 4:48 上午

    Have you ever considered writing an e-book or guest authoring on other blogs?
    I have a blog based upon on the same subjects you discuss and would love to have you share some stories/information. I know my subscribers would value your
    work. If you are even remotely interested, feel free to send
    me an email.

留下评论