软件工程师的创业陷阱:接私活

我本身是 Java 工程师出身,写代码至今已超过 15 年,创业也超过 10 年,曾经外很多项目给别人,也接过很多外包的项目,现在不接了,只经营电子报发送平台,在二年内累积超过 5000 家企业用户使用。身处在创业圈,只要有创业朋友主动问过我的,我都会和他说如果你能不接就不要接 (当然我也知道,如果不是为了活下去,谁愿意接 ?),因为这其中有太多陷阱,我分享如下给大家作个参考:

因为你写代码很快

通常会出来接私活的工程师大多是有些年资,也会有自己擅常的工具及 library,所以往往可以很快完成主管交代的工作,会认为客户的需求只要能在很短的时间内完成,这个项目就赚钱了。

【BUT】项目完成的快慢取决于客户的心情,只要他心情不好,就慢慢拖吧。你以为你的 Code 可以 reuse,最后你才发现真正被 reuse 的是你的肝。

因为你写代码很快,所以只要客户比价、杀价、压你结案时间,你就会心里想一下:嗯,只要我努力赶一下,应该没问题。

【BUT】,无形中你就牺牲了你的利润空间,只有赚到微利,你知道工程师估完成时间的准确率有多少吗 ? 准确率有多高,赚到微利的机率就有多高。

因为你可以赚每年的维护费

接私活是这样,只要你接了,之后的维护客户也很难不找你维护,只要慢慢的累积,每年都会有可观的维护费可以赚。

【BUT】,你知道大部份台湾公司有个不成文规定,同一套系统的维护费预算是每年递减的,客户会想:系统每年调整也该稳定了吧,都稳定了你也没作什么事为什么还要拿这么多钱 ? 接下来,你可能会想说如果客户想加新功能第 * 个一定先找你,试想一下,叫你照着三年前自己写的代码架构来新增功能,如果没有吐血,大概代表这三年你也没什么长进。不接总行吧 ? 偏偏你就这么有责任感,你不接客户也只能打掉重来请别人重新作一套,你忍心吗 ? 所以你觉得这维护费好赚吗 ?

因为你很能为客户着想

你因为很为公司着想,常常在开发过程中发现缺了什么或是主管规划错了,你会主动的加班把这些缺的部份补上调好,公司对你赞誉有加,如果接私活的时候以这样的态度来对待自己的客户,那双方合作的感觉一定很好。

【BUT】,你的客户当然好啊,因为你主动帮他加功能把系统调的更好,都不用再花钱啊。加钱 ? 合约当初就签好了,如何告诉客户要加钱 ? 况且这是你自己主动要加功能的。可以不加吗 ? 可以啊,但你可以忍受你的作品明明可以更好的而不让它更好吗 ? 如果是当初规划就错了,不调整能验收吗 ?

因为你知道客户要什么

因为在公司时主管常常也语无伦次,但你总是能分析出主管要的是什么,你也都能完成它,所以接私活时就算对方不懂技术,你也能完成他需要的功能。

【BUT】,你知道客户要的是什么吗 ? 不,你不知道,因为绝大部份客户自己要什么都不知道,而且你知道客户的上面还有老板吗 ? 你知道客户的老板要的是什么吗 ? 不,你不会知道,因为连他老板自己都不知道,这是 * 可怕的吗 ? 不,还有更可怕的,他们会告诉你他们知道想要的功能是什么,但你就是无法作出他们想要的。

因为你很能规划

你是个逻辑观念很好的人,只要主管告诉你他的需求,你可以很快画出系统架构图、代码架构图甚至是资料库架构图,准确率非常高,所以接私活的时候只要客户告诉你需求,你很快脑中就会出现各种架构图雏形。

【BUT】,你知道规格是谁开的吗 ? 对,是客户开的,因为他不开你就无法报价,如果他要你开,你也怕开完后报价他不接受就等于作白工了。那你觉得客户的逻辑会有你好吗 ? 所以通常你要作的是先了解客户的逻辑,然后找出矛盾的地方,然后提出更好的解决方桉,这一段来来就要花不少时间了,喔对,这一段通常是收不到钱的,客户会觉得你要接我的项目,你本来就要先来了解我的需求。

因为你有团队

因为你在业界有一定的人脉了,自己会写代码,再找个业务高手、美编高手,这样 * 小单位就好,大家可以分工,这样接私活的问题就变少、进行更顺利。

【BUT】,因为你有三个人,所以你只能接可以养活 >= 3 个人的项目,这种项目通常会稍大一点,因为以上所述种种原因会造成结案很慢,如果不结案人卡在这个项目拿不到钱,新的项目接不了,怎么办 ? 对,加人,所以你的团队变成了 4 个人,接下来你只能接可以养活 >= 4 个人的项目,这个时候如果来了个大项目呢 ? 对,你会陷入无限迴圈,直到你再也接不到更大的项目。