以前我对“改变人生”的理解,多少有一点程序员式的理想主义。
发现现在的系统有问题。
于是开始设计新系统。
重新规划职业。
学习新的技能。
做一个副业。
建立个人品牌。
甚至幻想:
有一天把旧系统彻底停掉,然后切换到新系统。
听起来很完整。
也很爽。
但真正到了40岁以后,我越来越不敢这么干了。
因为我突然发现:
人生不是一个可以随便停机维护的系统。
代码写错了,可以回滚。
服务器挂了,可以重启。
数据库出了问题,可以恢复备份。
但人生不是。
工资停了,房贷、家庭、孩子的生活并不会跟着暂停。
所以这几年,我开始慢慢改变自己的思路。
我不再问自己:
“我要不要彻底改变人生?”
而是开始问:
“我能不能先把人生的新版本灰度发布一小部分?”
我为什么开始想到“灰度发布”
其实原因并不复杂。
到了这个阶段,我越来越清楚地感觉到:
现在的工作系统还能运行。
工资还在。
生活还能维持。
家庭也需要这份稳定的现金流。
但另一方面,我也越来越明显地感觉到:
如果未来几年一直按照现在的方式运行,我并不确定自己是否愿意接受那个结果。
这是一种很奇怪的状态。
它不是“现在过不下去了”。
而是:
现在还能过,但我不想把未来完全交给现在这套系统。
这两个状态差别很大。
如果真的已经无法运行,选择其实反而简单。
辞职。
换工作。
转行。
创业。
但最让人纠结的,往往是这种“还能运行”的状态。
因为旧系统没有坏到必须重构。
新系统又没有经过验证。
于是最容易出现的一种情况就是:
一边对现状不满意,一边什么都不敢改变。
我自己也经历过这个阶段。
后来我开始意识到:
也许我缺的不是一个更勇敢的决定。
而是一个更小的实验。
我决定先不要辞职
这是我给自己做的第一个决定。
不是因为我觉得现在的工作一定值得长期做。
恰恰相反。
正因为我已经开始认真考虑未来,所以我更加不敢轻易切断现在的现金流。
我开始把自己的工作看成一个“稳定节点”。
它现在最大的价值,不一定是职业理想。
而是:
它还在持续提供资源,让我有机会测试下一套系统。
工资就是我的运行资源。
时间是有限的 CPU。
个人能力是现有代码库。
而我真正想验证的,是:
除了依赖这份工作,我还能不能建立另外一条能够持续运行的路径?
这个问题如果没有答案,我就没有必要急着切换。
所以我决定:
旧系统继续运行,新系统先灰度。
第一件事情:我没有给自己设计一个“新人生”
以前我很容易犯一个错误。
一想到转型,就开始做规划。
定位。
赛道。
商业模式。
产品。
内容矩阵。
收入模型。
个人品牌。
各种东西很快就会被我设计出来。
但这一次,我刻意压住了这种冲动。
因为我知道:
没有经过真实运行的数据,规划很容易只是想象。
所以我只给自己设置了一个很小的问题:
如果我把自己的技术能力、工作经验和这些年对人生的思考输出出来,会不会有人愿意看?
就这么简单。
不先问:
能不能赚钱。
能不能成为大 V。
能不能辞职。
能不能成为第二职业。
先验证最基础的一件事:
有没有真实的人愿意对这个东西产生兴趣。
于是,我开始写
这其实就是我的第一次灰度发布。
没有辞职。
没有宣布转型。
没有给自己贴一个新的职业标签。
甚至没有认真告诉很多人:
“我要做自媒体了。”
我只是开始写。
写自己40岁以后对工作的困惑。
写程序员的职业焦虑。
写人生技术债。
写个人系统。
写那些以前我觉得只能自己想的问题。
我把它们放到公开环境里。
然后开始观察反馈。
有人看。
有人点赞。
有人留言。
也有很多内容发出去以后,几乎没有反应。
一开始看到数据,我还是会有情绪。
一篇文章写了几个小时。
发布之后只有很少的人看。
很容易产生一个判断:
“是不是这个方向根本不行?”
但后来我提醒自己:
灰度发布的目的不是证明新系统一定成功。
而是获得真实数据。
如果第一次发布没有用户反馈,真正需要做的不是马上推翻整个系统。
而是继续观察。
调整。
再发布。
我开始给自己设置“流量之外”的指标
这是我后来觉得比较重要的一次调整。
如果只看阅读量,我很容易被情绪牵着走。
今天数据好,就觉得自己找对方向了。
明天数据差,又开始怀疑人生。
这和把生产系统的健康度只看一个 CPU 指标差不多。
所以我开始观察另外一些东西。
有没有人因为某个观点停下来。
有没有人留言说:
“这就是我现在的状态。”
有没有人愿意继续看下一篇。
自己有没有越来越清楚:
“我到底想表达什么?”
写到后面,我甚至发现:
真正有价值的数据,不只是别人有没有看,而是我自己有没有通过持续输出,逐渐找到自己的表达方式。
这也是灰度发布很重要的一点。
它测试的不只是市场。
也在测试自己。
有一次,我突然意识到:我并不是在做副业
至少一开始不是。
我真正做的,是在测试:
自己有没有第二种价值输出方式。
过去很长时间,我对自己的价值判断,几乎完全依赖工作系统。
公司给我什么职位。
团队怎么看我。
领导怎么评价我。
工资涨不涨。
项目重要不重要。
这些东西当然重要。
但它们有一个共同的问题:
控制权不完全在我手里。
而当我开始持续输出以后,我第一次拥有了一块相对独立的空间。
我写什么。
怎么写。
什么时候写。
积累什么。
沉淀什么。
这些事情开始慢慢回到自己手里。
这时候我才发现:
所谓第二增长曲线,可能并不是马上获得第二份收入。
更重要的是:
开始建立一个不完全依附于原系统的价值节点。
灰度发布最重要的一条原则:不能影响主系统
这句话,我现在越来越认可。
如果一个新实验严重影响旧系统,它就不是灰度发布。
而是在赌博。
所以我给自己的边界非常明确:
工作不能因此失控。
家庭不能因此被忽略。
现金流不能因此中断。
身体和正常生活不能因此被透支。
剩下的时间,才拿来做实验。
这意味着:
我不能因为一篇文章写得不好,就把一天的情绪全部搭进去。
不能因为数据不好,就怀疑自己的全部人生。
不能为了追求所谓增长,把所有时间都投入进去。
因为我做的不是一次 All-in。
我是在运行两个版本。
旧版本负责稳定。
新版本负责验证。
这其实非常反直觉
因为我们很容易把“勇敢”理解成:
辞职。
创业。
All-in。
孤注一掷。
但从工程角度看,真正成熟的系统升级,恰恰很少这么做。
大型系统不会突然把100%的流量切到新版本。
通常是:
1%。
5%。
10%。
30%。
50%。
然后不断观察。
发现问题,就回滚。
没有问题,再扩大流量。
我现在越来越觉得:
人生中的重大变化,也应该拥有这样的机制。
不是因为我们胆小。
而是因为人生的故障成本太高。
灰度发布以后,我也发现了很多“Bug”
当然,新系统没有因为灰度发布就自动变好。
恰恰相反。
它暴露出了很多以前看不到的问题。
比如:
我到底擅长什么?
别人为什么愿意看我的东西?
什么内容是真正有价值的?
什么东西只是我自己觉得有价值?
我能不能长期坚持?
我有没有稳定的输出能力?
我的表达方式到底是什么?
这些问题以前都可以停留在想象里。
现在不行了。
因为一旦发布出去,现实会给你反馈。
有些内容没有人看。
有些内容反而有反馈。
有些我以为很重要的东西,别人并不关心。
有些我自己觉得普通的经历,反而有人产生共鸣。
这就是灰度发布最大的价值:
它会强迫你用真实世界替代自己的想象。
我也开始允许自己“回滚”
这一点其实很重要。
以前我总觉得:
既然决定做了,就一定要坚持到底。
现在我越来越觉得:
回滚不是失败。
如果一个方向经过一段时间的真实验证,发现不适合自己。
可以暂停。
可以调整。
可以换一种表达。
甚至可以彻底删除。
真正危险的不是回滚。
而是:
明明数据已经告诉你有问题,却因为沉没成本继续往前冲。
程序员不会因为已经写了5000行代码,就认为这5000行代码一定值得保留。
人生也一样。
已经投入的时间,不应该成为继续投入错误方向的理由。
但灰度发布也让我看到了一些以前看不到的东西
最明显的变化是:
我开始拥有了一点“未来感”。
不是说我已经知道未来会怎么样。
恰恰相反。
我依然不知道。
但以前的未来是一个巨大的问号。
现在至少有一些东西正在发生。
我在持续写。
在持续积累。
在持续观察。
在慢慢形成自己的内容资产。
这些东西暂时可能还不能替代工作。
但它们开始存在了。
这很重要。
因为一个完全不存在的东西,没有办法成长。
而一个已经开始运行的系统,哪怕很小,也有可能不断迭代。
现在回头看,我觉得“灰度发布”真正解决的不是选择问题
以前我一直在问:
“我到底应该选择什么?”
现在我发现,这个问题有时候本身就问错了。
因为很多事情,在没有真正尝试之前,你根本不知道答案。
你以为自己喜欢。
做了以后发现不喜欢。
你以为别人需要。
发布以后发现没人需要。
你以为自己擅长。
真正开始做以后,发现还有很大的差距。
所以,与其逼自己在两个未知选项之间做一个人生级决定,
不如:
先把其中一个选项做成一个小实验。
让现实参与决策。
我现在越来越相信“小规模真实运行”
人生有很多决定,靠想是想不明白的。
职业是不是适合自己。
一种内容方向有没有价值。
自己能不能做好一件事情。
一个兴趣能不能变成长期能力。
一个想法有没有人需要。
这些东西都需要真实运行。
所以我现在给自己一个越来越明确的原则:
不要用一次重大决定,去解决一个本来可以通过小规模实验验证的问题。
如果可以先试。
就先试。
如果可以兼职运行。
就先并行。
如果可以只投入10%的资源。
就不要一开始投入100%。
如果可以先获得真实反馈。
就不要只在脑子里推演。
这可能就是我40岁以后,对“勇敢”这个词最大的重新理解。
当然,灰度发布不是永远不切换
这一点也很重要。
灰度发布不是为了让自己永远躲在安全区。
它只是让“改变”变得更加可控。
如果有一天,新系统已经证明:
它真的有用户。
真的有价值。
真的可以产生收入。
真的适合自己。
而且它的稳定性越来越高。
那么下一步当然可以逐渐增加流量。
从10%变成20%。
从20%变成50%。
甚至最终完成切换。
只是:
那个时候的切换,是经过验证之后的切换。
而不是情绪驱动下的逃离。
我现在还没有完成这次发布
事实上,我觉得它可能永远不会有一个所谓的“发布完成”。
因为人生不是软件产品。
没有最终版。
我现在仍然在工作。
仍然需要这份现金流。
仍然面对职业上的不确定。
也仍然不知道未来几年会走到哪里。
但和以前不同的是:
我终于开始给自己的未来留了一块实验环境。
它很小。
甚至还很不成熟。
但它已经开始运行。
这就够了。
因为过去最大的风险,是:
我的全部人生都运行在同一个系统里。
现在,我至少开始尝试建立第二个节点。
哪怕它现在还很小。
哪怕它现在还不能承担主要流量。
哪怕它还有很多 Bug。
至少:
它不是停留在脑子里的方案了。
它已经上线。
40岁以后,我可能不会再追求一次“完美转型”
以前我很羡慕那些能够突然辞职、创业、转行的人。
觉得那才叫真正的改变。
现在我对这件事情的理解发生了一些变化。
我越来越觉得:
40岁以后真正重要的,不一定是敢不敢推翻过去。
而是能不能在不摧毁现有生活的情况下,逐渐建立新的可能。
不是把旧系统马上关掉。
而是在旧系统还可以运行的时候,
一点一点把新系统做出来。
然后让真实世界告诉自己:
哪里可以继续。
哪里需要修改。
哪里应该回滚。
哪里值得扩大。
这就是我现在理解的:
人生灰度发布。
不是逃离。
不是赌博。
也不是给自己找一个永远不改变的借口。
而是:
让未来先获得一小部分流量。
然后,
让它自己证明。
也许有一天,我会真正完成一次人生版本切换。
也许不会。
但至少现在,我不再要求自己在一个晚上想明白未来十年。
我只需要做好下一次小规模发布。
然后观察。
记录。
修复。
继续迭代。
因为对于一个40岁的程序员来说,人生最重要的能力,也许已经不是“重新开始”。
而是能够让自己在不崩溃的情况下,持续升级。
我是语霖。/
执笔为语,心落成霖。/
希望用文字和声音,记录一个40岁程序员重新设计人生系统的过程。/
我们下期接着聊。