就这样懵懵懂懂到了华为,一开始新员工培训,纪律严明、严格,班车不会多等半分钟,之后是部门培训,大量的信息扑面而来。之后到了工作岗位上,给我分配的工作是ERP系统管理员兼DBA,虽然以前也搞过一些大系统,如兼职做过印度人的大型银行软件的客户化开发,但见到我们的ALPHA 8200和我们的软件ORACLE,心里还是激动不已。IT的发展一日千里,10年前的技术与今天比,很多人可能没有体会了。那时比较落后,很多人也没有机会接触这种当时很先进的系统。我见到我们居然有2G巨大内存的“超级服务器”当时实在是佩服不已,为自己能做它的管理员而自豪,又为自己将来能不能玩转它而焦虑。我师傅王忠宁见到我就撂给我一本书《ORALCE ADMINISTRATOR GUIDE》,一寸半厚的英文书,愣是一周之内从头到尾看完并写了厚厚的读书笔记和一大堆不懂的问题,自此再也不怕厚厚的英文书。
当时正好是公司ERP上线没多久,业务正在推行,系统极不稳定,每天的并发程序有一半是跑错的,系统还会动不动CRASH。我看完一本书后,在刚刚成为 One Book Man时,问题单就来了,有一个重要的××引入程序有时候跑得出来,有时候跑不出来。说实话,那时候对ERP、ORALCE、操作系统一切几乎还是一头雾水,而问题却已经传过来了,只好硬着头皮,摸索了好半天,终于明白了有一批数据在倒的时候,系统准出错。几万条数据,一条条试是不可能的,我就想出了用二分法,一批一批的试,完全手工动作,笨拙、费时、费力,做了几十遍,花了整整一天中午饭都错过了,终于定位到了其中一条数据,而后发现是数据超长而数据库定义的长度不够并且校验程序有BUG没校验出来。经过又返回去重复验证,证明找到的原因是正确的。当时真是心中大喜,几乎在完全不懂系统、不懂这个程序是做什么的、不懂程序处理的逻辑、不懂数据库的设计的情况下,把这个BUG定位出来并交回给ORACLE处理了。这是我上班后解决的第一个问题,至今我对这个问题本身还并不明白,呵呵。这让我懂得了一个道理,工作和读书不是一回事,工作是要解决问题的,是要产生结果和输出的。不管怎么样,能找到方法解决问题、能够有好的输出结果那就是成功。读书才追求的是慢慢读,读懂为止。
那时的系统,真是岌岌而可危,公司的业务高速发展,业务也不断推行,系统的负荷越来越高,但系统却不是经常宕机,就是跑得如老牛般慢。我们的技术水平和管理水平,也是与现在不可同日而语。水平不行体力补,大家兢兢业业背负责任,闯过种种难关,终于还是挺过来了。现在想想,还真是有点后怕的,稍有不慎真有可能全线崩溃。我也能理解有些大企业,为什么倒起来那么快了。现代的组织,经常是高度复杂的组织,就象生物一样,低等的蚯蚓断成两段,照样生存。而高等的人,身上戳个小小的洞可能得毙命。高度复杂的组织,就象人体一样,内部小小一块地方如果出关键问题了,组织可能崩溃。要保证不崩溃只有两条路:1)组织本身的设计和流程的设计高度科学、冗余和足够的制度性反应机制,这是西方国家的强项,他们的公司历一百年不倒,是有强大的内在因素的。2)依靠组织内每一个最小单元的高度的负责、警觉。虽然我们多年来一直在强调第一种能力的培养,但我们天生缺少这样的土壤和基因,因此第二种能力变得十分重要,虽然这不是最好的办法。
头两年的工作中,我们水平很低,体力劳动很多,有一段时间,我一上班就得高度紧张地盯着系统,不停地干预,系统才能跑下去。一会儿系统进程死了,一会儿空闲进程多了要杀掉,一会儿表空间不够了要扩展,一会儿用户提交了不合理的并发程序要中止...有一段时间,我成了热线兼现场支持,一天接50-80个电话,接了电话到处跑。之后我们做了很多改进工作,升级了系统硬件、写了自动脚本,成立了专门的热线等等,这期间我慢慢懂得了一个道理,一个大的复杂系统要成功的管理好,没有绝招,依靠的只是一点一滴持续不断的改进和努力。
五、要有方法、有套路,对问题系统思考、对解决方案有战略性的设计。在前几年的工作中,由于取得了一点成功,技术上也有了一点研究,就开始夜郎自大起来了,后来公司化重金请来了大批顾问,一开始对有些顾问还真不怎么感冒。后来几年公司规模越来越大、IT的复杂性越来越增加的情况下,逐渐理解了很多。西方公司职业化的专家,做任何事情都有方法论、有套路,甚至于如何开一个会都有很多套路,后来我对这些套路的研究有了兴趣,自己总结出了不少套路并给部门的骨干培训和讨论。在一个复杂的环境下,很多问题已经不能就事论事来研究和解决,非常需要系统性的方法和战略性的眼光。对于一个组织的运作来讲,制度和流程的设计尤其需要这一点。爱恩斯坦说过:We can't solve problems by using the same kind of thinking we used when we created them.