就在我灵魂出窍,想着我和曼雨这甜蜜和苦涩交替的二十多年的酸甜苦辣时,一个熟悉的声音把我带回了现实的今天:“Hi Changsong, I heard you are asssigned to the Early Childhood Education system project. If I am not wrong there is a production release tonight, you'd better be prepared, it's going to be a long day today."
那是Mark 我的好朋友。我们经常一道打球,去健身房。我们是在做公司第一个.Net project 时合作认识的。
这让我有点担心了。参加项目的第一天,让我做production release 而且还不及时通知我,这个帕达是要整我呀。唉,这份工资不好挣呀。
我放下耳机,这会儿也顾不得听电话录音了,连忙跑到帕达那儿问情况。
到了他办公室的门口,透过落地玻璃墙只见里面满满地坐着一屋子人。帕达正在讲话。见我站在门口帕达停了下来招呼我进去。我推门像往常一样找了个角落站着(早就没有椅子坐了)。
只听帕达接着说:“NM的项目终止了,我们这个小组也就解散了。管理层正在尽力安排大家到其它项目去。不过公司正在 offer 一个Enhanced Early Retirement Program, 如果有兴趣,可以到我们HR网站上看看。HR会给每一位够条件的职员发电邮”
听到这里大家一阵嘘嘘之声,看来公司不景气要减员不是空穴来风。管它呢,听之任之吧。我面无表情地继续听着。只听帕达继续说:“一部分人将加入Early Childhood Education Program project, 一部分人将加入 Prison Management System project. 还有一部分人将加入Election System project. 剩下的留下来与客户做交接工作。新的项目经理会与你们电邮联系。
现在我报几个名字,报到名字的人留下,其他人可以回到自己的座位去了。”
TMD,这傢伙肯定知道谁去哪里,还在这儿卖关子。他报的名字没有我。算了,回去查电邮。听他报的名字都是他的亲信,我知道我们还在为另一个州做SCHIP 项目,最好的去处是到那里去,大概留下的人是去那里了,反正我是没机会了。
提前退休,不就是炒鱿鱼吗,多给一些遣散费而己。不是我的选项,我也不够格。
随着众人走出帕达的办公室,我没有与任何人打召呼,顺着人流走回自己的小格子。挂上电脑打开Outlook。
有一个帕达发会议通知,(那是我刚刚参加的会议吧)还有一个叫Jacob 的人发的电邮。
打开一看,果然是说我会去Early Childhood Education Program项目,基于我以前在项目里的工作内容他还是让我分管数据库的设计和发布。果然今天还真有一个发布。虽然不是帕达有意害我,这事也是有很大的风险。
连饭都顾不上吃了,赶快准备吧,晚上发布出了问题可是非同小可。
数据库的更新发布比首次发布复杂多了,在线系统已经在运行了,里面已经有real live production data, 现在经过两个月,四个sprint 的开发工作, new tables are added, new columns are added to the existing tables, the data type of the existing columns are changed. The data scripts are changed.
我用一个软件(ER-WIN)用开发区的数据库与Staging区域的数据库做比较,但是有两个问题不知道如何解决。一、比较结果出来有好几百个不同点,但是仔细一看有许多其实并不是真的不同只是因为他们在定义table时没有为Index 命名,所以微软就给它们一个随机的名字,但是在比较时因为名字不一样就把它们找出来了。所以它们其实是false alarm。 但是怎么在几百个不同点中找到真正的不同点,这是一个挑战。二、这个软件不能找出数据的不同。
如果我去源程序版本库(version control repository)偌大的一个数据库一千多tables, 八百多views, 两千多stored procedures, 就一个文件。要在里面把所有变更找出来真是mission impossible 呀。
唯一的做法是用比较结果作为起点,然后手工把那些false alarm 拿掉,手工生成一个release script. 然后在测试区域测试修改这个release script。 然后再从那些完成的backlog里找到数据变化再手工生成一个数据script,然后再测试修改这个数据script。晚上十点开始发布。现在己经是下午一点了,不吃不喝还有九个小时,我还要去downtown跆拳道班上去接Eric,最多八个小时。这样长此以往肯定不行的,那不把我整死呀。这次搞定后我要过渡到SSDT(SQL SERVER Data Tool) 把每一个database object 用version control 管理起来,把Data script 也用 version control 管理起来。算了,算了。以后再说吧,先把这次搞定吧。一步步地向前走,做着看吧。先吃饭,再忙也要吃饭呀,我去冰箱拿出我早晨带的饭盒,放到微波炉里热了,把饭盒拿到办公桌上一边工作一边吃饭。有一口无一口地吃着工作着,直到我发现放到嘴里的勺子里面没有东西了才发现我己经吃得差不多了。
盖上饭盒,放回提包,(没时间洗了)我继续工作。就这样一直工作到五点半,看看外面冬天的西雅图已经暗下来了。心想今天是要披星戴月了。原来是要与同事打篮球的,看样子球是打不成了。先给Mark 打个电话。接通电话后讲清楚事情后,Mark主动提出帮我一块搞。老人家说得好呀:“在家靠父母出门靠朋友”呀!一阵感慨之后我继续埋头工作。
一会儿Mark就来了,手上还提着一个塑料袋,塑料袋上印着“China wok" "华厨”。嗯,Mark 真有心啊,还帮我买了晚饭。他把塑料袋递给我说:“I had my dinner, this is yours. Tell me where you are, I will continue work on it. You go and take your dinner first." 我感动得不知说什么是好,最后认真地说:“Thank you so much, Mark. I appreciate your help, your friendship deeply." "That's what friends for. Let's get to work."
我在介绍了我当时的进度后就打开“华厨”的盒饭,哇宫爆鸡丁,我的最爱!打开后我狼吞虎咽地吃了起来。Mark继续我的工作。
吃完晚饭我与Mark 一道工作,我们俩终于把两个script files 搞定了。在最后一测试成功时,我们俩个高兴地做了一个 High 5。看看手机,已经是八点半了,我要去接Eric了。希望今晚的系统发布能顺利进行。
我收了电脑与Mark 一道走出了办公室向停车场走去,分手时Mark 拍了拍我的肩膀说:“Good luck, ChangSong." "Thank you , I need that. Good night. Mark!"
看着Mark 坐进他的福特Explorer, 启动了车子,我向Mark 招了招手,转身向我的丰田Camry走去.....