总论:领域角色的关注

第一节 什么是领域角色的关注

第二节 基于组织视角的观察

第三节 工程的本质问题是组织

工程不是“做”的,是“组织”的。这个“组织”,既有名词的含义,也有动词的含义。除了这个层面上的意思,他还意味着一旦没有确定的组织模式,那么一个具体的工程也就难以落足——即使是个体工程,也有一个确定的组织模式。

组织的源起及其发展的过程,是一个核心问题。

组织的背景

然而在实践中,并没有人注意到工程的组织问题,而只看到了工程实施的结果。这些结果包括RUP、UML、XP以及未知的种种模型、框架和方法论。所有这些看起来可以一统天下的,或致力于一统天下的,都最终走出了他们原本栖身的岩洞,走入莽莽苍苍的草原或森林;而它们还在认为可以通过敲击岩壁去听发出的声音,并以之判断树洞、沙穴或草坑的居住年限。

它们的共同问题是:没有考虑到具体方法实施时的组织背景。

组织是一个项目的原始背景,组织的构成是人,是人群。工程中最终要解决的,不是具体方法的问题,而是将不同性格、性质的人组织成群体并实质推动的问题。从这个角度上来说,《集体行动的逻辑》所带来的思考远比《人件》、《人月神话》来更加深刻和直接。

无论是以人为工件,还是以“人/月”为度量衡,根本上还是把人作为个体来思考的。即使这些直指个体的思考是必要的,但也无助于组织与该组织下的集体活动。

契约社会与人情关系之间的区别

中国的传统社会模型是基于人情关系的,这与儒家的社会阶层化有着密不可分的关系。儒家从根本上来确定了天地人伦的关系之后,人们的社会行为、族群关系以及家庭婚姻等等都是在这一背景下的自然发展。因此,我们讨论的同学、朋友、党派、宗族以及更简单的门当户对等等,都是人情关系的基础单元。并且这样的基础单元深深地植根于我们的民族文化中,是文化内涵的一部分,也是构成我们的、民族化的人性的一部分。

人情作为社会成本(如果将规模缩小到一个组织,则是组织成本)的一部分,是我们这个社会的现实状况。这个成本在不同的领域与不同的事务之间,并不是均匀分布的。有些领域,例如产品生产的人情成本会少一些,而另一些领域,例如组织构建则会多一些。粗略的分析这一分布的模式,大体上(并且与后面我们要讨论的契约社会比较来看)可以认为:所需要决策的事物对人与人之间的信任的依赖程度,决定了人情关系的比重。

我们将人情社会中的人情成本,转嫁为信任成本的源由在于,很大程度上地来说,人情是构成社会信任(以及组织信任)的要素。对于任何一个事物的决策,信任所带来的收益往往是别的努力所无法达到的,例如开上100小时的会议抵不上老总的一句口头传达。这看起来是政治与权力,事实上也可以看着对权威的普遍信任。

我们讨论的“组织”,既是社会背景下的一个局部群体,也是社会行为模式下的一个普遍模式。简单的说,我们的大多数组织是人情组织,而这样的组织下也是人情成本转嫁为信任成本的。正如某天,一个开发人员给我说他想转职去做管理,我问他的第一个问题是:你认为去做管理,有多少人会听你的?同样的问题是:“你去做产品,有多少人听你的”,或“你要去创业,又能拉上几个兄弟的人马”?

当这样的问题被提出时,我们的大多数开发人员都哑口无言。因为我们多数的、工匠思维下的工程师是关注于做事,而不关注于人情的。在我们的社会与组织背景下,事做得好不好,只是整件事情中的一个比重较大,但不十分关键的因素。同样的,作为一种“集体行动”的组织方法,也与“在做的事情”关系也并不大。例如我常常举到的例子,“为什么外行可以当领导”?当然,这一设问本身也有逻辑问题,我的意思是说:领导作为一门技术,显然也是有其方法的;所以,一个反过来的问题是,一个“很有领导能力”的领导,为什么不能做(这件事的)领导?然而,这样的逻辑——至少在我们的背景下——掩盖了基于人情与信任的那些逻辑——亦即是我们的组织基础以及由此进化而来的行事逻辑。

然而我并不是要将这样的组织与逻辑引入到我们的“工程”中来。正好与此相反,我是要将这些因素从工程中推出去。我的意思是想彻底地问清楚,工程到底是什么呢?在我们的讨论语境下,所谓工程,指的是一种行事方法。如果我们不能清醒地认识到“方法是依赖背景的”,则我们不会转而去看一看这些背景,也就不会把这些背景摒弃在我们的工程之外,或者善而用之,变成有益于工程方法的一部分。然而这仍然存有巨大的风险:工程究其底里仍旧是事,它必然有着方法的背景。那么如果我们把“这样的组织与逻辑”推出去了,又能把什么样的东西拿进来呢?

