凌晨两点被运维的微信弹醒线上某客户的实例堆内存飙满了蹲在阳台抽第三根烟的时候顺手翻了翻移动硬盘里的项目归档文件夹。从大厂裸辞到现在开公司满打满算快五年踩过的坑比我这辈子修过的 bug 还多。很多刚动了创业念头的程序员兄弟总觉得自己代码写得溜架构设计得稳出来做软件公司肯定手到擒来。我当初也是这么想的觉得写代码是世界上最复杂的事连这都搞定了还有什么搞不定的。后来才知道写代码是确定性最高的工作 —— 输入输出明明白白bug 总能定位到根因大不了回滚版本。创业不一样全是没标准答案的破事踩错一步可能直接就没了。就说技术选型这事我早期给自己挖的最大的坑。第二年接了个制造企业的生产管理系统体量不大用户也就百来号人按道理 Spring Boot 单体一把梭配上 MyBatis-Plus半个月就能搭完骨架开干。我那时候脑子还没从大厂的思维里转过来总觉得要做就做 “业界标杆” 架构硬要上微服务还加了 Istio 做服务网格分布式事务用 Seata连前端都拆成了微前端模块。团队当时一共五个人光搭基础环境、调链路追踪、解决服务间调用的各种玄学问题就耗了快三周。上线之后更灾难客户那边的运维连 Linux 都玩不明白出个问题我们得远程连上去一层层排查有时候一个小报错能定位一晚上。客户天天吐槽系统慢、部署麻烦我们这边 7*24 小时待命救火。最后实在扛不住花了两个月把所有服务合并回单体删掉了一堆花里胡哨的中间件客户反而说系统比之前流畅十倍。从那以后我就定了规矩能单体解决的绝不拆微服务能用成熟稳定方案的绝不上新技术尝鲜。程序员最容易犯的病就是技术自嗨总想着用项目练手、刷技术栈忘了软件的本质是解决客户的问题不是给你当 github 简历背景板的。生产环境不是实验室稳永远比酷重要。技术上的坑好歹能靠代码一行行填招人的坑踩了能把你气得敲键盘的手都抖。第三年业务稍微起来点想着招几个大厂出来的 “高端人才” 撑场面面试的时候八股文问啥都会分布式锁、高并发、缓存雪崩讲得头头是道我当时还觉得捡着宝了。结果真上手干活就露馅了。让他独立搭个后台管理系统磨磨唧唧写了半个月代码里全是从各个开源项目抄来的片段连原作者的注释都没删干净。线上出了 bug 第一反应不是定位问题是先甩锅 “这不是我负责的模块”。大厂待久了的人很多就是流水线里的一颗螺丝钉只懂自己那一亩三分地的活创业公司哪有那么明确的分工需要的是能从产品需求聊到服务器部署、从前端页面写到数据库优化的多面手不是只会走流程、拧特定螺丝的职业选手。反而后来招的两个普通本科毕业、在小公司摸爬滚打了三四年的小伙子啥活都能接遇到问题自己查文档、找方案稳定性还高。现在招人我根本不迷信大厂 title就扔个实际需求让他现场写代码能搞定、不墨迹的比啥都强。招人踩的坑还没完全消化知识产权那边又给我来了记闷棍。早年做一个 SaaS 产品的时候图省事直接引入了一个 GPL 协议的开源组件当时根本没仔细看协议内容觉得开源的东西随便用。直到产品准备走商业化、要申请软著的时候才被律师朋友提醒 ——GPL 是传染性协议只要你用了整个衍生产品都得开源。吓得我们赶紧拉了个应急小组花了整整一个月把那部分逻辑全部重写连依赖的中间包都换了个遍产品上线时间直接推迟了两个月。还有商标我们公司的品牌名用了快一年才发现被人提前抢注了软件服务类的商标最后谈下来花了五万多才买回来纯纯的智商税。还有代码权限别觉得大家都是同事就敞亮着来核心仓库的权限一定要收窄禁止随便往个人 git 仓库推代码。圈子里有个朋友的公司核心开发离职把整套系统代码全拷走了转头就在隔壁城市开了家竞品公司打官司打了一年多费时费力还耽误业务。这些事平时看起来不起眼真踩中了轻则破财重则直接给公司判死刑。说到打官司签合同这事我也踩过大坑。刚创业那会脸皮薄抹不开面子客户说 “都是圈内朋友先做起来合同后面补”我居然就答应了。带着两个人熬了一个多月把系统从 0 到 1 搭起来上线结果对方说需求要大改还要加三个核心模块提加钱就翻脸说 “你们反正代码都写了改改能费多大劲”。最后尾款一分钱没拿到还搭进去了服务器和人力成本说白了就是被人白嫖了。后来我才知道人家就是找个没经验的小团队练手我们这种好说话的创业公司最好拿捏。现在我这边的规矩焊死合同没签、首付款没到对公账户需求文档一个字都不会动需求变更必须走变更单、补费用谁来说情都不好使。别觉得谈钱伤感情做生意不谈钱才是最大的耍流氓。合同规范了也架不住什么单子都接。刚起步那会见钱就想赚几千块的小项目也接觉得苍蝇腿也是肉。有次接了个个体户的进销存系统报价八千块结果客户今天要加个自定义报表明天要改界面颜色后天说要对接他那个杂牌收银机。前前后后折腾了快两个月算下来工时成本亏了好几倍。最气人的是验收的时候对方来了句 “你们做软件的不就是敲敲键盘吗怎么还要这么多钱”。从那以后我直接定了项目门槛低于十万的单子一概不接不是飘了是小客户的沟通成本、需求变更成本太高了同样的人力精力投给中大型客户产出能翻十倍都不止。而且越是预算低的客户对价格越敏感事越多你给他打五折他都觉得你赚了他大钱。学会筛选客户是创业公司活下去的必修课。说到赚钱就不得不提现金流这玩意我差点死在上面。前年接了个国企的大项目合同额两百多万当时觉得这下稳了一口气招了六个人还换了个更大的办公室想着团队扩张大干一场。结果项目顺利交付之后回款走流程走了整整八个月中间还被打回来补了三次材料各种签字盖章跑断腿。那半年真是我人生最焦虑的一段时间焦虑程度堪比线上核心库崩了还没备份天天愁下个月工资怎么发把自己房子抵押的钱都投进去了信用卡套了一张又一张半夜睡不着觉就翻银行卡余额。以前在大厂的时候从来不用操心钱的事每个月十号工资准点到账以为开公司只要有项目、有利润就不会死现在才懂利润是账面上的数字现金才是公司的氧气断氧几分钟人就没了。现在公司账上永远趴着至少六个月的工资储备金不管多大的项目没有 30% 预付款绝不启动回款周期超过三个月的单子利润再高也不碰。创业不是赌大小活下去永远比做大重要。钱的事难人的事更难合伙人这坑我踩得最疼。最早一起出来创业的是我以前大厂同组的同事大学就一起打算法比赛技术没得说知根知底。我当时觉得都是兄弟谈钱伤感情股权直接五五分分工也没说死谁有空谁多干点。结果干了不到半年他受不了天天见客户、喝酒、陪笑脸觉得还是大厂写代码舒服想回去上班说要撤资退股。那会公司账上本来就没多少钱他要撤资直接就现金流断裂。那段时间扯皮拉筋的比改祖传屎山代码还难受最后谈了快一个月我找亲戚朋友借钱把他的股份全部收回来才算把这事平了。从那以后我就认了合伙创业亲兄弟也要明算账股权绝对不能平分一定要有一个人能拍板说了算。退出机制、分红规则、分工权限全部要白纸黑字写进协议里别拿感情当规矩。找合伙人别光看技术合不合得来要看他的抗压能力、看他是不是真的想创业、看他能不能扛事一时脑热出来体验生活的再好的兄弟也别搭伙。搞定了合伙人带团队又是另一回事。程序员出身的老板最容易在管理上翻车。我以前总觉得大家都是搞技术的都是聪明人自觉点就行没必要搞什么打卡、日报、KPI 那一套显得太俗。结果现实给了我狠狠一巴掌。有段时间我天天在外面跑客户回公司一看几个人在工位上刷视频、逛论坛项目进度拖了一周都没人主动说。我还不好意思直说怕伤了技术人员的自尊心就自己留下来加班帮他们补坑。后来实在忍不了了硬着头皮立了规矩每日站会同步进度周计划周复盘里程碑节点卡死完不成就扣绩效。反而大家效率都上来了也没人摸鱼了。还有别随便给员工画饼程序员大多是实在人你那套 “未来上市分股权” 的说辞人家一眼就能看穿。不如实打实的项目上线了就发奖金加班了就给调休比什么虚头巴脑的愿景都管用。更别自己当了老板就开始天天改需求想想你以前当开发的时候有多讨厌朝令夕改的产品经理别活成自己最讨厌的样子。还有个很隐蔽的坑很多程序员创业初期都会犯就是觉得自己啥都能搞定。为了省钱工商注册自己跑记账报税自己做电脑坏了自己修连官网的 UI 都自己画每天忙得脚不沾地觉得自己特别努力。我早期也这样什么事都亲力亲为觉得别人做的不放心还能省成本。结果呢一天下来杂活干了一堆核心的业务、产品、技术规划根本没时间想公司越做越乱。后来花三千块请了代账公司五千块找了兼职行政把这些杂七杂八的事全部甩出去我专心跑客户、盯核心项目反而公司业绩涨得更快了。专业的事交给专业的人做别把时间浪费在低价值的杂活上。你的时间和精力才是创业公司最宝贵的资源盯着省那点小钱耽误了核心业务才是真正的捡芝麻丢西瓜。烟抽完了告警也处理得差不多了先写这么多吧。其实踩过的坑远不止这几个只是这几个印象最深差点直接把公司干没。创业这回事对程序员来说最难的从来不是技术是把思维从 “解决技术问题” 转到 “解决商业问题” 上。写了这么多年代码我们习惯了确定性习惯了有标准答案但创业的世界里没有 debugger没有回滚按钮选对选错都得自己扛着。回头看也没什么后悔的只是希望刚准备出来的兄弟们能少踩几个我们踩过的坑。有空再更工单又堆起来了。把这个文章重新润色一下已完成思考凌晨两点被运维的微信电话震醒客户生产环境某实例堆内存直接打满 OOM蹲在阳台抽第三根红塔山的时候顺手翻了翻移动硬盘里躺了快五年的项目归档。从大厂裸辞开软件公司到现在踩过的坑比这辈子修过的线上 bug 还多好多坑踩的时候都觉得公司第二天就要黄。很多刚动了创业念头的程序员兄弟总觉得自己代码写得溜分布式架构门儿清出来做软件公司还不是降维打击。我当初也是这么想的觉得写代码是天底下最复杂的活连这都啃下来了还有啥搞不定的。后来才明白写代码是所有工作里确定性最高的 —— 输入输出明明白白bug 总能定位到根因大不了回滚版本。创业全是没标准答案的破事没有 debugger没有日志堆栈踩错一步连回滚的机会都没有。就说技术选型这事儿是我早期给自己挖的最深的坑。第二年接了个制造企业的生产管理系统满打满算百来个终端用户按道理 Spring Boot 单体一把梭配上 MyBatis-Plus半个月就能搭完骨架开干。我那时候脑子还没从大厂思维里转过来总觉得要做就做 “业界标杆” 架构硬要上微服务还加了 Istio 做服务网格分布式事务上 Seata连前端都拆成了微前端模块美其名曰 “为后续扩展留足空间”。团队当时一共五个人光搭基础环境、调链路追踪、解决服务间调用的各种玄学超时问题就耗了快三周。上线之后更灾难客户那边的运维连 Linux 基础命令都敲不利索出个问题我们得远程连上去一层层排查有时候一个 504 报错能定位一晚上。客户天天吐槽系统慢、部署麻烦我们这边 7*24 小时待命救火比大厂 oncall 还累。最后实在扛不住拉着团队花了两个月把所有服务合并回单体删掉了一堆花里胡哨的中间件客户反而说系统比之前流畅十倍。后来我直接在团队把这条焊死能单体解决的绝不拆微服务能用成熟稳定方案的绝不上新技术尝鲜。程序员最容易犯的病就是技术自嗨总想着用项目练手、刷技术栈忘了软件的本质是解决客户的问题不是给你当 GitHub 简历背景板的。生产环境不是实验室稳永远比酷重要。技术上的坑好歹能靠代码一行行填招人的坑踩了能把你气得敲键盘的手都抖。第三年业务稍微起来点想着招几个大厂出来的 “高端人才” 撑场面面试的时候八股文问啥都会分布式锁、缓存雪崩、一致性哈希讲得头头是道手写 DCL 单例不带打磕巴的我当时还觉得捡着宝了。结果真上手干活就露馅了。让他独立搭个后台管理系统磨磨唧唧写了半个月代码里全是从各个开源项目抄来的片段连原作者的注释都没删干净。线上出了 bug 第一反应不是定位问题是先甩锅 “这不是我负责的模块”再补一句 “这在我们大厂都是中间件团队统一封装的”。大厂待久了的人很多就是流水线里的一颗螺丝钉只懂自己那一亩三分地的活创业公司哪有那么明确的分工需要的是能从产品需求聊到服务器部署、从前端页面写到数据库优化的多面手不是只会走流程、拧特定螺丝的职业选手。反而后来招的两个普通本科毕业、在小公司摸爬滚打了三四年的小伙子啥活都能接遇到问题自己查文档、找方案部署运维改 bug 一条龙稳定性还高。现在招人我根本不迷信大厂 title面试直接扔个实际需求让他现场写代码能搞定、不墨迹的比啥都强。招人踩的坑还没完全消化知识产权那边又给我来了记闷棍。早年做一个 SaaS 产品的时候图省事直接引入了一个 GPL 协议的开源报表组件当时根本没仔细看协议内容觉得开源的东西随便用。直到产品准备走商业化、要申请软著的时候才被律师朋友提醒 ——GPL 是传染性协议只要你用了整个衍生产品都得开源。吓得我们赶紧拉了个应急小组花了整整一个月把那部分逻辑全部重写连依赖的中间包都换了个遍产品上线时间直接推迟了两个月。还有商标我们公司的品牌名用了快一年才发现被人提前抢注了软件服务类的商标最后谈下来花了五万多才买回来纯纯的智商税。还有代码权限别觉得大家都是同事就敞亮着来核心仓库的权限一定要收窄禁止随便往个人 Git 仓库推代码。圈子里有个朋友的公司核心开发离职把整套系统代码全拷走了转头就在隔壁城市开了家竞品公司打官司打了一年多费时费力还耽误业务最后官司赢了客户早就被抢没了。这些事平时看起来不起眼真踩中了轻则破财重则直接给公司判死刑。说到打官司签合同这事我也踩过大坑。刚创业那会脸皮薄抹不开面子客户是朋友介绍的说 “都是圈内朋友先做起来合同后面补”我居然就答应了。带着两个人熬了一个多月把系统从 0 到 1 搭起来上线结果对方说需求要大改还要加三个核心模块提加钱就翻脸说 “你们反正代码都写了改改能费多大劲”。最后尾款一分钱没拿到还搭进去了服务器和人力成本说白了就是被人白嫖了。后来我才知道人家就是找个没经验的小团队练手我们这种好说话的创业公司最好拿捏。现在我这边的规矩焊死合同没签、首付款没到对公账户需求文档一个字都不会动需求变更必须走变更单、补费用谁来说情都不好使。别觉得谈钱伤感情做生意不谈钱才是最大的耍流氓。合同规范了也架不住什么单子都接。刚起步那会见钱就想赚几千块的小项目也接觉得苍蝇腿也是肉。有次接了个个体户的进销存系统报价八千块结果客户今天要加个自定义报表明天要改界面颜色后天说要对接他那个十年前的杂牌收银机SDK 都是 VB 写的查资料查了三天。前前后后折腾了快两个月算下来工时成本亏了好几倍。最气人的是验收的时候对方来了句 “你们做软件的不就是敲敲键盘吗怎么还要这么多钱”。从那以后我直接定了项目门槛低于十万的单子一概不接不是飘了是小客户的沟通成本、需求变更成本太高了同样的人力精力投给中大型客户产出能翻十倍都不止。而且越是预算低的客户对价格越敏感事越多你给他打五折他都觉得你赚了他大钱。学会筛选客户是创业公司活下去的必修课。说到赚钱就不得不提现金流这玩意我差点死在上面。前年接了个国企的大项目合同额两百多万当时觉得这下稳了一口气招了六个人还换了个更大的办公室想着团队扩张大干一场。结果项目顺利交付之后回款走流程走了整整八个月中间还被打回来补了三次材料赶上对方部门重组对接人换了三个每次换都要重新汇报一遍项目。那半年真是我人生最焦虑的一段时间焦虑程度堪比线上核心库崩了还没备份天天愁下个月工资怎么发把自己房子抵押的钱都投进去了信用卡套了一张又一张半夜睡不着觉就翻银行卡余额连支付宝理财都提前赎回了。以前在大厂的时候从来不用操心钱的事每个月十号工资准点到账以为开公司只要有项目、有利润就不会死现在才懂利润是账面上的数字现金才是公司的氧气断氧几分钟人就没了。现在公司账上永远趴着至少六个月的工资储备金不管多大的项目没有 30% 预付款绝不启动回款周期超过三个月的单子利润再高也不碰。创业不是赌大小活下去永远比做大重要。钱的事难人的事更难合伙人这坑我踩得最疼。最早一起出来创业的是我以前大厂同组的同事大学就一起打算法比赛技术没得说知根知底。我当时觉得都是兄弟谈钱伤感情股权直接五五分分工也没说死谁有空谁多干点。结果干了不到半年他受不了天天见客户、喝酒、陪笑脸觉得还是大厂写代码舒服想回去上班说要撤资退股。那会公司账上本来就没多少钱他要撤资直接就现金流断裂。那段时间扯皮拉筋的比改祖传屎山代码还难受最后谈了快一个月我找亲戚朋友借钱把他的股份全部收回来才算把这事平了当年一起熬夜改 bug 的情分也基本耗没了。从那以后我就认了合伙创业亲兄弟也要明算账股权绝对不能平分一定要有一个人能拍板说了算。退出机制、分红规则、分工权限全部要白纸黑字写进协议里别拿感情当规矩。找合伙人别光看技术合不合得来要看他的抗压能力、看他是不是真的想创业、看他能不能扛事一时脑热出来体验生活的再好的兄弟也别搭伙。搞定了合伙人带团队又是另一回事。程序员出身的老板最容易在管理上翻车。我以前总觉得大家都是搞技术的都是聪明人自觉点就行没必要搞什么打卡、日报、KPI 那一套显得太俗。结果现实给了我狠狠一巴掌。有段时间我天天在外面跑客户回公司一看几个人在工位上刷视频、逛论坛项目进度拖了一周都没人主动说。我还不好意思直说怕伤了技术人员的自尊心就自己留下来加班帮他们补坑越干越憋屈。后来实在忍不了了硬着头皮立了规矩每日站会同步进度周计划周复盘里程碑节点卡死完不成就扣绩效。反而大家效率都上来了也没人摸鱼了。还有别随便给员工画饼程序员大多是实在人你那套 “未来上市分股权” 的说辞人家一眼就能看穿。不如实打实的项目上线了就发奖金加班了就给调休比什么虚头巴脑的愿景都管用。更别自己当了老板就开始天天改需求想想你以前当开发的时候有多讨厌朝令夕改的产品经理别活成自己最讨厌的样子。还有个很隐蔽的坑很多程序员创业初期都会犯就是觉得自己啥都能搞定。为了省钱工商注册自己跑记账报税自己做电脑坏了自己修连官网的 UI 都自己画每天忙得脚不沾地觉得自己特别努力特别会过日子。我早期也这样什么事都亲力亲为觉得别人做的不放心还能省成本。结果呢一天下来杂活干了一堆核心的业务、产品、技术规划根本没时间想公司越做越乱。跑工商跑了三趟每次都缺材料浪费的时间都够谈半个客户了自己做账报错税差点被罚款省的那点代账钱还不够交滞纳金的。后来花三千块请了代账公司五千块找了兼职行政把这些杂七杂八的事全部甩出去我专心跑客户、盯核心项目反而公司业绩涨得更快了。专业的事交给专业的人做别把时间浪费在低价值的杂活上。你的时间和精力才是创业公司最宝贵的资源盯着省那点小钱耽误了核心业务才是真正的捡芝麻丢西瓜。烟抽完了告警也处理得差不多了先写这么多吧。其实踩过的坑远不止这几个只是这几个印象最深每一个都差点直接把公司干没。创业这回事对程序员来说最难的从来不是技术是把思维从 “解决技术问题” 转到 “解决商业问题” 上。写了这么多年代码我们习惯了确定性习惯了有标准答案但创业的世界里没有调试器没有回滚按钮选对选错都得自己扛着。回头看也没什么后悔的只是希望刚准备出来的兄弟们能少踩几个我们踩过的坑。运维那边又喊了有空再更有啥想问的评论区聊。
从大厂程序员到公司老板,细数这些年踩过的 9 条大坑
凌晨两点被运维的微信弹醒线上某客户的实例堆内存飙满了蹲在阳台抽第三根烟的时候顺手翻了翻移动硬盘里的项目归档文件夹。从大厂裸辞到现在开公司满打满算快五年踩过的坑比我这辈子修过的 bug 还多。很多刚动了创业念头的程序员兄弟总觉得自己代码写得溜架构设计得稳出来做软件公司肯定手到擒来。我当初也是这么想的觉得写代码是世界上最复杂的事连这都搞定了还有什么搞不定的。后来才知道写代码是确定性最高的工作 —— 输入输出明明白白bug 总能定位到根因大不了回滚版本。创业不一样全是没标准答案的破事踩错一步可能直接就没了。就说技术选型这事我早期给自己挖的最大的坑。第二年接了个制造企业的生产管理系统体量不大用户也就百来号人按道理 Spring Boot 单体一把梭配上 MyBatis-Plus半个月就能搭完骨架开干。我那时候脑子还没从大厂的思维里转过来总觉得要做就做 “业界标杆” 架构硬要上微服务还加了 Istio 做服务网格分布式事务用 Seata连前端都拆成了微前端模块。团队当时一共五个人光搭基础环境、调链路追踪、解决服务间调用的各种玄学问题就耗了快三周。上线之后更灾难客户那边的运维连 Linux 都玩不明白出个问题我们得远程连上去一层层排查有时候一个小报错能定位一晚上。客户天天吐槽系统慢、部署麻烦我们这边 7*24 小时待命救火。最后实在扛不住花了两个月把所有服务合并回单体删掉了一堆花里胡哨的中间件客户反而说系统比之前流畅十倍。从那以后我就定了规矩能单体解决的绝不拆微服务能用成熟稳定方案的绝不上新技术尝鲜。程序员最容易犯的病就是技术自嗨总想着用项目练手、刷技术栈忘了软件的本质是解决客户的问题不是给你当 github 简历背景板的。生产环境不是实验室稳永远比酷重要。技术上的坑好歹能靠代码一行行填招人的坑踩了能把你气得敲键盘的手都抖。第三年业务稍微起来点想着招几个大厂出来的 “高端人才” 撑场面面试的时候八股文问啥都会分布式锁、高并发、缓存雪崩讲得头头是道我当时还觉得捡着宝了。结果真上手干活就露馅了。让他独立搭个后台管理系统磨磨唧唧写了半个月代码里全是从各个开源项目抄来的片段连原作者的注释都没删干净。线上出了 bug 第一反应不是定位问题是先甩锅 “这不是我负责的模块”。大厂待久了的人很多就是流水线里的一颗螺丝钉只懂自己那一亩三分地的活创业公司哪有那么明确的分工需要的是能从产品需求聊到服务器部署、从前端页面写到数据库优化的多面手不是只会走流程、拧特定螺丝的职业选手。反而后来招的两个普通本科毕业、在小公司摸爬滚打了三四年的小伙子啥活都能接遇到问题自己查文档、找方案稳定性还高。现在招人我根本不迷信大厂 title就扔个实际需求让他现场写代码能搞定、不墨迹的比啥都强。招人踩的坑还没完全消化知识产权那边又给我来了记闷棍。早年做一个 SaaS 产品的时候图省事直接引入了一个 GPL 协议的开源组件当时根本没仔细看协议内容觉得开源的东西随便用。直到产品准备走商业化、要申请软著的时候才被律师朋友提醒 ——GPL 是传染性协议只要你用了整个衍生产品都得开源。吓得我们赶紧拉了个应急小组花了整整一个月把那部分逻辑全部重写连依赖的中间包都换了个遍产品上线时间直接推迟了两个月。还有商标我们公司的品牌名用了快一年才发现被人提前抢注了软件服务类的商标最后谈下来花了五万多才买回来纯纯的智商税。还有代码权限别觉得大家都是同事就敞亮着来核心仓库的权限一定要收窄禁止随便往个人 git 仓库推代码。圈子里有个朋友的公司核心开发离职把整套系统代码全拷走了转头就在隔壁城市开了家竞品公司打官司打了一年多费时费力还耽误业务。这些事平时看起来不起眼真踩中了轻则破财重则直接给公司判死刑。说到打官司签合同这事我也踩过大坑。刚创业那会脸皮薄抹不开面子客户说 “都是圈内朋友先做起来合同后面补”我居然就答应了。带着两个人熬了一个多月把系统从 0 到 1 搭起来上线结果对方说需求要大改还要加三个核心模块提加钱就翻脸说 “你们反正代码都写了改改能费多大劲”。最后尾款一分钱没拿到还搭进去了服务器和人力成本说白了就是被人白嫖了。后来我才知道人家就是找个没经验的小团队练手我们这种好说话的创业公司最好拿捏。现在我这边的规矩焊死合同没签、首付款没到对公账户需求文档一个字都不会动需求变更必须走变更单、补费用谁来说情都不好使。别觉得谈钱伤感情做生意不谈钱才是最大的耍流氓。合同规范了也架不住什么单子都接。刚起步那会见钱就想赚几千块的小项目也接觉得苍蝇腿也是肉。有次接了个个体户的进销存系统报价八千块结果客户今天要加个自定义报表明天要改界面颜色后天说要对接他那个杂牌收银机。前前后后折腾了快两个月算下来工时成本亏了好几倍。最气人的是验收的时候对方来了句 “你们做软件的不就是敲敲键盘吗怎么还要这么多钱”。从那以后我直接定了项目门槛低于十万的单子一概不接不是飘了是小客户的沟通成本、需求变更成本太高了同样的人力精力投给中大型客户产出能翻十倍都不止。而且越是预算低的客户对价格越敏感事越多你给他打五折他都觉得你赚了他大钱。学会筛选客户是创业公司活下去的必修课。说到赚钱就不得不提现金流这玩意我差点死在上面。前年接了个国企的大项目合同额两百多万当时觉得这下稳了一口气招了六个人还换了个更大的办公室想着团队扩张大干一场。结果项目顺利交付之后回款走流程走了整整八个月中间还被打回来补了三次材料各种签字盖章跑断腿。那半年真是我人生最焦虑的一段时间焦虑程度堪比线上核心库崩了还没备份天天愁下个月工资怎么发把自己房子抵押的钱都投进去了信用卡套了一张又一张半夜睡不着觉就翻银行卡余额。以前在大厂的时候从来不用操心钱的事每个月十号工资准点到账以为开公司只要有项目、有利润就不会死现在才懂利润是账面上的数字现金才是公司的氧气断氧几分钟人就没了。现在公司账上永远趴着至少六个月的工资储备金不管多大的项目没有 30% 预付款绝不启动回款周期超过三个月的单子利润再高也不碰。创业不是赌大小活下去永远比做大重要。钱的事难人的事更难合伙人这坑我踩得最疼。最早一起出来创业的是我以前大厂同组的同事大学就一起打算法比赛技术没得说知根知底。我当时觉得都是兄弟谈钱伤感情股权直接五五分分工也没说死谁有空谁多干点。结果干了不到半年他受不了天天见客户、喝酒、陪笑脸觉得还是大厂写代码舒服想回去上班说要撤资退股。那会公司账上本来就没多少钱他要撤资直接就现金流断裂。那段时间扯皮拉筋的比改祖传屎山代码还难受最后谈了快一个月我找亲戚朋友借钱把他的股份全部收回来才算把这事平了。从那以后我就认了合伙创业亲兄弟也要明算账股权绝对不能平分一定要有一个人能拍板说了算。退出机制、分红规则、分工权限全部要白纸黑字写进协议里别拿感情当规矩。找合伙人别光看技术合不合得来要看他的抗压能力、看他是不是真的想创业、看他能不能扛事一时脑热出来体验生活的再好的兄弟也别搭伙。搞定了合伙人带团队又是另一回事。程序员出身的老板最容易在管理上翻车。我以前总觉得大家都是搞技术的都是聪明人自觉点就行没必要搞什么打卡、日报、KPI 那一套显得太俗。结果现实给了我狠狠一巴掌。有段时间我天天在外面跑客户回公司一看几个人在工位上刷视频、逛论坛项目进度拖了一周都没人主动说。我还不好意思直说怕伤了技术人员的自尊心就自己留下来加班帮他们补坑。后来实在忍不了了硬着头皮立了规矩每日站会同步进度周计划周复盘里程碑节点卡死完不成就扣绩效。反而大家效率都上来了也没人摸鱼了。还有别随便给员工画饼程序员大多是实在人你那套 “未来上市分股权” 的说辞人家一眼就能看穿。不如实打实的项目上线了就发奖金加班了就给调休比什么虚头巴脑的愿景都管用。更别自己当了老板就开始天天改需求想想你以前当开发的时候有多讨厌朝令夕改的产品经理别活成自己最讨厌的样子。还有个很隐蔽的坑很多程序员创业初期都会犯就是觉得自己啥都能搞定。为了省钱工商注册自己跑记账报税自己做电脑坏了自己修连官网的 UI 都自己画每天忙得脚不沾地觉得自己特别努力。我早期也这样什么事都亲力亲为觉得别人做的不放心还能省成本。结果呢一天下来杂活干了一堆核心的业务、产品、技术规划根本没时间想公司越做越乱。后来花三千块请了代账公司五千块找了兼职行政把这些杂七杂八的事全部甩出去我专心跑客户、盯核心项目反而公司业绩涨得更快了。专业的事交给专业的人做别把时间浪费在低价值的杂活上。你的时间和精力才是创业公司最宝贵的资源盯着省那点小钱耽误了核心业务才是真正的捡芝麻丢西瓜。烟抽完了告警也处理得差不多了先写这么多吧。其实踩过的坑远不止这几个只是这几个印象最深差点直接把公司干没。创业这回事对程序员来说最难的从来不是技术是把思维从 “解决技术问题” 转到 “解决商业问题” 上。写了这么多年代码我们习惯了确定性习惯了有标准答案但创业的世界里没有 debugger没有回滚按钮选对选错都得自己扛着。回头看也没什么后悔的只是希望刚准备出来的兄弟们能少踩几个我们踩过的坑。有空再更工单又堆起来了。把这个文章重新润色一下已完成思考凌晨两点被运维的微信电话震醒客户生产环境某实例堆内存直接打满 OOM蹲在阳台抽第三根红塔山的时候顺手翻了翻移动硬盘里躺了快五年的项目归档。从大厂裸辞开软件公司到现在踩过的坑比这辈子修过的线上 bug 还多好多坑踩的时候都觉得公司第二天就要黄。很多刚动了创业念头的程序员兄弟总觉得自己代码写得溜分布式架构门儿清出来做软件公司还不是降维打击。我当初也是这么想的觉得写代码是天底下最复杂的活连这都啃下来了还有啥搞不定的。后来才明白写代码是所有工作里确定性最高的 —— 输入输出明明白白bug 总能定位到根因大不了回滚版本。创业全是没标准答案的破事没有 debugger没有日志堆栈踩错一步连回滚的机会都没有。就说技术选型这事儿是我早期给自己挖的最深的坑。第二年接了个制造企业的生产管理系统满打满算百来个终端用户按道理 Spring Boot 单体一把梭配上 MyBatis-Plus半个月就能搭完骨架开干。我那时候脑子还没从大厂思维里转过来总觉得要做就做 “业界标杆” 架构硬要上微服务还加了 Istio 做服务网格分布式事务上 Seata连前端都拆成了微前端模块美其名曰 “为后续扩展留足空间”。团队当时一共五个人光搭基础环境、调链路追踪、解决服务间调用的各种玄学超时问题就耗了快三周。上线之后更灾难客户那边的运维连 Linux 基础命令都敲不利索出个问题我们得远程连上去一层层排查有时候一个 504 报错能定位一晚上。客户天天吐槽系统慢、部署麻烦我们这边 7*24 小时待命救火比大厂 oncall 还累。最后实在扛不住拉着团队花了两个月把所有服务合并回单体删掉了一堆花里胡哨的中间件客户反而说系统比之前流畅十倍。后来我直接在团队把这条焊死能单体解决的绝不拆微服务能用成熟稳定方案的绝不上新技术尝鲜。程序员最容易犯的病就是技术自嗨总想着用项目练手、刷技术栈忘了软件的本质是解决客户的问题不是给你当 GitHub 简历背景板的。生产环境不是实验室稳永远比酷重要。技术上的坑好歹能靠代码一行行填招人的坑踩了能把你气得敲键盘的手都抖。第三年业务稍微起来点想着招几个大厂出来的 “高端人才” 撑场面面试的时候八股文问啥都会分布式锁、缓存雪崩、一致性哈希讲得头头是道手写 DCL 单例不带打磕巴的我当时还觉得捡着宝了。结果真上手干活就露馅了。让他独立搭个后台管理系统磨磨唧唧写了半个月代码里全是从各个开源项目抄来的片段连原作者的注释都没删干净。线上出了 bug 第一反应不是定位问题是先甩锅 “这不是我负责的模块”再补一句 “这在我们大厂都是中间件团队统一封装的”。大厂待久了的人很多就是流水线里的一颗螺丝钉只懂自己那一亩三分地的活创业公司哪有那么明确的分工需要的是能从产品需求聊到服务器部署、从前端页面写到数据库优化的多面手不是只会走流程、拧特定螺丝的职业选手。反而后来招的两个普通本科毕业、在小公司摸爬滚打了三四年的小伙子啥活都能接遇到问题自己查文档、找方案部署运维改 bug 一条龙稳定性还高。现在招人我根本不迷信大厂 title面试直接扔个实际需求让他现场写代码能搞定、不墨迹的比啥都强。招人踩的坑还没完全消化知识产权那边又给我来了记闷棍。早年做一个 SaaS 产品的时候图省事直接引入了一个 GPL 协议的开源报表组件当时根本没仔细看协议内容觉得开源的东西随便用。直到产品准备走商业化、要申请软著的时候才被律师朋友提醒 ——GPL 是传染性协议只要你用了整个衍生产品都得开源。吓得我们赶紧拉了个应急小组花了整整一个月把那部分逻辑全部重写连依赖的中间包都换了个遍产品上线时间直接推迟了两个月。还有商标我们公司的品牌名用了快一年才发现被人提前抢注了软件服务类的商标最后谈下来花了五万多才买回来纯纯的智商税。还有代码权限别觉得大家都是同事就敞亮着来核心仓库的权限一定要收窄禁止随便往个人 Git 仓库推代码。圈子里有个朋友的公司核心开发离职把整套系统代码全拷走了转头就在隔壁城市开了家竞品公司打官司打了一年多费时费力还耽误业务最后官司赢了客户早就被抢没了。这些事平时看起来不起眼真踩中了轻则破财重则直接给公司判死刑。说到打官司签合同这事我也踩过大坑。刚创业那会脸皮薄抹不开面子客户是朋友介绍的说 “都是圈内朋友先做起来合同后面补”我居然就答应了。带着两个人熬了一个多月把系统从 0 到 1 搭起来上线结果对方说需求要大改还要加三个核心模块提加钱就翻脸说 “你们反正代码都写了改改能费多大劲”。最后尾款一分钱没拿到还搭进去了服务器和人力成本说白了就是被人白嫖了。后来我才知道人家就是找个没经验的小团队练手我们这种好说话的创业公司最好拿捏。现在我这边的规矩焊死合同没签、首付款没到对公账户需求文档一个字都不会动需求变更必须走变更单、补费用谁来说情都不好使。别觉得谈钱伤感情做生意不谈钱才是最大的耍流氓。合同规范了也架不住什么单子都接。刚起步那会见钱就想赚几千块的小项目也接觉得苍蝇腿也是肉。有次接了个个体户的进销存系统报价八千块结果客户今天要加个自定义报表明天要改界面颜色后天说要对接他那个十年前的杂牌收银机SDK 都是 VB 写的查资料查了三天。前前后后折腾了快两个月算下来工时成本亏了好几倍。最气人的是验收的时候对方来了句 “你们做软件的不就是敲敲键盘吗怎么还要这么多钱”。从那以后我直接定了项目门槛低于十万的单子一概不接不是飘了是小客户的沟通成本、需求变更成本太高了同样的人力精力投给中大型客户产出能翻十倍都不止。而且越是预算低的客户对价格越敏感事越多你给他打五折他都觉得你赚了他大钱。学会筛选客户是创业公司活下去的必修课。说到赚钱就不得不提现金流这玩意我差点死在上面。前年接了个国企的大项目合同额两百多万当时觉得这下稳了一口气招了六个人还换了个更大的办公室想着团队扩张大干一场。结果项目顺利交付之后回款走流程走了整整八个月中间还被打回来补了三次材料赶上对方部门重组对接人换了三个每次换都要重新汇报一遍项目。那半年真是我人生最焦虑的一段时间焦虑程度堪比线上核心库崩了还没备份天天愁下个月工资怎么发把自己房子抵押的钱都投进去了信用卡套了一张又一张半夜睡不着觉就翻银行卡余额连支付宝理财都提前赎回了。以前在大厂的时候从来不用操心钱的事每个月十号工资准点到账以为开公司只要有项目、有利润就不会死现在才懂利润是账面上的数字现金才是公司的氧气断氧几分钟人就没了。现在公司账上永远趴着至少六个月的工资储备金不管多大的项目没有 30% 预付款绝不启动回款周期超过三个月的单子利润再高也不碰。创业不是赌大小活下去永远比做大重要。钱的事难人的事更难合伙人这坑我踩得最疼。最早一起出来创业的是我以前大厂同组的同事大学就一起打算法比赛技术没得说知根知底。我当时觉得都是兄弟谈钱伤感情股权直接五五分分工也没说死谁有空谁多干点。结果干了不到半年他受不了天天见客户、喝酒、陪笑脸觉得还是大厂写代码舒服想回去上班说要撤资退股。那会公司账上本来就没多少钱他要撤资直接就现金流断裂。那段时间扯皮拉筋的比改祖传屎山代码还难受最后谈了快一个月我找亲戚朋友借钱把他的股份全部收回来才算把这事平了当年一起熬夜改 bug 的情分也基本耗没了。从那以后我就认了合伙创业亲兄弟也要明算账股权绝对不能平分一定要有一个人能拍板说了算。退出机制、分红规则、分工权限全部要白纸黑字写进协议里别拿感情当规矩。找合伙人别光看技术合不合得来要看他的抗压能力、看他是不是真的想创业、看他能不能扛事一时脑热出来体验生活的再好的兄弟也别搭伙。搞定了合伙人带团队又是另一回事。程序员出身的老板最容易在管理上翻车。我以前总觉得大家都是搞技术的都是聪明人自觉点就行没必要搞什么打卡、日报、KPI 那一套显得太俗。结果现实给了我狠狠一巴掌。有段时间我天天在外面跑客户回公司一看几个人在工位上刷视频、逛论坛项目进度拖了一周都没人主动说。我还不好意思直说怕伤了技术人员的自尊心就自己留下来加班帮他们补坑越干越憋屈。后来实在忍不了了硬着头皮立了规矩每日站会同步进度周计划周复盘里程碑节点卡死完不成就扣绩效。反而大家效率都上来了也没人摸鱼了。还有别随便给员工画饼程序员大多是实在人你那套 “未来上市分股权” 的说辞人家一眼就能看穿。不如实打实的项目上线了就发奖金加班了就给调休比什么虚头巴脑的愿景都管用。更别自己当了老板就开始天天改需求想想你以前当开发的时候有多讨厌朝令夕改的产品经理别活成自己最讨厌的样子。还有个很隐蔽的坑很多程序员创业初期都会犯就是觉得自己啥都能搞定。为了省钱工商注册自己跑记账报税自己做电脑坏了自己修连官网的 UI 都自己画每天忙得脚不沾地觉得自己特别努力特别会过日子。我早期也这样什么事都亲力亲为觉得别人做的不放心还能省成本。结果呢一天下来杂活干了一堆核心的业务、产品、技术规划根本没时间想公司越做越乱。跑工商跑了三趟每次都缺材料浪费的时间都够谈半个客户了自己做账报错税差点被罚款省的那点代账钱还不够交滞纳金的。后来花三千块请了代账公司五千块找了兼职行政把这些杂七杂八的事全部甩出去我专心跑客户、盯核心项目反而公司业绩涨得更快了。专业的事交给专业的人做别把时间浪费在低价值的杂活上。你的时间和精力才是创业公司最宝贵的资源盯着省那点小钱耽误了核心业务才是真正的捡芝麻丢西瓜。烟抽完了告警也处理得差不多了先写这么多吧。其实踩过的坑远不止这几个只是这几个印象最深每一个都差点直接把公司干没。创业这回事对程序员来说最难的从来不是技术是把思维从 “解决技术问题” 转到 “解决商业问题” 上。写了这么多年代码我们习惯了确定性习惯了有标准答案但创业的世界里没有调试器没有回滚按钮选对选错都得自己扛着。回头看也没什么后悔的只是希望刚准备出来的兄弟们能少踩几个我们踩过的坑。运维那边又喊了有空再更有啥想问的评论区聊。