无论做什么项目,都要先了解需求,招个软件工程师总希望你懂业务,现在网上铺天盖地的招聘启示,招个人做企业管理软件总要熟悉ERP、MRP的优先,招个做银行项目的就要求有金融软件开发经验,做哪行吃哪行,做软件最怕的就是不了解行业需求,在银行工作过做银行项目就比较容易上手,在政府工作过做oa就比较能把握的住。我们几个都是单细胞程序员,从没有接触过地税这样的项目,特别是面对的客户对项目的熟悉度也是一块一块的分散在几个部门,沟通起来就不是那么容易了。
欧阳要求我们跑到第一线,火线才能出尖兵,于是几个人拿个小本子,和实际操作地税系统的一个MM坐在一起煞有其事的开讨论会。
地税的系统原先是delphi开发的,一是农保系统,一是社保系统。“征收中心从劳动局接收数据,每天对企业进行解冻操作,把扣款情况发送到银行,然后把 对欠费企业进行扣款。 ”MM在那里鼠标点的飞快,平时熟练操作惯了,自以为我们也看的明白。
“征收中心”?“劳动局”?“解冻”?“欠费企业”?一连串的名词看似简单,“征收中心”是指谁,“劳动局”是干嘛的,什么是 “解冻”, “欠费企业”是哪些人,实际上问题一堆摆在那。
仔细想想,又能引申出一些不理解的地方。如何接收数据,数据格式是怎样的?每天解冻是手工操作还是自动操作?扣款情况是指什么,文本还是邮件,需不需要打印票据? 欠费企业是哪几种,诸如此类,简单的一句话连锁反应引来了一堆问题, 我们是一头雾水,听的一愣一愣的, MM 也是一脸的不解。
在 MM 看来这都是不是问题的问题, MM 解释说, “征收中心就是我这边,要先解冻,然后银行可以那边扣款,再进行 回单销号就可以了呀。 ”
“$%&?$%&?”, 又来了,什么是“回单销号”? MM 的专业术语层出不穷, 接着MM又操作了一下流程,只看到几个数据表单在电脑上飞来飞去,等操作完了,MM还用楚楚可怜的眼神看着我,好像在问“r u clear”一样,只有一个字,晕。还好MM的电脑上挂着QQ,时不时QQ消息来了,就忙不迭的先把我们晾在一边,也幸亏是这样,我们几个可以碰对讨论一下,边想边问。
MM 在那里边演示边讲解,我们几个人拿着小本子在那里做笔记,“啊,这里能不能再讲一下?”遇到问题没有听明白,想再问一下MM的时候,johnny说,这个我听懂了,回去我给你讲。做需求几个人一块上,一个人走神还有顶上,有一个人理解了就说明需求做到点上了,回到宾馆可以埋头整理一下,拾遗补缺,把每个人了解的统一起来。开始的那两周,每天晚上忙到八九点钟,一边把需求汇总,一边把问题汇总,每天就是来回的对照修改需求文档,忙的没头没脑。
我有个朋友在苏州高速公路管理处做网站编辑,出去采访那待遇好,随身带一只录音笔,还配有专用司机。有录音笔绝对做需求要好的多,像地税这种业务比较特殊的系统,碰到一些专业术语是常有的事。当时记不清楚,回来后又找不到证据,所以只能再次调研的时候再去问,最烦人的是再问的时候客户又不一定能耐得住性子,说不准会反问你早干嘛去了,这个问题我已经回答过了啊之类的,弄的你无从下台,还得一个劲的赔笑,客户面前,员工永远装的像个孙子,对客户要礼貌是基本的礼节,就像空姐在任何时候面对顾客,微笑都要露八颗牙一样。对于公司来说,为谁服务并不重要,谁能给公司送钱,谁就是上帝。
对于员工来说,没有什么比什么都不懂的上帝更烦心的了,既要从客户那里拿需求,又要不厌其烦的问一些客户以为很白痴的问题,特别是银行、税务这样业务不透明的项目,不但会面临很多专业术语,而且很多业务流程只有行内人士一清二楚,比如企业缴费,银行扣款时要么全扣,要么不扣,不会只扣一部分。再说所谓的入库保存,每个月只进行一次,而且必须限定在25号进行。诸如此类的逻辑,如果不一一问清楚,项目就匆忙开工,半路上肯定会遇到不少绊脚石,慢工出细活,所以只是需求,就调研了三个星期才理出了一个大概。
调研调研,就是不断的跑腿,地税的几个办公室都被踏遍了,税征二科、计财科、信息科、征收中心,每个地方都要跑一遍,跑到十五楼找秦科,怎么说需求都要给他先过目,然后秦科又要拍板决定哪个哪个是不是正确,要是他能负全责就好了,偏偏有些东西又是具体到报表的,而数据,与税收联系在一起,就变得敏感起来,多一点少一点都可能造成上万金额的差别,于是不敢丝毫大意,又要跑到相关部门再次去问,常常跑了几次部门的负责人都找不到,办公室又是分布在好几个楼层,和政府打交道,练的就是跑腿功夫。楼上楼下的折腾,好不容易等到了,还要等人家闲下来才有功夫搭理你。
地税财大气粗,每年都有上百万的科技信息化预算,所谓科技信息,说白了也就是做几个网站,搞几个办公自动化系统,每年评审的时候,仅仅是当作政绩的存在,一个oa系统,公司拿到手撑死也不过三五十万,对于地税来说,不过是九牛一毛,所以有时到办公室,看到的多数是炒股的,电脑红的绿的曲线一条条,想找个人问需求还找不到负责人,时间白白砸在上面,每周末交给欧阳工作报告,每天还都安排的好象做了很多事一样。
做需求只是工作的一部分,除了需求,总公司还有为期一周的框架培训,每天上午或者下午不定时培训,培训时间是不固定的,每天先给地税打电话看有没有时间做需求细化,如果人不在,就在总公司做培训,或者开个小会集体讨论一下,如果地税那边有人在,就去做需求。运气好有车接送,运气不好只能自己挤公交过去。
一边实地调研,一边还要给客户发发邮件交流沟通,欧阳负责搭建地税的oa框架,和客户沟通自然落在了我肩上,每天拿着客户发过来的各种功能报表,开始定义起数据库的字段,有什么问题就发给客户反馈一下,顺便cc给欧阳。三周后,需求细化的差不多了,忽然发现,时间只剩下两个月了。
地税项目加上欧阳在内一共6个人,总公司抽调了一个技术顾问从旁辅助,说是技术顾问,平时也就是问问我们项目进度,从项目开始到结束从来没有见过他做过coding的工作,我想,八成是监工的居多吧。
调研下来只是确定的模块就有9个,开会的时候一起讨论,综合查询和欠费管理两大块就至少需要60个工作日,这两块就要投入两个人,其他的7个模块怎么算两个月也赶不完当时,框架的培训才刚完成,要真的熟悉上手也要一周的时间,而且还有不少技术难点需要人去研究。
“这样吧,我们从简到繁。”欧阳宣布了结果,“把需求先满足一部分,先尽量和客户沟通,先砍掉两个模块,剩下的慢慢来。”
于是第二天跑过去和秦科沟通,看看综合查询这一块能不能可有可无,我就说了,是公司开会讨论的结果,觉得综合查询先放一放,先尽量保证其他几个模块的质量,你觉得怎么样。秦科就说了,这个是你们孙总老早答应我了的,我不和你说,你把你们孙总找来。
回去和欧阳这么一说,他也很无奈,“java部门刚起步,有项目就得上,时间是孙总定下来的,创造条件也得上啊。”欧阳叹了一口气说,“没办法,孙总是拍拍脑袋就出来个时间,下面还得我们先撑着。”
这事上报给孙总,自然是没有结果,欧阳发了一堆的牢骚,也仅仅如此,该做的还是要做,做员工和做老板的不同就是老板只管说,你只管做。项目安排好了,指定时间内做不完,只能是员工的问题,要解决问题,就只能加班。
“即使加班,项目也不一定能赶完。”我说,欧阳看了看需求上面的一堆东西,揉了揉脑门说,看来只好我亲自跑一趟了。
最终还是没有改变秦科的坚决,加班就成了唯一的选择。白天在公司编码,晚上回到宾馆继续干,每天早上到总公司都要给那个所谓的技术顾问看进度。每天晚上熬到八九点是正常现象,地税的项目一直持续了3个月,3个月基本是没有什么周末,每个月唯一能高兴的时间就是月初去公司看看银行卡,看到工资到账了,才觉得加班总归有点意义。
记得很清楚的是其中一个模块要交付客户使用的前天晚上,宾馆的网线又恰好断了,做开发总少不了查资料,网线一断脑袋立刻痿了,只能一点点去查JDK,熬到夜里3点钟,实在撑不住了,看了会电视,正好是我喜欢的演员焦恩俊,看了一集我爱河东狮,洗了个澡,继续搞,然后4点多太困了,倒在桌子上睡着了,6点多醒了又继续,快天亮的时候终于醒了,根本来不及测试,早上拿到客户那边一试,除了两处js问题居然整个都跑通了,连我自己都觉得是奇迹。