在克里夫兰的的工作公司是一个中小型的公司。叫它HA吧, 在讲这个公司之前先要将美国的医疗制度介绍一下。
在美国,医院无权拒绝为病人提供医疗服务。救人第一。就算是非法移民也必须提供应急治疗。这是由法律保障的权力。只要病人签个字说愿意付钱就行了。在这个制度下医院就一定有许多病人欠下的账,就算把这些病人告上法庭大多数情况下也拿不回钱。
但是从另外一方面,各级政府和慈善机构都有面向贫困家庭的专门用于医疗的经济支持,只是申请条件不同,具体要求不同,各州的法律不同。这个对于文化水平不高的低收入家庭来说自己处理申请手续是有相当的难度的。这样就形成了这样一个局面:病人看病欠钱,医院治病拿不到钱,可是政府那儿有钱没人去拿。
就有这么一个人看到这个現象后觉得这是个商业机会。他找到医院说你把欠钱的病人账单给我,我帮助你收钱,收到后我提成一部分。医院心想反正是死账,收一点是一点。自然愿意。
然后这人用医院提供的信息与病人联系,说我知道你欠了医院的钱,我想帮助你找钱解决问题。你要不要?病人当然愿意。那么他就用病人提供的家庭收入信息,移民身份等信息在他的数据库中找能够为其出钱的机构并为其提出申请。
一旦申请批准,有关机构就会根据账单情况真接汇款给医院。这个人就去找医院要分成的钱。这个人就是HA 的创始人。
在我作为软件开发经理加入这公司前两年,原来的公司CIO辞职了,公司就找了一临时CIO,是个女的,叫她Jenny吧。
这个Jenny 自己有一个咨询公司,手下有十几二十个软件工程师。她设法让大老板相信公司内部的软件人员工作没有效率,她手下的人如何了得。并承诺只要六个月就能开发出来一万能的医疗保险和申请加入系统来。
就这样,她的软件工程师逐渐地取代了公司内部的技术人员。可是她所承诺的系统就是做不出来。三个六个月过去了,公司付给Jenny的公司许多钱,就是看不见东西。每次开会对方总是拖说再两个月就好了。
这时Jenny 也想脱身了。她的第一步就是不兼职CIO了 ,并推荐了一个人做IT总监,叫他Wayne吧, 然后她就找到我把我推荐给Wayne。其主要目的就是要金蝉脱壳了。
我上班后的第一周就与每一个下属谈话。感觉大家对Jenny 都是恨之入骨,不过他们(HA的职员)技术上是很差。Wayne 给我的任务是尽快建立起自己的团队然后把Jenny 的人换掉。现在回想起来 他(她)们很可能是串通好的,可我还是为公司努力工作。
上班后的第二周,Jenny 手下的工程师来找我说我们去年用的一个系统今年又要开始用了,不过政府的法律条文有一些改变,他需要一个星期的时间去做。我问道:有多大改动?他解释了一下有关的改动,也就是家庭收入上限上调了一点。听到这里我问就这一点改动就需要一个星期时间?
他说应该不需要,只是我们找不到以前的源程序了,需要重做。我说那去年是什么人做的呢?他说也是他们的人做的只是那人已经辞职不做了。我听完后说,这里有问题,让Jenny找我谈。从我的角度来看,Jenny做为CIO没有管理好公司的软件源代码,居然把它搞没有了。作为咨询公司老板,把为客户做的程序代码丢了,然后再收钱重做,怎么也说不过去。在与Jenny 的谈话中我提出由于时间有限,重做有太大的冒险性,建议设法找到以前的源代码。可是在谈话中Jenny 居然提醒我是谁介绍我工作的。我回答道我作为公司的雇员有职责为公司的利益着想。最后的安排是Jenny 手下的人尽力去找源代码,如若找不到,重新开发的费用不算在HA的账上。
事后听手下人告诉我情况是这样的:差不多一年前的时候,Jenny随便找了一个人来做这个程序,当然收HA很高的价格。可是她并没有付那个人相应的时工资。最后那人愤而离去,离开时他高声大骂Jenny, (F*** you b****!)弄得当时沸沸扬扬。他离开后Jenny 借故工作没有结束拒不付钱,那人也就拒不提供源代码了。其实这里也是Jenny 不懂软件开发的工作性质,换着我,我是不会让公司丢失源代码的。当然我也不会这样对待别人的。在我几十年的工作经验里经我手开除的人有近十个,从来没有给公司带来这样的问题。后来听说Jenny让人找到那人,同意补发工资以此换回源代码,从而按期做好工作。这是我第一次和Jenny交锋,算是我为公司赢了一把。也为公司的IT部门的职员出了一口气,赢得了手下人的尊重。
第二次交锋是在高层工作会议上。谈及项目何时能完成,Jenny推说两个月后,CEO问道可不可以一个半月。我发言道:我不问可不以一个半月,我问我们有多大的把握两个月后就一定能完成,这两个月的时间是怎样算出来的。为什么是两个月而不是两个月加一个星期?听到我的问话全场一片震惊,Jenny无法应对,只好说她会后将与她的工程师讨论然后再拿出方案来。会后我与CEO谈话,谈话中我说了这样的话:坏消息,好消息,我保证给你的是真消息。(Bad story, good story, I promise you what I tell you is the true story )另外我还记得他对我讲的一句话。他对我说“你的工作就是让他(指着我的上司IT总监)在我的眼里表现良好(Your job is to make him look good in my eyes)。我自认我做到了,尽管他最后把我开除了。在开除了我以后他也被开除了。我离开HA后很快就找到工作了,而且都是大公司的经理,架构师级别的工作而他从那时起就一直失业在家。去年我为了职称评定还找到他为我写推荐信,他欣然同意。可能他也觉得有愧于我吧。那是后话了。
回头说说我为什么敢在高层会议上那样说的,我是做了很多调查的。
首先我与用户部门谈了,知道系统根本不可用。与Jenny谈了,当谈及还有什么功能没有完成,她也拿不出个清单来。与她的首席工程师谈的时候我问道:假设所有未完成的功能都不需要了,假设所有的程序错误都是按照需求做的,我们的系统能不能立即上马运行?他回答道:这是一个很好的问题,我不知道如何回答你。仼何人去想一想都能知道完成项目还是遥遥无期呢,两个月只是她搪塞一时而己。在那之前,她同样的手法已经玩过几回了,谁曾想遇到我了呢?
我的上司问我面对这样的情况如何是好。我给出如下几点:
1.赶快抓紧招人,建立起自己的团队,逐步把她的人换掉。
2.强化需求管理,增加需求透明度,逐步减少Jenny在项目中的作用
3.实行开发工作与需求挂钩,增加开发工作的可审查性
4.严格执行测试流程,所有测试设计必须公开文档,公开测试结果
在上司的认可下我开始了这些工作。除了第一项以外我在实施时受到Jenny 和她手下人的抵触,不过最终还是都实施了。这主要得益于我对微软技术的了解,每每他们提出反对的借口我都能用技术方法解决。在招人方面我也有相当的进展。
在差不多一年的时间里,我和我的团队基本上掌握了项目的主动权。可是一旦我们真的了解到系统的核心设计后,我们的心情更加沉重了。因为设计中有许多致命的错误,根本无法实行其承诺的功能。可是在高层和用户来说,他们已经把承诺的功能当作已经实现了的功能作为卖点宣传出去了。
为了说服高层我组织了一个评定工作,评定工作包括Jenny手下的人。在评定工作开始时我这样说的;
让我们技术人员谈技术工作,是就是是,不是就是不是。让管理层在知道真实情况下做最好的决定。
经过两个月的艰难工作,我把评定报告交给上司。报告层层上传直到董事长那里,首先,报告受到Jenny的攻击,然后受到高层的质疑。最后决定再请公司外的专家级的咨询师做一个独立评定。
三个月过去了,独立评定报告出来了,毫无疑问地,我们所发现的问题都一一地被证实。
下面的情况就是技术工作以外的了。
我的上司问我多少时间能够把问题解决,三个月或六个月?我不知怎么回答。别人十个人做了三年的烂摊子,要我用一半的人四分之一的时间收拾好,如何可能?我和他一道吃午饭,席间他告诉我这样的情况:
公司在过去的三年间在财务上是这样处理与这个项目有关的支出的。在资产账上为这个项目立了一项,每次公司付多少钱给Jenny 的公司,他们就在这个项目的资产上加多少钱。后来我来了以后他们把我和我的团队的工资收入也这样对待。所以从账面上讲公司一分没有少。可是现在因为我的报告和第三者的评定报告,公司应该重新为这个项目定值,肯定要报损至少一半。可是如果这样做的话公司资徝减少可能以后贷款都成问题。所有公司从财务上讲决不能接受我们的评定报告。因为公司一直在寻找买家,如果这个报告一传到外面,其影响巨大。因为这些原因,他只能逼我在短期内解决问题。
基于他的压力我在策略上犯了错误,以致于我最后下课的下场。
我轻信了我的一个下属,答应用九个月的时间,一半的人力重做一个。当时他对我说他看了许多源程序,没有什么复杂的逻辑,九个月应该可以做好的,而且肯定比在原来系统上改会快得多。说我决策错误也不完全准确,我的上司除了与我谈话也找我的团队成员谈话。他一旦发现有人说能做而且断言比当时的慢慢改进的方法还快。不论其可信度有多高,他当然喜欢听他愿意听的话了。
新的项目开始两个月后我根据进度就推算出九个月是无法完成了。可是我的那个下属为了维持他的说法,解释说这只是开始阶段是这样,以后就会好了。我的上司也乐于相信他的说法。我虽然从我的经验知道那是不可能的,可也拿不出更好的证据。为了让大家都知道项目情况我每周都发布项目进展状况和完成时间推算,用事实来说话。果不出我所料,九个月到了,新项目还没有做完一半。
公正地说,我的下属也不是有意骗我的,当然他有意出位的目的是很明显的,把人事方面的事放一边,让我先谈一谈为什么没能按时完成。
那个项目做了三年后我们才决定重做的。在三年的时间里,Jenny许诺了无数的功能,有许多是根本无法实现的,或者是无法在多用户的情况下实现。可是用户已经建立了一种假象,就像你太太告诉你孩子今晚去餐馆吃饭,你孩子兴奋了一个下午但你回来后号称有更好的收入的爸爸却告诉孩子没有钱出去吃饭。你的孩子一定不干。
第二个是三年的时间里做了许多功能,又没有文档。Jenny有意不写文档,主管需求的人为了维护自身的价值也不愿意写文档。可是当我们每次做出一个版本给用户演示时,用户就会提出一长串的“新”的需求,弄得我的团队不得不改动设计返工重做。
第三是就在那时做测试的人还仍然是Jenny手下的人,叫她Jody吧,我至今都不能明白我的上司为什么还会继续用她。就是在她拒绝加入公司之后,他仍然对我说:她对项目的成功有很大的投入和忠诚。我有一次直接对他说:如果这个项目不成功,我将会失去这个工作,而她只是换一个客户而已。你给她一个职位她都不要,项目的成败对她难道有对你我更重要吗?Jody 明确拒绝把测试方案成文,怎么测,测什么全凭她讲,她说应该有的功能就要做我们无法查证。
经过这一次的经验,当后来有人告诉我他有本事把已经做了几年还没有做成的项目在几个月里做成而且做得更好,我再也不会相信了。我的回答就是:那真的是好得让人难以置信,大概不会是真的。It is too good to be true, probably it is.
在这样的情况下,为了找人为项目没有能按时完成承担责任,并掩饰其决策错误,我的上司决定把我炒掉。在处理我的离职安排方面,为了确保公司在财务上的问题不外传,他们要我在一个文件上签字。那个文件限制我与任何人讨论公司的项目情况,限制我对公司或者个人就任何不公正待遇进行法律行动。作为回报公司付我三个月的工资。我没有立即签字,当听到我说我要咨询我的律师的时候我的上司表现得非常紧张。
我与我的律师讨论了几个小时后决定接收条件拿钱走人。这主要是因为我没有能把三年多的email拿出来,就是搞到法庭上我也无法拿出证据。否则的话我一定会与我的上司在法庭上争个高低的。明明是他逼我承诺一个无法兑现的时间表,而且期间我一直用数据告诉他他所希望看到的成功是不可能的。就像有一个农人把一个石蛋交给一个母鸡去孵化,最后因为没有看到小鸡就把母鸡杀了。
二零一零年二月十四号是我被炒鱿鱼的时间。三月三十号我就在新的公司上班了,在新公司里我的职位还是应用开发经理兼架构师,工资也是六位数以上。
在这一个半月里我除了照顾太太孩子以外,就是学习新技术和找工作。在这期间我考了三个微软技术证书考试( WPF, ADO和SQL SERVER 2008)加上在那不久前考过的ASP.Net 和WCF.Net ,我把当时在.Net 和SQL Server 的证书全考完了,而且还学了最新的Visual Studio 2010.
一个半月的时间里,我经过了无计其数的电话面试,十几次当面面试,还有一次远行到别的州去面试。一共拿到三个聘书,最后我与太太商量后决定去一家做薯片的公司去。其他两个工作收入都更高,但是那就要与太太分居两地。其中一家公司甚至提出给我太太安排工作,还提供三万元的搬家费。可是我们全家实地考查后我太太不喜欢那个地方。那是在宾州首府的一家保验公司做企业系统架构师。
这一节主要讲了我作为经理的成功与失败,特别是犯的错误和代价。在这几年里同时发生了一系列关于我身体状况的事。在这三年里我经历了生与死的考验,做了三个大的手术。所幸的是我当时所在的城市有全国乃至全球最好的医院和手术医生,最后得以死里逃生,再续人生。请看下集九死一生。
文字编辑:Ellen