跳到主要内容
阅微漫记
返回

一次真实的「人生灰度发布」,我是怎么做的

成长
目录

以前我对“改变人生”的理解,多少有一点程序员式的理想主义。

发现现在的系统有问题。

于是开始设计新系统。

重新规划职业。

学习新的技能。

做一个副业。

建立个人品牌。

甚至幻想:

有一天把旧系统彻底停掉,然后切换到新系统。

听起来很完整。

也很爽。

但真正到了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岁程序员重新设计人生系统的过程。/

我们下期接着聊。


分享这篇文章:

相关阅读

上一篇
我自己的一笔人生技术债:一段拖了很久没还的账
下一篇
从「救火员」到「系统设计者」:一次转型复盘