我的答案,并不是“契约”。

只有基于契约的利益得失会严重影响到社会成本时,“契约”才能够作为组织手段实施。这是基于“自利”这一思维模式的、必然的、必须的组织结论。换个简单的说法,就是如果毁约代价大,则大家都守约;否则,大家该人情还人情,该无耻还无耻。就如同没有极端代价的、公义的法律约束,大家就会犯法一样——这看起来很是好笑,但我们的社会在底子里就存在着这样的一个模式 ①。


①:至于这一模式诸多的内在与外在的驱动力,还可以有相当多的讨论,但并不是我们这里的话题。


有没有可能换一个视角来看这个问题呢?比如信仰,又比如文明。但如果没有与法律这样一种“人与社会的契约”类似东西的话,又何以判断行为“是否文明”,或是否是“信仰所确定的一部分”呢?看起来,“道德”可能是一个很好的解,也就是“讲道德”大概是文明的,或符合某种信仰的规义的。但“道德”又是什么呢?

我一直说我们的思维模式是理性而又逻辑的,因此我们必须先说清楚“是什么”。然而在我们的实践中,是不是要这样才没有“错”呢?看起来,我们一方面在花极大的时间,去讨论这样的“正确与否的问题”与“问题的正确与否”,却在一些现实上要去解决的“事”上寸步不前。

换而言之,我们是不是可以把大家普遍看起来“道德一些”的东西拿来就用,而暂且无视它学术的、逻辑的或严谨的定义呢?

回到契约的本质上来。即使我们承认一个人的选择是自利的,承认这个选择的背景是阶层化而非自主平等的 ②,但为什么不能将选择的结果视为契约的呢?“诺”于一职,“诺”于一事,于“人情社会”真的就是挑战么?我认为不是的。所以在我的看法中,工程在具体上于我们的解,便在于大家对事的负责与不负责,而不在于对组织的“是否契约”的讨论。若变了法子要去改变组织,或要去理解组织的全体,既无益于我们的一个具体的工程,亦无益于我们自己的选择——如果是后者,那你的选择应该不是“做一事”,而是组织的革命 ③。


②:《社会契约论》是从自由、平等开始讨论的,因此契约本身的成本即是社会关系的成本。基于此,维护契约及其平等性才有必要,因为这就是社会信任的全部出处。然而如果我们以“既存的人情”与“基于人情的组织”来讨论这一问题,那么人情关系在信任的背景中所占的比重就相当地重要了,而“维护契约及其平等性”的必要性与这一比重正好相反。
③:做好一职,做好一事,是我对事的求解,而非对组织的求解,亦非对软件工程的求解(它可以视为从组织视角出发,在具体工程下的一个可能的解)。需要明确的是,所谓“一诺”是基于道德的,而非基于契约的,只是在形式上用到了契约的封皮罢了。


对此,承认还是漠视?

学术的讨论通常会将契约与人情二元对立起来,试图非黑即白的讨论这二者。大多数情况下,一个论者必须表明他在两个观点之间的明确态度,并且义正辞严地批判另一种。出于学术的讨论与真相的挖掘,这样极端的思维——强调:在一时之间——是必要的,因为若不如此,我们便难于看到一面或另一面的真相。因为了这种学术讨论的氛围,我们在其中要说“契约社会不错,人情社会也很好”,那么就会被斥为和稀泥,变成两种观点同时讨伐的对象。大家争来伐去,把第三者打倒了,又开始二人间的互殴,这是市井间打架的惯常路数。

改革家也会跳出来。他们往往关注于旧事物的败亡,以及新事物全面争取阵地的那一刻。这种情况下的局面通常是:旧的东西被没有了,即使有一点点可能存在的痕迹也要用黑布挡了起来;新的东西看来已经存在了,至少每个人的口号中都这样地呼喊着。然而这时,这些“改革家”(例如那些来向你宣传的布道者们)立即就消失了踪迹,因为他们也在瞬间失去了主意,不知道应该怎么办才好了。——他们的义务与职责,原本只是改革来着,无对象可革了,这样的角色也就不复存了。

所以真正有意义的改革是革新,而不是革命。革新是容旧渐新的,革命是推翻了事的。然而既然如此,我们便会推知一个重要的事实:旧的,必须与新的共存着非常长的时间。这意味着,这一过程中旧的必须渐渐的“懂得”新的,而新的也必须渐渐得“容得”旧的。于是旧的不再旧,而新的也必然不再是最初设定的那个“新”。因为,“新”的自身也必然是在发展着的,如我一再说的,即使那些“(看起来更正确的)新东西”是真理,也只是一时暂存的“真理的某个表象”,我们必是在追求真理的过程中揭示它的各个方面,而最终——以人类的终极来说,得到一个所谓的真理的。

