来源:麦叔编程 作者:麦叔 价值36.8亿的IT项目 Infosys 是印度的一家软件服务商,世界知名,在印度数一数二。在软件外包和技术服务上,国内可能没有一家公司可以和它相提并论,大部分欧美的国际化金融机构都是它的客户。 好在,我们中国自己的民族信息产业发展的比较好,不需要靠软件外包和技术服务作支撑。 2019年Infosys接到了一个巨大的软件项目, 金额是420亿卢比,约 36.8 亿人民币 。 这个项目是 改造印度的个人所得税申报系统,将退税周期从原本的 63 天缩短到一天 ,极大加快退税速度。同时还整合所得税即时处理与退税,把各种操作和信息都都集中在统一的页面内。 这个项目如果能够顺利上线,不仅可以方便民众,也会成为政府的一个很漂亮的政绩工程。 上线即崩溃 2021年的6月7号,这个项目上线了。 可惜的是,上线后短短几个小时,网站先后出现了多个严重问题,包括:无法生成密码,无法查看过去的退税数据,无法提交退税申请等。 这导致网站在正式上线不到 24 小时后即告关闭,暂停使用,排查问题。 财政部长也坐不住了,印度财政部长 Sitharaman 在 Twitter (相当于中国的微博)上公开炮轰 Infosys。 在我写文章的今天(10月3号),这个网站可以使用的,大家可以看看这个价值36.8亿软妹币的项目。 三个月修复未果 这个大的项目,又是政府的项目,Infosys也是非常重视的。Infosys的联合创始人和主席Nilekani马上在Twitter上隔空表示道歉,并且@nsitharaman ji 新的电子归档门户将简化归档流程并增强最终用户体验。我们在第一天发现了一些技术问题,而且正努力加以解决。@Infosys 对这些初步故障表示遗憾,并希望系统能在本周之内稳定下来。 可惜后面问题变得更加严重,出现了利息计算错误、无法添加信托免税详情,无法在提交后对ITR进行电子验证,HTTPS链接失效,加载时间过长等等。 这事搞大了,税务部门不得不恢复了手动提交纳税表单,并且延长提交纳税表单的最后时间。8月21日,Infosys再次关闭了门户网站,再一次进行紧急维护。维护持续了两天,23日后系统再次上线。 同时在22号,财政部召集了Infosys的CEO,Salil Parekh,问责为什么网站在两个半月后仍有这么多故障没有解决。 讨论的结论就是:我们需要更多时间。 于是新的故障解决截止日期设置为9月15日。CEO表示,他们很重视这个项目,一共有超过750个人参与了这个项目,其中首席运营官Pravin Rao亲自监督这项工作。看到这里,麦叔稍微有点疑问。 为什么不是首席技术官或者信息官?我希望这位运营官懂业务,技术和软件系统,懂系统分析,数据迁移,灾备和DR等。 这里无意冒犯各位首席运营官,这种大型的升级项目,需要懂技术,懂业务,精通软件、数据和项目的风险管理的人深度参与进去。 事情还是有进展的,9 月 23 日 Infosys 发布了一份声明,表示取得了稳定的进步,已经帮助3000 万纳税人完成了各种交易。但也表示还面临着持续挑战, 750 多人继续和所得税部门的官员一起合作去完成剩下的工作。 折腾了三个多月,问题也算稳定了,接下来应该不会有大的问题。相比之下,12306要牛多了 看到这里,我的第一感觉是12306太牛了!虽然12306也出过一些问题,但总体上还算稳定。 这两个项目相比一下,各有自己的难点:12306难在高并发上 :一旦到了出票的时间点,几十几、百万人同时发起请求。如果买不到票,还会疯狂的无脑重发。这会给系统带来极大的压力。相比来说,税务系统没有那么集中的时间点,一般都是几个月内完成报税就可以了。而且要买火车票的人应该比要报税的人多多了。 印度的税务系统难在业务复杂 :报税涉及到收入,各种政策条款,还有历史数据等。从数据模型上比买票这件事要复杂的多。而且在老系统上迁移过来,比从零开始新系统还要复杂。就好比:你去请人装修,如果是本来就有装修的老房子,反而需要更多的费用,因为装修队要给你清理原来的装修。同样的道理,开发人员除了理解业务,还要理解老系统的设计思路,数据模型等。 总之,12306还是挺牛的,另外我们的个人所得税App也是挺稳定的,至少我没遇到过什么大问题。并且中国的纳税人应该比印度要多的。所以我们应该给它们两个点个赞的。 为什么做的这么烂? 这个系统其实说复杂也不是很复杂,一个比较顺利的流程是这样的: 用户登陆网站,填写退税表,然后通过OTP一次性密码进行验证,提交就完成了。 可是用户碰到各种问题,比如收不到网站发送的密码,填写退税表的时候无法查看历史数据,数据计算错误,提交的时候没反应,网站无法打开等等。 当然这里也有很多税务领域的业务规则,不是表面上看的那么简单。如果不出问题,系统流程,数据都对,从用户的角度是应该很简单的。 根据各方面的报道,我认为主要问题有几个:Infosys懂技术,但是 不懂业务 ,对于税务领域不懂,而政府税务部门没有深入参与项目。这个问题主要的责任人还是在Infosys,作为项目方,应该主动要求业务部门进行深度参与。据多个消息来源称,该网站 未曾测试 就提前启动了。这也太夸张了吧。我认为Infosys这么专业的外包团队,基本的测试应该是做过的,可能没有做业务接受测试(UAT - User Acceptable Testing),所以一旦上线遇到了各种真实的数据情况就挂了。历史 数据迁移没做好 。有些人表示无法查询历史数据,而税务计算是涉及到历史数据的,所以就造成比较大的问题。老系统迁移到新系统过程中,数据的迁移和管理确实是比较有挑战的事情。 这么大的一个系统,其中的困难肯定也是有的。不过软件团队的不给力肯定是要负主要责任。麦叔支招 作为一个软件行业的老兵,我也做过不少规模比较大的系统,从零开始做的新系统,还是老系统的迁移升级都做有。 回顾一下,好像都还算成功,至少我能主导的项目,都比较有信心能做成功。 这个项目,如果我来主导,我也有信心成功。如果你不信,给我个36亿的项目让我试试看。 如果我来主导这个项目,我会从几个方面入手:确立有效主导人 :大的项目都有一个高高在上的领导做主导,这很重要,没有领导支持,项目很难成功。但一定要有一个人(或者一个小组)从全局的去深入看这个项目,这个主导者要懂技术,知道风险在哪里,也去深入理解业务,知道主要流程和问题是什么。很多大的项目,参与的人很多,各懂一点点,全局上没有人深入理解。而统管全局的领导可能没有那么深入,只关注项目进度。 技术和业务一起建模 :技术人员和税务部门人员深度合作,应用DDD(领域驱动设计)的思想去共同为系统建模,有效规避掉业务风险。 完善测试流程 :测试是肯定要的。系统测试,用户验证测试,压力测试一个都不能少。 逐步迁移 :系统上线后,先找一个小的省份做试点。测试成功了,再扩展到全国。或者先对一部分用户开放测试,测试情况好再全面开放。 应用Agile快速迭代 :项目从开始到交付有2年的时间,太长了。3到6个月就交付一个测试版,进入业务测试,然后根据反馈进行不断完善,这样2年后就稳稳的了。