InfoQ
:您之前介绍过支付宝开发初期的一次重要转折,您经历过非常重要的一夜。可以再跟我们分享一下吗?
鲁肃:
2004 年,当时淘宝要改造。这个项目是当时整个阿里巴巴最重要的一个项目,要用新的架构做面向未来的淘宝网。2005 年我加入支付宝以后,很自然的想要向团队证明自己。当时我的主管特别信任我,任命我做当时非常重要项目的主架构师。
这是我第一个做的项目,所以一开始做项目架构师的时候,我把我能想到的最好的架构、当时我懂的和我不懂的技术全部用上去。我想既然是这么重要的一个项目,它应该用最好的技术、最好的架构来做。
当项目进行到一个半月的时候,功能差不多开发到一半,有一天晚上加班以后一起吃饭。当时一个同事坐在我的边上,对着我主管说:你们设计的那个架构可能有问题,项目开发到现在,我们在里面加很多功能越来越难了,越来越容易出错。当时我的主管跟他说,鲁肃是这个项目的架构师,这个项目的技术他说了算,不要再有任何的怀疑,这个事就过去了。
那天晚上回去之后,我仔细想了想,认为他说的这个问题确实存在。而且,在这么重要的一个项目里面用了这么多新的技术,这是一件真正可靠的事情吗?差不多在凌晨一两点的时候,我开始正视这个问题:我认为这个架构确实是有问题。不但有同事说的问题,而且我们不应该用从未经过验证的技术去支持这么重要的一个系统。
所以接下来我也需要做决定:现在怎么办?
在凌晨三四点的时候,我决定要用新的架构。我快速搭了一个原型,用我最擅长的、最有把握的技术,做了一个演示系统。
早上八点到公司,我第一时间和主管说:马上叫齐项目组,我们开个重要的会议。会上我就说,之前这个架构有问题,我建议我们项目要改架构,改成一个更朴实的架构,用更可信赖的技术支撑,我根据这个架构做了一个 demo。会议开的非常高效,最后的结果是:第一,所有人支持用新的架构。第二,所有人会把他们自己之前的工作移到这个新的架构。这个会开完之后我特别感动。大家快速用新的架构完成了这个项目,在五月份把支付宝推到线上。
这个事情影响了我做架构的风格:我会偏实用主义,能够确保每个系统上线一定是最成功的方式。现在回想 2005 年如果当时做错一个决策的话,我的职业生涯也许可能是完全不同的道路,这个项目极大的可能会失败,对支付宝会有什么样的影响也不好说。这个事情也改变了我做决策的风格:做任何决策之前,先把“我”抛开。