看起来我是把这个问题变成了一个哲学的讨论。但问题在于,对于“承认还是漠视”这个设问来说,观点无非是“承认”、“漠视”以及“一边承认着,又一边漠视”。这样的观点在二元论的、一元论的思维体系中,总是要去打倒一个两个的。于是我们大家就变成了一群聒噪的村妇,为着地头上的几株桑树占了谁家的地盘而厮打不休。

然而又过了些年,无论吴、楚都归作了秦,这些厮打也就全然失去了价值。

学术与践行的区别就在于此。能用就用是践行的第一原则,小平同志的话更简单直接:不管黑猫白猫,能抓老鼠的就是好猫。而在我们的工程实践中,我们的背景是人情关系,是阶层管理,是不完善的规章流程……我们若是无视于这些而去实施某种“标准化的”工程,那是有革命的胆量却没有改革的眼光,勇而无能;若是受了这些的牵绊,便又陷入了人事的、章程的困局,因循守旧故而难有破局。

然而我的问题一直不在于这样的一个“看似合理而又毫无意义”的结论。亦即是说,偏左亦死偏右亦亡,是通常学术所谓“骑墙派”的观点。——这些骑墙看戏的,通常置身事外,将看戏视作一种乐趣亦或是一种必须。尽管这样的“结论”无助于任何的实践,然而这一“过程”——亦即是

“停下来,看看你们在干什么,在什么样的背景下干”,

却是实践所必须的。

所以我认为,工程的问题,尤其是一个具体工程的问题,还是要回到工程的本体——亦即是这个组织与系统的背景上,重新地审视才对。无论那些争吵不休的学术家,或是那些埋头苦干的践行者,都应该仔细的看看我们的工程环境,看看那些“正在做”的做法,看看那些在组织中被记着“人头数”的工程师,以及被记着“大头数”的管理者们 ④。

我想若是停了下来,哪怕一刻,也是有益于我们前行的。


④:在一个组织分配的群体中——简单地说,就是大多数的公司中,一个部门或团队只是“你有多少人”,以及有多少个“高管”或“大V、大P”这样的概念。组织管理者对“人/角色的性质”的


组织与系统

如果“你”已经是组织角色中的一员——例如某个架构师、项目经理或程序员,那么当跳到系统之外去思考时,你会提出的有关组织的问题是:那个人是谁、在哪里以及在做什么?人总是能看清别人而无法认识自己,因此当你看到“那个人”其是就是“你”的时候,你就已经看到了整个体系、整个体系中的每一个人与每一个“我”——当看到“你”的时候,你已经游离于自我之外。

于是,你的问题是不是在另一个体系上,或在你当前的体系上,只是你的视角问题。例如当你辨别出了所谓的“另一个体系”,以及“当前的体系”,那么只是你因为你观察的时候站在了两个体系之间或者前后。如果,你能够站在由二者构成的“整个的体系”之上,那么你的问题就被投放到了这“整个的体系”之中,变成了一个确定的问题。

而所谓的“整个的体系”,就是整体。

你看得到“整体”吗?

所谓“架构师要有大局观”,其实就是指架构师对系统全局的思维能力。例如,当你把需求方纳入你的思考范畴之后,你就来到了更为复杂的工程背景设定之中。这时你需要考虑的问题,将不单单包括一个项目的具体实施过程,也包括一个项目如何产生与交付。影响产生或交付一个项目产品的因素极其复杂,从社会的产能,到各国首脑的多方会谈,甚至到跟你握手的那个客户经理能否在楼下顺利地找到停车位……这所有的一切,构成了一个项目过程的外部因素。而你的组织,只是飘摇在这些外因之下的、微不足道的一把木片而已。

只有站在组织之外,才能看到组织的整体。无论那把木片中的某一块(例如架构师这个角色)的材质是何等的优良,也不能决定自已以何种形式、能否足够优美地飘摇。因为局部不能决定系统,它只能影响后者,或受后者影响。最简单的实例是,你的项目过程再完美,但老板说客户已经破产了,于是你的项目就终结了。在这个例子中,“公司+客户公司”之间的关系,决定了项目的成败,与团队、组织、过程这些因素,全然无关。

无论如何,组织问题以及工程实施问题仍是我们讨论的“系统”的具体视角,并不是其全部。但我们不可能要求一个或某几个角色去关注所有的系统问题。本书也不是“系统论”,因此并不以讨论系统的整体、关联、等级、平衡、时序等等这类问题为主旨。本书希望通过“领域角色的关注”这样的设问,来发现各角色所在领域中最应当关注,以及对系统影响最大的问题集。因此,本书的后续部分将讨论这些问题集以及不同角色的思考,至于这些思考过程与问题的解决方案是否是某个工程方法的实施要件,是一个应用话题,而非本书的焦点。