两年前,我还在大学最后一个学期,拿到了人生第一笔自由职业的单子。有个客户在领英找我,想给他在卖的健身器材做个配套应用。直到今天,他大概仍是我合作过最专业的人。当时我是个天真的新手,脑子里有一整套“核心工作”的排序——写组件、搭后端、部署上线、改缺陷,编码的部分才是正事,别的都不算。项目开始没几天,这个排序就被现实打碎了。
事情发展得出奇顺利,这种顺利其实是运气托了底。项目之外的日子正在塌方——刚经历分手,最后一学期快结束,职业不确定感一直压在后脑勺。我和朋友一起做着这个应用,到今天都特别感激有他的支撑。回看那段时间,手上有件需要全神贯注的事,确实维持住了日常运转的框架,没有让一切散掉。
客户按时付款,需求范围始终合理,沟通礼貌有分寸。更让人意外的是,他出钱租了一台苹果电脑,因为要打包苹果版但我们俩都没设备。那时的自由职业看起来太清晰了:有人提出需求,你交付产品,拿到报酬,多方共赢。这种简洁的逻辑链条,大半是从社交平台那些“我靠自由职业月入过万”的内容里得来的印象。现实完全是另一回事。
学开发的时候,几乎没人告诉你这些细节:搞清楚客户到底要什么、谈排期、应付模糊地带、定价、多轮修改、做到一半改需求、那些令人尴尬的沟通、范围蔓延、等回复、甚至不确定这笔单子能不能最终落地。开头那阵子,每一项都比写代码本身更消耗心力。可慢慢摸索着,事情也就一件件应付过去了。
有件事我印象很深,跟那位客户完全没有书面协议,一切建立在口头信任上。万幸他既没有中途突然扩大需求,也没有玩消失。回头看,这完全是侥幸。大约五个月之后,又来了一个客户机会。这次我们提前做规划,讨论需求、整理文档、起草协议,忙了一周左右,项目突然中断了,原因是对方内部还在协调方向。怪不了谁,但这个结果终于让我意识到,编码之外的那些功夫才是真正的工作。
热门跟贴