大概是5月16至23日,我们在雨花台的中兴总部熟悉项目,由中兴的一个开发胡带领我们,说是一个团队,其实就胡、师弟朱和我三人。从技术上来说,这不是一个复杂的项目,用的都是我们熟悉的JAVA技术,web前台用的是struts,持久层用的是中兴自己开发的一个东西,功能较Hibernate更为简单一些,后台数据库是oracle的,版本控制用的是vss.这些对于我们来说都不是问题。相反,业务倒是较为复杂,但我们结合中兴的文档和前面的代码很快就上了手,由于中兴指派了北京现场的那个项目经理去做更重要的事情,所以,一个礼拜之后,在我们还并没有彻底熟悉IPTV项目的业务之时,就匆匆踏上了去北京的直快。
由于晚上在火车上没有睡好,在北京的第一天是痛苦的,早晨下了火车就直接去了位于中关村软件园的联合网视,前一阶段的一个核心开发开始给我们做交接工作,眼皮一直不听使唤,基本什么都没有听进去,还好,交接工作有几天,后几天狂补,总算熬了过去。后来的分工是这样的:胡任新的项目经理,负责与客户协调和原有BUG的修补,我负责新需求中的身份验证、观片前后的业务处理(如权限审核直至最后的许可证颁发),业务订购等,这部分是系统的核心业务过程,较为复杂,我花了好多时间才算搞清楚。任务可以举个简单的认证例子来描述:终端的客户在进行相关的操作(如点播,这需要使用联合网视自己的开发人员开发的一套点播或者直播的系统)时需要进行身份验证,我们的系统里提供这些webservice,点播系统通过微软提供的一种总线服务(这主要是考虑系统的扩展性,总线降低了本身连在总线上的系统的耦合性,由于总线可以监控,也极大地方便了测试)和这些webservice打交道。主要的新的开发任务就是写这些webservice。其实,最后真正用在这上面的开发估计只有15天。其他的时间,一部分在应付客户零碎的需求(如验证码、发邮件、甚至修改图片),另外就主要是帮助师弟共同解决问题。记得有一次巧妙地利用反射技术解决了从元到U币的转换(没有变动核心代码,所以没有出现BUG的蔓延),朱和我的兴奋程度比中了500万还高兴。
朱的主要任务是充值处理,通过系统与银行和北方网通打交道,他们都给联合网视发了证书,用户可以使用他们表明身份进行在线充值(通常联合网视和银行等定期进行结算)。由于朱是个新手,其中遇到了不少问题,但是朱的脑子不错,大多数问题都被他独立解决了,有些棘手的问题后来我们一起研究,最后终于圆满解决。在整个开发过程中,由于有一定的过程控制,使得项目始终较为顺利的进行着,朱和我都比较卖力地干活,这使得到后来胡基本无事可作,干脆玩了起来。
IPTV项目能够一直按照预定的目标进展,相比较以前我们自己弄得那些项目来说,主要在于它有严格的过程控制,不可说所有的过程都发挥了作用,但至少对于一个没有很好的自组织的团队来说,过程是不可缺少的。在这个过程中,需求比较明确,大的设计都已写好,我们从一开始就似乎可以看得见光明的前景。在这里,我是百分之一百地专注于代码的设计和开发,所有的杂事(良好的BUG回馈、开发的协调、辅助文档的撰写、测试)都不在我的考虑范围之内,极大地减少了工作中的错误率。另外,定期的测试也利于我们更早地发现问题,上线时不会再手忙脚乱。而对于我们以前做的那些东西,基本上要一个人完成从需求到最后测试的所有过程,这对于小的项目尚可应付,但当项目的复杂度上了层次以后,开发者疲倦的程度可想而知,怎么可能还会有好的设计和好的代码。没有过程的项目经常在没有充分测试的情况下匆匆上线,结果可想而知,Bug横生,太多的东西需要返工,最后进入一个怪圈,开发者遭受的挫折感极其强烈,当时可能的愿望便是尽早离开IT行业 :)。
除了项目中所学到的,值得一谈的就是北京留给我的印象。第一个印象就是生活交通实在不方便,我和朱住在中国作家协会的招待所,每天上班要走15分钟左右到柳芳站地铁口,然后坐45钟的轻轨到西二旗,下了车大概还要步行十五分钟才到中关村的软件园,加上等车的时间,基本上要1个半小时。这个时间在我们搬到清华软件园后就变得更加长,我们往往早晨七点多就从招待所出发,要十点左右才能到办公地点,为了不浪费时间,就在坐车的时候读effective java.没想到竟然10多天就读完了.很多人都向往大城市的繁华,却忘记了可恶的交通,高昂的房价,相对低微的薪水.这些都严重地影响着人们的生活质量,至此,我倒更添了一份对小城市的好感. 其次,我很留恋作家协会的招待所,每天的疲惫都被这里的热水澡和空调蒸发,还有中关村软件园的大食堂,十元钱的自助餐就可以让你吃好吃饱,真想把它搬到我们学校去.由于时间的关系,我没有去长城,不过去了天安门和故宫一趟,老皇城深厚的文化积淀让我仰慕不已,我和朱还游历了清华和王府井,总之,说到北京就能让人想起的这些标记都已经映在了脑海里了.
7月16日,我们完成了任务,踏上了返程的列车.