今天,我们从软件行业的一个段子说起。
甲方想要做个电商网站,作为乙方的程序员问:“你要做个什么样的呢?”甲方说:“像淘宝那样就好。”程序员问:“那你打算出多少钱?”甲方想了想,“5 万块钱差不多了吧!”
这当然是个调侃客户不懂需求的段子,但你有没有想过,为什么在甲方看来并不复杂的系统,你却觉得困难重重呢?
因为你们想的根本不是一个东西。
在客户看来,我要的不就是一个能买东西的网站吗?只要能上线商品,用户能看到能购买不就好了,5 万块钱差不多了。
而你脑中想的却是,“淘宝啊,那得是多大的技术挑战啊,每年一到‘双 11’,那就得考虑各种并发抢购。淘宝得有多少程序员,5 万块你就想做一个,门都没有。”
如果放在前面“沟通反馈”的模块,我可能会讲双方要怎么协调,把想法统一了。但到了“自动化”的模块,我想换个角度讨论这个问题:系统是怎么变复杂的。
淘宝的发展历程
既然说到了淘宝,我们就以一些公开资料来看看淘宝的技术变迁过程。2013 年,子柳出版了一本《淘宝技术这十年》,这本书里讲述了淘宝是怎么一步步变化的。 按照书中的说法,第一个淘宝是“买来的”,买的是一个叫做 PHPAuction 的系统,即便选择了最高配,也才花了 2000 美元左右。这是一个采用 LAMP 架构的系统,也就是 Linux + Apache + MySQL + PHP,这在当年可是典型的开源架构。