软件与中国古代史:政界往事(中)
[Mental Studio]猛禽[Blog]
在上篇[11]里我就“王安石变法”这一事件来讨论一下在软件公司里进行“变法”要谨慎从事,特别是必须要先了解现有的问题,有针对性地进行,并且要注意在稳定的基础上进行改进。
本篇继续讨论有关“王安石变法”的另外一个方面,这也是我在《软件与中国古代史:大历史观》[10]一文中说到过要另外撰文讨论的问题:关于软件公司中的政治斗争。本篇将主要讨论平级之间的斗争,以及由此所带来的危害,最后讨论了一下要如何保持竞争的适度等。
继续回到王安石变法的话题上,来看一下政治斗争的恶果。
我们知道,王安石从变法伊始,“他所招来的不仅是公愤而已,而是全体既得利益阶层疯狂地猛扑”[2]。虽然司马光是反对派的精神领袖,但是他的为人和道德操守让我们不愿意相信他是出于私怨或是其它的权力利益的考虑而反对新法的。那么就只能将其解释为这是出于他对历史的了解和对儒家传统的坚持。“王安石虽然也属儒家学派,但他解除了儒家加给他的束缚”[2]。这个束缚就是“祟古”。
一般认为儒家是起源于孔子,但“儒”的概念却比这要早。当时的所谓的“儒”,是指“靠教授典籍为生,还靠在婚丧祭把及其他典礼中‘相礼’为生”[3]的人。“是古代文化遗产的保存者”[3]。孔子就是这样一位“儒”,所以他致力于要在那个“礼崩乐坏”的时代里“克己复礼”。这里说的“礼”就是传说中的周公制定的古代礼法《周礼》,后经孔子修订后成为儒家经典四书五经中的《礼经》。因此,“祟古”一直是儒家的核心思想之一。
而“在一个农业国家,人们总是尊重过去,所以这些儒也总是最有影响”[3]。自从西汉时期根据董仲舒的提议而“罢黜百家,独尊儒术”以来,到了宋代,儒家思想已经成为国家绝对主力的政治指导思想,甚至已经发展到僵化的程度。下面说的事件就可以说明这个问题。
早在王安石变法之前六年,宋仁宗赵受益逝世,无子嗣,侄子赵宗实(赵曙)继位,为宋英宗[4]。对于英宗该如何称呼自己的亲生父亲濮安懿王赵允让就
成了一个问题。宰相韩琦、副宰相欧阳修都认为应该称父亲,而以司马光为首的儒家顽固派大臣却认为应该按儒家的宗法制度称伯父。这就是有名的“濮议”[2]。而就在士大夫们在为“濮议”这样的小事争论时,在宋帝国的西部,大宋的军队被小小的西夏国打得落花流水,丧师失地,死人万千。而这些士大夫们对此事却是用“精神胜利法”在进行自我安慰。在他们眼里,维护儒家的宗法制度远比维护国家的主权和领土完整更重要。
就是在这样的政治背景下,王安石却致力于除旧创新,这就与传统的儒家思想发生了激烈冲突。加上王安石变法也触犯到了文官集团的既得利益,斗争于是不可避免。
其实在更早之前的王安石变法前二十六年,时任宰相的范仲淹也曾经试图进行一次改革,然而他的改革范围远比王安石要小,就已经受到强烈的反对,最后不得不辞职并恢复旧制了事[2]。真让人不敢相信这就是那位写下“先天下之忧而忧,后天下之乐而乐”的人。这也从另一方面可以看出,在那个时代想要以个人或少数人的力量,来对抗根深蒂固的体制几乎就是不可能的任务。
王安石却偏不信这个邪,仗着有神宗的支持开始变法。但由于他的力量有限,不可能将所有的反对新法的既得利益士大夫阶层和顽固派儒家文人们统统贬谪为
平民,最多只能将他们贬到地方上。同时为了有人协助推行新法,他只好贸然地起用了大量的新人,这就不可避免地引入一些人品不好者,其中就包括后来成为元丰
党骨干,同时也是大奸臣的章惇、蔡京等。整个变法的形势最终变成了:上面除了王安石以外,多是一些怀着一己私利的奸佞之徒;而下面地方的执行者却很多都是新法的反对者。加上恰逢自然灾害,变法失败已成必然。
这就是王安石与反对派斗争的第一个恶果:把他的新法引向了失败的结局。
早在王安石变法刚开始,司马光曾三次致信给王安石,劝他重新考虑变法事宜,但王安石用那篇著名的《答司马谏议书》回应,二人遂决裂。神宗去世后,司
马光主持元祐更化,将新法的所有内容全部废止,包括如免役法这样的已经被实践证明行之有效的内容。当苏东坡向他建议要区别对待时,遭到了司马光的断然拒
绝。
这是司马光与王安石斗争的第二个恶果:新法虽然失败,但多少还是有点成果的,可惜被司马光抛弃了。
在王安石和司马光先后去世之后,元丰元祐两党交替执政,斗争持久地延续下去。并且两个派别由开始的主义之争、道义之争,迅速蜕化为权力之争。而伴随着权力的争夺,政治空气迅速恶化,政治道德不断堕落。最后,整个帝国便裹挟在这邪恶中,大踏步地走向无可挽回的崩溃[1]。
这是后续斗争造成的第三个恶果:反复的斗争造成国家的巨大内耗并最终导致了北宋帝国的灭亡。
今天的软件行业同样普遍存在着这样的情况。
虽然大家都知道斗争是不好的,但是只要有人存在,斗争就无处不在。每个人都会有自己的想法,当这些想法发生矛盾时自然就会发生斗争。加之人类的嫉妒本性以及利益冲突等,也都有可能导致斗争。更何况勇于并且善于内斗在中国已经有数千年的历史了,这也是中华文化中的一项恶习。而一旦组织中的人们陷入了斗争的泥潭,就会很容易失去理智,不能够理性地看待问题。一个例子就是前面所说的司马光将新法的成果统统抛弃。
另一个例子则是发生在那之前约200年的晚唐。李德裕代表的世家出身士大夫与牛僧孺代表的平民出身士大夫之间的朋党之争,延绵二十六年,使得本已衰
微的大唐帝国加速奔向终点。其间有一事很能说明问题:牛僧孺本来是一正直爱国之人,但是当他的对头李德裕在任西川节度史时,收复被吐蕃所占之维州,并“发兵镇守,因陈出攻之利害。时牛僧孺沮议,言新与吐蕃结盟,不宜败约。乃诏德裕却送悉怛谋(吐蕃降将)一部之人还维州,赞普(吐蕃首领)得之,皆加虐刑。”[5]“时皆谓僧孺挟素怨,横议沮解之,帝亦以为不直。”[6]说明事后大家都认为牛僧孺在此事上并非以国家利益考虑,而是只想到要打击李德裕的功劳,结果不但把已经收复的维州拱手让人,还害得降唐的兵将被虐杀。柏杨评价说:个别检查,如李德裕的能力,牛僧孺的道德,都使人尊敬。可是,只要一涉及党派,便立刻失去理性[2]。
正如《人件》所指出的:软件开发管理不是一个技术问题,而是一个社会学问题[7]。
在软件公司里,当一个新的管理人员带着新的管理理念到来的时候,就是这个公司发生大范围斗争并陷入动荡的开始。作为儒家文化熏陶出来的中国人来说,
通常都会对变革表现出抵触的情绪,于是出现了新旧两派的斗争。然后就是变革失败,旧派重新掌权恢复旧制。再之后,就是反复的更替,直到一个新的稳定状态或
是结束。在我曾经工作过一个软件公司里,就曾经发生类似于王安石变法及之后的反复这样的事,在短短的两年时间里,反复发生了四次。我不敢说这在任何一个软
件公司里都会出现,但在儒家文化背景的中国,出现这样的情况应该算是很正常的。
那么为了防止出现这样的斗争恶果,要怎么做呢?
首先,就如上篇[11]所说,任何形式的改革都必须以稳定为前提,特别是一定要避免进行“全盘否定”式的大变革,因为这是导致大范围斗争的一个很常
见的原因。其次,就是在日常的管理工作,要及时调和矛盾、缓解冲突、协调各方利益,防止形成斗争环境,把斗争控制在适当的范围和程度上,以达到尽量减少由
此所带来的损失的目的。
但是要防止形成斗争环境将会面临着一些阻力。因为在软件公司中,通常都存在着这样或那样的斗争环境,特别是在一些管理结构不尽合理的软件公司中,问题尤为普遍。
比如在一些没有产品管理部门对产品的功能需求进行控制的情况下,研发部门的需求直接来自市场销售部门,则当销售部门为了业绩草率地向客户承诺各种功
能需求时,就肯定会与研发部门发生矛盾。因为有些功能需求本身在技术上就存在矛盾,不可能都实现,或是实现的代价很高。还有像在没有项目管理的研发部门
中,开发团队与测试团队之间也存在着矛盾的可能。特别是在那些只会将BUG与绩效挂钩的机械化管理者的管理下,这种矛盾就更为突出。
然后是斗争与竞争的关系。在一个组织中,适度的竞争有助于保持组织的活力,但是过度的竞争就会演变成为政治斗争。《人件》里明确指出:过度竞争将破坏团队[7]。特别是在这种情况下存在着人为制造斗争的可能性。比如防止形成“私党”就是一个常见的破坏团队的理由,于是就会有人在这样的理由下打着维护竞争的幌子来制造斗争。
因此,在组织中一般都需要有人来从事协调工作,化解不必要的矛盾,把斗争控制在合理竞争范围内。软件公司也不例外。比如在上篇[11]中提到的,微
软采用的产品团队结构是由六个环节组成,其中的项目管理环节就是产品团队中处理各方面的协调工作的。在微软中,项目经理的人数占到了总开发人员的五分之一
[8],可见微软是多么重视这一工作。
为什么需要项目经理?在微软中担任项目经理一职多年的熊明华是这么说的[8]:
开发人员能够集中精力做开发,而不被管理琐事所困扰;开发队伍需要有视野良好的领导;项目组内部不同角色人员间需要好的沟通协调;工程开发和商业动作之间的差别需要有人从中进行连接和平衡;开发队伍与外界的联系沟通需要有专人进行管理和协调。
可以看出在上述的五点需要中,有四点是协调的需要。包括团队内部、外部的协调工作。可以想像,如果少了这样一个重要的职位,那么在产品团队内外都可能存在很多的纷争,而相应的恶果也将在纷争中逐渐显现。为了能协调好各方的关系,熊明华说他甚至在微软的一位项目经理桌上看到一本《厚黑学》。
除了要在团队中设置处理协调工作的项目管理人员以外,还需要在制度上对此予以保证。一方面是在上篇[11]中提到过的“平等沟通”。另一方面是“隔离”。
关于平等沟通,可以用陈宏刚对测试独立性的论述[9]来举例说明。测试部门并不是隶属于开发部门的,而是与开发部门平等,项目经理对于双方的矛盾
——比如当测试人员发现一个BUG时,而开发人员认为这个BUG不重要,可以不修复——需要根据用户需求或技术难度来权衡。只有改变测试工作的从属地位,
确保测试部门的独立性,才能保证测试结果的客观性。
关于隔离,我还是以我以前的公司为例。因为有一段时间公司是以销售部门主导,所以那时销售部门可以在客户那里随意承诺各种需求,然后回公司直接向开
发人员提出。由于没有很好地隔离开发团队内外的关系,最终导致了工作的混乱,很多功能出现了反复(一个销售人员从一个客户那里得到的需求是这样的,另一个
销售从另一客户那里得的同一功能的需求却又是完全不同的)。
只有在上面两个方面得到制度上的保证,才能使项目管理人员的沟通协调作用得到有效的发挥,才不致于形同虚设。
但项目管理工作只能对基层的团队成员提供协调帮助,而在软件公司中,高层管理人员之间的斗争是更大的危害。这种以高管人员为核心,形成了派别(私
党)的斗争,范围会很大,而且会有反复,持续时间也长。这就像是晚唐的朋党之争或是北宋末年元丰元祐两党的斗争,两派士大夫们反复起落,斗争持续不断,最
终把王朝给葬送了。
而在软件公司中出现这种高层派别斗争情况的一个重要原因就是作为最高管理者的意见摇摆不定造成的。比如在软件公司中最常见的一种斗争类型就是市场部门与技术部门对立,而当老板本人具有技术背景时,就很容易发生其立场在技术与市场之间摇摆不定的情况。
那么要如何减少或避免这样的斗争?最重要的一点就是要尽可能保持政策的一贯性,
避免反复无常,因为反复无常要比一条道走到黑更糟糕。有时我们会发现,一个刚愎自用的管理者往往比一个能虚心接受别人意见的管理者更成功。就是因为刚愎自
用虽然可能一意孤行地走向错误的方向,但至少有一半的机会走向成功。但是如果是摇摆不定,则很可能使公司在动荡中走向结束。
对于中国软件业来说,没有意识到斗争的危害还不是最可怕的问题。最可怕的问题是:一些人有意识地利用斗争来达到自己的目的。这一点需要公司的最高管理者保持足够的警惕性。本文下篇将就此作更进一步的讨论。
总之,竞争是个好东西,但要小心过犹不及。
(未完待续)
参考文献
[1]李亚平《帝国政界往事》
[2]柏杨《中国人史纲》
[3]冯友兰《中国哲学简史》
[4][元]脱脱等《宋史》
[5][后晋]刘昫等《旧唐书》
[6][宋]欧阳修、宋祁等《新唐书》
[7]T.DeMarco&T.Lister《人件》
[8]熊明华《项目管理》(《软件开发的科学与艺术》第六章)
[9]陈宏刚《软件测试基础》(《软件开发的科学与艺术》第九章)
[10]猛禽《软件与中国古代史:大历史观》
[11]猛禽《软件与中国古代史:政界往事(上)》
[Mental Studio]猛禽 Mar.27, Apr.17, May.27, Jun.14-05