Files
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

74 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<audio id="audio" title="07 | 产品发布的那些坑儿" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/83/f4/8386e5d7e0f82fb8394c2a388676f5f4.mp3"></audio>
你好,我是邱岳,今天我分享的主题是:产品的发布。
上次的分享,我们讲到了产品的立项以及立项过程中的一些关注点。在项目立项后,就需要组成项目团队、设计、评审、开发、做项目管理与执行等等。这部分内容在上一季专栏中聊过,这里就不再展开了,今天的分享,我想跟你说说关于发布的一些经验和注意事项。
产品发布是临门一脚,虽然不算是决定性的关键时刻,但如果做得不好,也会导致慌乱,影响大家对项目和项目组的信心。过去我在发布中碰过无数的钉子,有很多有意思的经历,讲出来或许可以帮你避免类似的坑。
我过去在发布上摔了很多跟头,经常是信心满满地发布,灰头土脸地回滚。
我遇到的问题也五花八门,比如先发了代码没做数据库变更,或者发了数据库变更忘了及时订正数据,又或者时间没协调好,发布计划中第一步还没做完第三步就到点儿执行了,甚至是临发布了发现有个流程负责人在飞机上不能接电话等等。
我一度很纳闷,感觉自己是不是被诅咒了。为什么周围人的发布都很顺利,一到我手里就要出各种幺蛾子。
这个事情为我养成了两个习惯,一个是每到项目发布就非常紧张,如临大敌,草木皆兵,为此经常被同事调侃;另一个是我自己一直以来悄悄记录着一个发布时的检查清单,在很长一段时间里,每当自己负责的项目发布时,我都会对着看一遍。
我特意去旧硬盘里把这份检查清单翻了出来,有些杂乱,而且其中有一些检查项现在看起来显得很幼稚,或已经过时了,但从这列表中,你仿佛看到一个年轻产品经理的伤痕和反思,所以我也不怕丢人,决定一字不改贴出来。
<img src="https://static001.geekbang.org/resource/image/ec/de/ec443ba38fbc765ef6fb722064cff2de.png" alt="" />
这里面的每一条,基本都是因为碰过钉子,我才会记下来,有的还碰了不止一次。相信大部分产品经理都没有这么丰富的发布掉坑经验,所以今天我想分享一下我的伤痕和反思,希望帮你避免在这个环节掉入一些没必要的坑。
要在发布环节做到“一切尽在掌握”,我总结了三个检查思路。
## 1.该知道的人知道了吗
这是最关键的一步,大部分的发布问题都出在“有人不知道”,也就是相关方对发布的范围或时间不知情。
这里指的相关方首先是技术和流程上的相关方。比如上面检查列表中的第一条,就是项目发布了,该互相庆祝也庆祝完了,大家收拾东西准备下班了,这时发现隔壁部门的系统挂了,原因是我们改了某个业务状态逻辑没有提前通知对方。
类似的还有检查列表的 17 和 18有时我们依赖别人的接口或服务甚至是业务刚上线借用了别人的服务器结果发布的时候没提前跟人家说好流量一下上来了把人家的服务或服务器给干挂了。
还有业务部门和用户的相关方,这个我们在前面讲立项过程的时候也提过,就不重复了,列表中的 9、15、16 都是这类问题。
最后还要多提一句发布通知,这是在大公司里养成的习惯,简短地跟相关人说一下什么东西发布了,可能会带来些什么改变等等。发布通知尽可能冷静克制,发到合适的人就好了,别漏掉谁,也别什么事儿都兴师动众给全公司发邮件。
另外一般发布通知最后会有一两句致谢,感谢兄弟部门的配合之类的就好了,真诚简短足矣,不要加戏。
经常看到大公司的致谢特别长,其实显得特别不真诚,反而过犹不及,有点官僚主义,我觉得不是很有必要。
## 2.脑子里排练过吗
这个过程跟做产品设计时理解用户场景的过程类似,我们应当尽量在脑海中把整个发布过程演一遍。有时候严肃一点的项目会有明确的发布计划,发布计划会列明每一步做什么,先后顺序和负责人,可能的异常情况和预案。
几乎所有的发布意外都会跟准备不充分有关系,比如列表中的第 4、5、6 条,如果我们没有提前做好计划,或者某些环节被忽略、没有预留出足够的时间等等情况下,那就很有可能在发布的过程中出了问题。
而且类似的问题经常是:测试环境一切正常,发布到生产环境就不工作了。慌乱中很可能会节外生枝,比如早先我们没有服务治理之类的东西,有一些特定的服务需要在负载均衡上指定特定的服务器。
但是测试环境是单点,不会出问题,结果发到生产环境集群上就忘记了这个步骤,导致连环挂,查了很久才找到原因。
除了技术问题之外,把所有的流程在脑海中排练一遍,也可以帮助我们去识别流程上一些关键步骤的权限人,比如管数据库或服务器的同事,不要到了执行到了某一步的时候才去找人。
像我们之前在分享的时候说过,我们就遇见过一次,在执行某一次变更,有权限的人恰好在飞机上,然后找他的备份,找了很久。
## 3.万一出意外有退路吗
凡事都应当往好的方向努力,往坏的方向打算,发布也是如此,充分准备的同时也要准备好出现意外时的预案。
发布过程中出现问题的时候,可以根据影响用户的范围决定是回滚还是在线修,能不回滚尽量别回滚,毕竟会伤害团队士气。
所以为了尽量留出余量,发布时间也尽可能慎重选择。不要在业务高峰时间段发布,即便真出了问题也可以坚持一会儿尽量修复掉。另外也尽量避免在周末晚上发布,可能发完大家回家过周末了,万一出问题想召集人解决都很难。
如果确实救不回来了,就开始按部就班地回滚,如果项目规模很大,回滚的顺序也很重要,这个没有什么特别的技术含量,提前有个准备就可以。常在河边走,早晚要湿鞋,遇到了不要慌乱,沉住气处理好就行了。
## 总结
今天我们分享了产品或项目的发布,它其实是一个非常小而且不怎么核心的环节,我在准备这篇内容的时候也曾经犹豫过,担心它会不会太微不足道了。
但是,考虑到一方面发布具有很重要的里程碑意义,另一方面作为产品经理(也可能是项目经理)需要在各种环节中保持稳定和专业,也是职业素养的体现。
希望今天的分享能够给你带来启发,也欢迎你分享在自己的项目发布中经历过的糗事或积累的经验,我们下次见。