创业初期,我的角色虽然是商务,但是项目人力紧张的时候,也要亲自写代码。
我记得一个非常复杂的 web 项目,我前期没重视,让一个研发同学负责,研发同学折腾半年用 wordpress 给对方搭建,但是甲方有非常多的定制要求,所以最后对交付产品非常不满意。
我春节前和公司副总一起去甲方现场挨批,被骂的狗血淋头,骂完了,甲方说让我表态,我说做错了的事情,就是我们错了,没有借口。
甲方进一步逼问怎么办,我说马上春节了,你们好好过春节,春节上班后没法用,退全款再加罚款。
甲方本来想为难我,没想到我说春节后第一周交付,根本不可能呀。你们半年都没搞好的事情,两周会搞好?但是都这样表态了,甲方也找个台阶给我下。
我回到武汉和研发同学梳理了一下需求 370 个任务,半个月,每天 20 多个任务,春节加班搞。
每天我们就花半个小时对接用户需求和当天完成任务,那时候我身兼设计师和前端,简单来说就是不做设计图,脑袋想象设计图,一次编码出产品质量的 CSS 和功能。
那段时间压力特别大,每天早上 8 点编码到晚上 12 点,写完代码洗漱就睡,啥都不干。老婆小朋友在北海玩,每天给我发赶海和螃蟹的照片,我就那样写呀写呀,眼看最后期限到,任务都快差不多了。最后 5 天基本上一起床脖子就疼,坚持写,疼也要写,拼了!
终于终于,最后一天写完就收工,傻逼的经历要来了。
最后一个功能是甲方要一个三列拖拽控件管理前端内容的顺序,找了下开源控件没有一个好使的,自己徒手搓,从晚上 12 点搓到 1 点,写了个 demo 做测试,各种测试不过,到 3 点眼睛已经困的不行了,各种测试不过,天亮就要交付了。还有几个小时,干脆重写吧,不调试了。
因为写了一遍,第二遍重写也很快,1 个小时写完控件和 demo,一测试,过了,oh yeah。
既然是全能研发,肯定不会这样放弃为什么第一版不工作的原因,我打开 emacs,用 ediff 检查了两个版本的代码到底有啥区别,看完我狂吐一口老血啊………
差别只有一个,关键状态的初始值差别,第一版是 false,第二版是 true,其实第一版控件逻辑是对的,就是太瞌睡了,初始化的时候脑袋抽了。
我 20 多年经验,凡是软件牛逼 bug 要么是知识屏障问题,要不就是越牛逼的 bug 原因越傻逼。
结局呢?春节后第一天上班,全新系统交付給甲方,甲方都震惊了,里里外外全部原创搞定,没有 bug。甲方最后说,这才是我们以前了解的操作系统团队,牛逼!