窗外是深圳科技园凌晨三点的灯火,我盯着屏幕上第无数次崩溃的爬虫脚本,第无数次按下F5。三十二岁,还在亲手写这些脏活累活,心里那股焦躁像这夏夜的闷热,黏糊糊地糊在皮肤上。团队?不存在的,我就是团队,一个独狼,一个被流量焦虑追着跑的猎人。
敏捷开发?这个词最近在圈子里火得发烫,好像只要贴上这个标签,一切混乱都有了正当理由。可我看到的真相是什么?是隔壁创业公司为了赶下周的Demo,把用户登录逻辑直接写死在本地缓存里,美其名曰“MVP快速验证”。是那些号称“小步快跑”的产品,跑着跑着,脚下全是自己埋的技术地雷,最后炸得自己面目全非。速度,成了掩盖一切问题的遮羞布。好像只要迭代够快,用户就发现不了那些闪退、卡顿和数据错乱。这他妈不是敏捷,这是掩耳盗铃。
我自己的项目呢?一个跨境电商的价格监控系统。需求简单到粗暴:用最快的速度,从几十个海外电商站点扒下商品价格和库存,清洗,比对,生成报告。最开始,我也掉进了那个陷阱。为了抢那几秒钟的抓取速度,我跳过了重试机制,忽略了反爬策略的优雅降级,连接池?超时控制?异常日志?统统往后放。结果就是,脚本在客户服务器上安静运行了三天,然后突然像雪崩一样崩溃,留下的是一堆无法追溯的脏数据和客户凌晨的夺命连环Call。那一次,我花了整整两天两夜去梳理和修复,比当初老老实实写好健壮性代码,多付出了五倍的时间。这效率在哪?
我渐渐明白一个道理,尤其是在这种一个人就是一支军队的时候。所谓的技术债务,它从来不会消失,它只是以复利的形式在积累。你今天为了快而写下的那行丑陋的、没有异常处理的代码,明天就需要你用更多的时间、更复杂的逻辑去为它打补丁。它会在你最忙的时候跳出来,在你最需要系统稳定的时候给你致命一击。质量,根本不是效率的对立面,它是效率的基石。没有可靠性的“快”,是虚假的繁荣,是沙滩上的城堡,一个浪头过来就什么都没了。
所以我现在偏执。偏执于每一个异常分支都要被考虑到,哪怕它发生的概率只有万分之一。偏执于日志必须结构化,关键链路必须有TraceID串联。偏执于核心爬虫模块必须要有熔断和降级,哪怕这让我的代码行数多了三分之一。这些工作,在那些追求“速度”的人眼里,或许是冗余,是笨重。但我知道,当深夜的报警短信没有响起,当客户看着连续一周稳定输出的报告露出满意的神色时,这些“冗余”换来的,是内心的安宁和真正可持续的交付节奏。是的,我可能失去了抢跑一两周的机会,但我赢得了一个能长期作战、不必时刻救火的系统。
咖啡已经凉了,屏幕上的脚本终于跑通了一个完整的周期,日志清晰,数据完整。我靠在椅背上,长出了一口气。速度很重要,但方向错了,跑再快又有什么用呢?无非是带着一身Bug,更快地冲向悬崖罢了。真正的敏捷,或许不是不顾一切的狂奔,而是在清晰的、高质量的地基上,迈出的每一步都扎实而坚定。
只是不知道,那些在会议室里高喊“唯快不破”的人,什么时候才能明白这个简单的道理。或许,总要等到他们自己的系统,在某个重要时刻彻底崩塌一次之后吧。













