产品经理成长系列(6):场景&行为

场景,有四个要素:时间、空间、对象(人、物、数据等)、事件。

互联网语境下的场景分为大场景和小场景。

大场景更准确的说法是应用场景,比如说停车场无人收费、室内定位技术、高性能并发业务、实时数据分析与风控等,一般是在某些特定场合下,应用新技术或新模式,解决某种问题,带来便捷和效率。应用场景一般和解决方案相关联。

大场景用于说明产品在什么情况下更适用,用于体现产品的先进性。

小场景称为情景更为合适,表述得是某类或某个用户,在什么时间、什么地点、用什么方式,使用什么功能,来达到什么目的。

这和敏捷开发中产品经理写的「用户故事」(作为一个……的角色,我需要有……的功能,以便实现……的价值)有某些类似。但情景更关注用户使用产品当下的状态特征。

小场景在我们设计产品时非常有用,我们在面对一个页面、功能、交互设计时,要想到用户用它时的情景。一个什么样的人,在哪里,办公室或家里,具体是卧室、客厅还是卫生间马桶上,用什么样的姿势和设备,花大段的还是碎片化的时间,来进行什么样操作。

同样的信息元素,不同的情景下呈现的方式和重点都会有所不同。

尤其是产品经理在画原型的时候,脑子里要有一个用户,想象 TA 打开这个页面,最想一眼看到的内容是什么,哪些内容也是 TA 所需要的,却没那么重要,TA 最需要操作的是什么功能,等等。这样布局、元素大小、信息层次等的设计思路自然而然就出来了。

关于不同的场景,再举两个容易理解的例子,比如说一些软件有「老板键」的功能。

还有一些小说站有 Word 阅读样式,看起来就像在用 word 一样,实际上内容是小说。

场景就说这么多。下面说行为。

行为,是用户从进入到退出使用产品的整个过程中,所有和产品交互的动作。

用户的动作,大部分时间在看,一部分时间在操作键盘,一部分时间在操作鼠标或直接用手指,少部分时候用语音来控制(以后可能会成为主要交互手段),这些动作都会留下数据。

对于用户行为,产品经理有两部分工作,一部分是用户研究,另一部分是数据分析,各占有定性和定量分析的大部分比重。

用户研究重要的一个手段是用户画像,你对一个人了解的越清楚,越能预判他的行为。研究用户行为,主要是分析行为背后的驱动力或压力,什么因素造成了用户这样的行为。尤其是那些关键的业务动作。

另一方面来说,人是非常复杂的,同一个人,会呈现几种思维行动特征,经济人模式下,受理性支配较多,会以效用最大化的方式行动,会产生像电商活动中的比价行为;而社会人的模式下,以感性为主,会有从众和冲动行为。

反应在产品逻辑里,有的地方明确是以利益引导,有的地方是以情感打动,一般鼓励时用前者,规避时用后者。如卸载软件时,你经常会看到可怜巴巴的表情和话术,试图控制你不要卸载。

用户研究的方法论有很多书都写得不错,这里只总结一句我认为重要的话:一涉及到人和群体的研究,一定要想到分层、分类。

关于数据分析,一般包含以下几个部分,只列举,不细说。

  • 用户从什么地方来,渠道来源的数据。
  • 技术与设备属性相关数据,如网络、型号、分辨率、操作系统等。
  • 用户粘性、活跃度相关数据,打开频次、停留时长、跳出率、回访率等。
  • 用户关键业务数据,如注册、下单、付款、卸载等。
  • 用户生物社会特征数据。
  • 功能载体(基本是指页面)维度的数据。

如何入门用户数据分析?快捷的方法是阅读百度统计、Google Analytics、神策数据、友盟数据统计的帮助文档,用两天时间精读,数据分析就能入门。

与用户行为相对应的,是机器、程序行为,这也是产品经理应该掌握的。

比如用户从浏览器地址栏输入 URL 回车到页面渲染出来,整个过程会发生什么?手机各种传感器是怎么发挥作用的?掌握了这些常识性知识,技术小伙伴会很乐于和你沟通,你也不容易被忽悠「这个需求实现不了」。

从这一篇开始,就进入到产品经理的日常工作细节了。下面 2 篇分别是功能和交互、界面和内容,讲产品经理天天要面对的细节,最终展示给用户的作品。最后再加 2 篇迭代和交付、运营和增长这个系列就结束了。

产品经理成长系列(5):产品和价值

互联网仅 20 多年的历史,互联网产品经理这个岗位被正式确定也仅仅 13 年左右,相对于其它岗位,它还很年轻,在不同的公司里,产品经理的工作范围和重心也不一样,有的重市场包装产品宣讲、有的重需求分析产品设计、有的重项目管理落地实现,也就是说真正做产品经理,具体工作方向会偏重于其中一种。

通常产品经理本人会觉得产品设计是根本,其它的都属于「不务主业」,毕竟公司应该有市场、项目、运营相关岗位,产品经理就是要集中精力做好这设计的工作,但这就得看公司性质以及业务阶段对产品经理所提出的具体要求了。

一个人精通产品从创意、实现到运营盈利全流程很难,视兴趣和优势所在,扎实弄清楚一个方面也属难能可贵,公司所谓的员工「跟不上公司的发展」,往往是说在新的阶段,对你发挥新作用的期望和你对那个领域不精通不能产生更多效益所产生的矛盾。

这就要求产品经理在打好产品设计的基础上,对其它方面也重视,尽快摸到门径,让公司对你产生指哪打哪的灵活感,产品经理的工作内容,本身就是难以精细确定的。另外从自己创业的角度讲,具有综合型产品能力的好处不言而喻。

本系列前面几篇,先从用户和需求说起,谈的是产品的起源,再阐述业务和市场,说明了产品所处的竞争环境和服务于业务的任务,最后讲了商业和盈利,讲得是产品的使命和目标。

本篇是承上启下的一篇,进一步阐述产品和价值。之前的几个主题,讲得都是宏观的原理,这对于锻炼综合型的产品能力至关重要,之后的几篇,是执行层面的,教给大家具体的功能、界面和内容方面的操作思路。后续计划会出原型设计工具 Axure RP 9 的教学视频。

我们平常入手产品经理,普遍是从「术」切入,直接画原型、写需求文档,主观感受上,这种「入门方式」效率很高,很快就能上手干活,但从实际成长性来说,其实效率很低,脑子里没有之前那些关于商业、市场、业务的概念和原理,干活的过程里潜意识里只有 What 和 How,而没有 Why,提高会比较慢。

所以,整个产品经理成长系列 10 篇文章,从重要性上来讲,我作为作者,认为前 5 篇的权重要占到三分之二。

读完前面几篇,你现在对产品有什么「感觉」呢?

引用维基百科上的定义,「产品(Product),是用来满足人们需求和欲望的物体或无形的载体」。来延伸一下它的含义:

产品分为有形的部分和无形的部分。

而无形的部分是产品所能溢价的部分。

对于这一点,维基百科做了这样的补充说明:消费者购买的不只是产品的实体,还包括产品的核心利益(即向消费者提供的基本效用和利益)。产品的实体称为一般产品,即产品的基本形式,只有依附于产品实体,产品的核心利益才能实现。期望产品是消费者采购产品时期望的一系列属性和条件。附加产品是产品的第四层次,即产品包含的附加服务和利益。产品的第五层次是潜在产品,潜在产品预示着该产品最终可能的所有增加和改变。

产品经理常说的「可用性」、「易用性」,只是对于产品实体而言,解决了产品能用和好用问题,也就是「人无我有」的阶段,仅满足了用户核心利益,是初级的层次,这个阶段一般只能用价格战来定胜负。

而期望产品、附加产品、潜在产品的部分,则是影响用户购买决策的关键因素。我们希望用户对差异性功能更加渴望,对品牌、服务更加信任和依赖,并对产品的升级换代(创新)充满着期待,属于「人有我优」的环节。

这部分,也与产品需求方法论中的 KANO 模型建立了关联。KANO 模型是产品特性和用户满意度之间的关系描述。分为:

  • 基本型需求——必须要有;
  • 期望型需求——有了更好;
  • 兴奋型需求——超出想象;
  • 无差异型需求——实质没什么不同;
  • 反向型需求——完全多余;

举两个例子。苹果的手机产品,第 1 代一登场,就引起了人们的超级兴奋,尽管有些基本功能可能还不如传统手机好用,人们对它每一次的升级换代都充满了期待,这种情况在 iPhone 6 系列达到了顶峰,全球 2.4 亿台销售量让苹果占据了智能手机市场的第一(据说这也是乔布斯参与设计的最后一代 iPhone )。此后,iPhone 新型号的创新一直赶不上用户的期望,用户产生了无差异感知的心理。

另一个例子是特斯拉汽车隐藏式把手的设计,据说当时设计师和工程师都不愿意为了这个「无关大局」的设计和研发付出精力和时间,这对汽车品质和驾驶体验能有什么提升?老板马斯克的倔脾气上来了,门把手必须要隐藏起来,谁不愿意干谁就滚蛋,最终感应式的门把手被设计出来,最终证明,用户是很热衷讨论和宣传这个设计,愿意为这个小功能买单。我们很难琢磨用户会在哪些地方产生期待,不一定全都在核心功能上。

从一般产品、期望产品,到附加产品、潜在产品,产品经理需要为这个过程努力。

思考怎么实现这个过程,回归最朴素的想法。怎么才能让用户对你的产品期望或兴奋?

答案是让用户感知到你的不同。

怎么才能和别的产品不同?

差异化的特性很难想到。有个简单的做法就是与主流相反,这样能留给别人深刻的印象。比如苹果操作系统,很多细节都与 Windows 系统叫着劲来,窗口的关闭、最小化、最大化按钮 Windows 在右上角,苹果系统在左上角,鼠标滚动的方向,两个系统是相反的,这种想法的地方还要很多。

世界上的人都爱分阵营,本来就是个习惯的问题,但为了证明自己优越和说服他人,那一定会自发地想出些道理来。

还有比这个更简单的思路,也许也是最简单的思路了。那就是直接让某些习惯了的东西消失。这更能给用户造成冲击,硬件产品的设计上尤为如此,比如 iPhone 实体键盘的消失,特斯拉汽车门把手的隐藏设计等。

顺着这个思路,汽车的后视镜能不能消失?如果消失了,用户会不会兴奋,会不会讨论它?事实上有的公司正在做这样的事,利用两侧外置摄像头来替代实体的后视镜。新的特斯拉 Model 3 内部精简到只留下一个平板电脑,剔除了任何可以去掉的实体按键。尽管有的人批评它,但是喜欢的人更多,可以预测最后一定是喜欢上这种极简的设计的人是大多数。

继续联想,手机的屏幕能不能消失,电池能不能消失?汽车的方向盘能不能消失?刹车油门能不能消失?只要能用另一种方式实现同样的功能和目标,那就是可以的。这种创新思路简单,但做法(解决方案)就复杂了,很多时候要期待材料和技术上的关键突破。

取消了习以为常的交互方式,用户难以接受,但另外一个角度,人们总是喜新厌旧,一样新东西并没有比旧东西好太多,但人们也会喜欢更新的事物,这也是人性矛盾方面之一。

从这里也引申出了产品价值的公式:

产品价值 = 新体验 – 旧体验 – 替换成本

这个公式在国内是百度贴吧产品之父俞军首先提出的,非常巧妙的一个公式。首先它不是说新旧功能之间的竞争,而是指出了新旧体验的差异。体验是很主观的东西,虽然有一定的量化办法,但总归是柔性的,代表着用户就是觉得好,但说不清楚哪里好。

这种情况一定是几个关键的用户体验原则起着作用:需要的时候出现、不会给用户造成负担、不用用户费脑、用户只需最少的生物能量即可驱动和驾驭;

替换成本则是多方面的,有金钱(利益格局)、时间、习惯、情感等。有趣的是,替代成本可能是负数,如果能做到这一点,这个价值对用户而言是非常有吸引力的。各类补贴,可以说是用运营手段为用户替换决策加码。

比如说微信替代短信、移动支付替代刷卡、手机替代相机,都能从这个公式中咂摸出味道。新能源车还替代不了燃油车,就是充电和续航这两项体验还上不去,尽管每公里行驶成本前者大约只有后者的 1/10,养护成本也更低,还有政策加持,但是新体验和旧体验还不能达到等值。

产品价值不光体现于用户一端,还要体现于对公司的价值,我们经常还会听到行业价值、社会价值等。把价值换成「好处」两个字普通人就更好理解了。

做产品当然要对公司有好处,否则公司为什么花钱招人做这款产品呢?产品经理的难点也在于平衡这些价值。

有的公司老板(或上级 Boss)一厢情愿地想了些对自己更有利的产品策略,就命令产品经理去执行。这时候就考验产品经理的技能之外的能力了。

产品最大的难点就是有些策略没办法当场去验证对错,所以才会有 A/B 方案验证,如果你没办法说服老板,你要不选择抗旨不遵,要不选择听命,坚持和妥协都难,经常大概是后者,否则职场难以生存,如果数据越来越好,那恭喜你,老板是个英明的人,你也可以跟着成长,但你也可能会习惯了对开发小伙伴说:「老板就是这样要求的」;如果结果不好,你还是得承担责任,因为你是产品经理。

成为一个成功的产品经理很难。必要的条件是有一定的产品决策权限,想要有产品权限,需要有成功的产品做背书,没有权利,又很难做出成功的产品,这就是个悖论。

总的来说,在公司里做产品,需要遇到对的人,在对的时机选对了方向,加上强有力的执行和快速地错误回滚,综合起来,成功几率就非常小了。

说回产品的社会价值,Google 有一个理念是「不做恶」。这个理念不管有没有做到,能提出就非常伟大的。同样是搜索引擎,虚假的医疗信息害惨了多少个家庭就不说了。还有某公司疯狂搜集用户隐私数据盈利……案例实在太多。作为一个产品经理,最好还是能做一些对用户、对社会有长久正面价值的事情,这样自己活得安心。

网站遭遇 XSS 攻击

昨天晚上 11 点半,正在为网站更新内容,刚发布好的文章页面突然跳转到了国外的广告网站,这是怎么回事?赶紧排查解决,直到凌晨 1点半才算完全搞定。

这是一次典型权限问题导致的 XSS(跨站脚本)攻击,非常有必要记录下来。我希望我能写的通俗易懂,让不懂技术的产品经理、运营也能理解过程和原理,这样看的人在「知识广度」上就能有所扩充。

先打个比方。你平时总坐 365 路公交车去公司,今天你像往常一样上了 365 路,但是意外的情况发生了,一种情况是 365 路到了你公司那一站,它居然没停,直接把你带到了其它地方,或者,它根本就没走正常的路线;另一种情况是,公交车上的显示屏,不是正常放新闻广告,而是播起了爱情动作片!

XSS 攻击就像上面这个例子一样,被攻击的网站页面中,嵌入了恶意的代码,这些代码会干各种坏事。

现象描述

打开网站首页或任意一篇文章,加载完成后,浏览器状态栏显示请求一个跨站地址(非本域名的地址),先跳转到了一个空白页,此时浏览器地址栏的 URL 也已变化,紧接着又是一次重定向,最终落地页面是一个国外的广告页面。

截断重定向,在网页将要跳转前,快速按下 ESC 键,让网页停止加载,看网页源代码,在 head 区发现有这样一段代码:

这是一段编码后的 JavaScript 代码,不用解码,凭经验能判断它就是罪魁祸首!

打开浏览器开发者工具查看请求过程(macOS 下 Chrome 的开发者工具快捷键是 ⌘ + Option + i),在 Network 标签下刷新网页,看到过程中会请求几个第三方地址,首先是 hellofromhony.org/counter,接着有 thebiggestfavoritemake.com,还有nnatrevaleur.tk。

排查过程:

网站用的是开源的 WordPress,赶紧去看模板文件。发现模板文件最近都没有修改过,修改时间没有接近现在的。打开 header.php 模板头文件查看,也没有发现恶意代码。

这时候有点慌了,如果是别的文件被注入恶意代码,那就不太容易找了,WordPress 的文件那么多。

无论如何,先确定下是不是模板文件的问题。新安装并启用默认的模板,仍然会跳转——不是模板文件的问题。

这时候在 Google 上搜索那段恶意代码,隐约有人提到是插件引起的。我的网站安装了很少的插件,1 个官方的 Akismet Anti-Spam 和 4 个其它的,把其中 2 个我认为有风险的关掉,果然好了!网页不会再跳转了。

分析与解决:

接下来就好办了,也能有时间看问题是怎么产生的了。

根据插件名称和相关关键词搜索,定位到了是 yuzo-related-post 这个插件引起的。这个插件的用途是生成「相关文章」,大约在一周前,作者把这个插件停用了。

在 Stack Overflow (国外的一个程序员问答网站)上,已经对这个问题有了详细的讨论。地址是:https://stackoverflow.com/questions/55610548/vulnerability-in-closed-plugin-yuzo-related-posts

有位程序员已经搞清楚问题的原因,是这个插件保存配置的文件没有严格判断管理员权限,即使没有登录,也可以向/wp-admin/options-general.php?page=yuzo-related-post发送形如yuzo_related_post_css_and_style=</style><script+language=javascript>alert('hacked');</script> 的 POST 请求,这个数据会被成功地保存在数据库里。

上面那段编码后的恶意脚本就是通过这种方式注入到数据库中的。具体是在wp_options表中,名称为yuzo_related_post_options的行记录中,在option_value列中保存了这段恶意代码。

这个插件使用了is_admin()函数来判断是否是管理页面,但在 WordPress 官方文档中,明确提到了is_admin()不能代替安全认证检查。只要当前 URL 被用于 WordPress 管理页面,它就会返回 true。它不会检查用户是否已登录,也无法检查用户是否有权访问所请求的页面。它并不适用于验证安全请求。如果要判断用户权限,应该用current_user_can()函数。

进一步查询得知,Yuzo Related Posts 插件有超过 60,000 个网站安装,安全研究人员在 2019 年 3 月 30 日发现了一个未修补的漏洞,同一天进行了公开披露,4 月10 日开始被黑客正式利用。插件作者在 16 个小时前发布紧急通知让用户移除插件。

我的运气非常好,第一天就赶上了。

产品经理成长系列(3):业务和市场

业务

说起业务这个词,我们耳熟能详的有经营业务范围、传统业务、核心业务、创新业务、异业合作等。

那么业务到底是什么?业务就是完成产品和服务提供,收回现金流和利润或形成规模化垄断的一系列操作。

大白话就是我们是做什么赚钱的。

通常对业务是从客户价值角度描述的:「我们为客户提供『高大上形容词』的『概念性名词』……基于(利用)『某先进技术』,实现了『优化/创新/颠覆』」。

实际上,说的和做的可能是两码事。

这里推荐阅读曹政的《面目之下的真相》,他举了几个例子,说做大数据广告营销的,宣称机器学习的算法带来转化价值的提升,实际上业务重心是流量劫持;做教育平台的,如何如何有效提升了学生的学习兴趣和自学能力,获得了广泛好评,但业务基础来自于抄作业这个刚需;还比如说做电商平台的,业绩、流水、数据指标各种激增。但实际就是和羊毛党相互利用;还有做金融服务的,讲核心竞争力是大数据征信,实际稳定业务的是具有黑社会背景的催收团队。

受益于互联网不断推陈出新的概念和风口热词,互联网业务比传统实业在说法上有很多可以操作的空间,所以打算做产品经理,需要区分宣传语言和实际业务,快速识别公司的核心业务是什么,生存逻辑是什么,避免掉坑。

前面说了,我们开公司做业务,赚钱是最终目的,根据掌握的资源和所处的阶段不同,关注的目标不同,靠自己的本钱创业的,初期会关注现金流,保证存活的过程中求发展;获得竞争优势后,逐渐会考虑运营效率,降低单位成本、提高周转率,获取更高的纯利润;在资源充足的情况下,利如有资本注入,互联网业务为了获得垄断优势,往往会加大获客力度,快速形成规模。

所以,业务会有这样几种类型。起初是资源型业务,手里有什么蔬菜,我们就炒什么菜。这也是一般人创业的思路。互联网还有一种典型是机会型业务,就是突然出现的新模式,一般是国外首先出现,在技术上没有壁垒,马上投入资源进行跟随和本土化运作,像王兴几次创业都是这种模式。

资源型业务在资源枯竭,或者变现效率低的情况下,会发展为放弃型业务。它和机会型业务在窗口期发展良好的话,会形成公司的核心业务,吃一定时期的市场红利,随着衰退期的到来,公司将产生变革型业务和替补型业务,业务的变革,又有提前性变革、反应性变革和危机性变革,其实就是主动革命和被动革命的区别。

对于老板或创业者来说,在业务这个层面,最重要的是明白核心优势是什么,哪些是要做的,哪些是不做的。

哪些可以算作是优势?战略层面,最大的优势是管理优势,即刘邦所说的:「夫运筹策帷帐之中,决胜于千里之外,吾不如子房。镇国家,抚百姓,给餽饟,不绝粮道,吾不如萧何。连百万之军,战必胜,攻必取,吾不如韩信。三者皆人杰,吾能用之,此吾所以取天下者也。」其次是技术优势和资本优势。

战术层面,就是真正弄清楚自己能形成局部优势的是什么,能干得比别人好的那个点在哪里,不用自己的劣势拼别人的长处。

我呆过的一家公司,市场资源和产品包装能力不错,但产品和技术很弱,所以尽管接了不少项目,但交付的效果却很差,客户不满意,一直处于恶性循环,产品技术疲于应付项目交付,几年时间都没有沉淀出自有的成熟产品,也没办法从各种项目中构建起产品技术的方法体系,销售方面却不分性质、类型甚至不计成本,什么项目都接,连呼叫中心这种业务也接,公司也不考虑这种业务是不是自己所擅长的而进行推进,本来是想与客户建立良好的关系,等到交付完成,效果只能适得其反。

如果是我,我会把公司切成两半,一半专门就对接项目,能自己做的项目自己做,自己做成本高、风险高但也还有利润的项目就把自己作为一个集成商,找外包公司来做,发挥组织协调和项目管理的优势;另一半调集公司最强的产品和技术成员,以互联网公司的方式,打造真正的商用产品。

有所为有所不为,不论对于个人还是组织,都是智慧所在。《孙子兵法》说:「途有所不由,军有所不击,城有所不攻,地有所不争」。

对于打工的产品经理来说,要认清业务的地位和所处的阶段,了解自己领导或参与的产品对于核心业务或变革业务的贡献点在哪里,评估需要投入的成本和精力。也要从需求的角度,去了解业务的结构和目标,以及业务人员的习惯和痛点,以便能掌握比较全面的资料,从而系统性地优化业务本身,和提升产品对业务人员的友好性。

业务做得好坏,各行各业或各种模式的产品通常都有惯用的指标,通过数据分析,进行监督反馈,这个在系列的运营增长篇再详细说。

市场

下面来说说市场。

对于市场来说,有很多理论,尤其是在营销方面,如熟悉的4P、4C,还有后来扩展的4R、4V、4I 等,都是从不同角度对关键要素的阐述。类似这些也都不多说。我们也是关注几个核心点。

首先是市场规模,大家都知道,我国的人口规模持续对互联网行业产生了利好作用,手机网民高龄化和低龄化更是丰富了用户层次,产品类型的空间弹性加大。

到现在,上网人数基本趋于稳定,也就是说基本达到了顶峰,增量将只能从一个固定数量中挖掘。

因为基数庞大,一款小众的产品投入市场中,可能都会有很大的用户群体,用户基数展示出了中国长尾市场的威力。从年龄结构上来看,老龄化市场的规模将加大。

用户低频小额的付费习惯也逐渐培养起来,从这一点来说,从用户口袋里掏钱比以前变得更容易了,这也是今年苹果发布会是资讯影音等内容服务类产品订阅的基本逻辑。

从个人创业角度来讲,我们找到一个小痛点,用简单极致的方式解决了,每个用户一年只收取一个盒饭钱,那也会是很了不起的收入。

比如说 iPhone 的来电识别,至今都没有一个简单的产品去实现。有这个功能的 APP,功能又太多了,不够纯粹。我愿意为这项服务,每年付 30 块,你呢?

其次是市场阶段,教材上分为导入期、成长期、成熟期、衰退期。这里重点是和业务类型或者说产品矩阵结合起来,同时也关注产品的生命周期。

业务类型就是上面所说的变革型业务、替补型业务。互联网的行业,建立自我革新的机制非常重要,否则就会呈现雅虎、TOM 那种败局。BAT 这几家公司,腾讯的自我革新依靠内部的赛马机制,微信的补位直接让腾讯获得了移动互联网的船票。阿里的革新来自战略思维,百度缺乏自我革新,也没有典型的变革型业务和替补型业务,是被动地跟随者。

产品矩阵,一个是指波士顿矩阵,另一个是安索夫矩阵。

波士顿矩阵,是以相对市场份额和预计市场增长率组合形成的四个业务产品类型,就是大家熟悉的金牛(高份额、低增长)、瘦狗(低份额、低增长)、明星(高份额、高增长)、问题(低份额、高增长)产品。

它的目的是帮助公司发现业务和产品的表现,协助公司更妥善地分配资源,于是对应的策略有维持、撤资(不进行投资,将其出售或清算)、建立(增加投资)和收割(减少投资),通俗地理解为捧明星、榨金牛和杀瘦狗。

安索夫矩阵,是以新旧市场和产品进行组合,来定位采取什么经营策略。

  1. 市场渗透:目的是使现有产品的占据更多的市场份额。这也是一般公司常规市场策略,通过促销、提升服务品质等来与同类产品竞争,提高市场占有率。
  2. 新市场开拓:为现有的产品找到新的市场,通常要稍稍调整产品的定位和销售的方法,但核心技术基本不变,诺基亚手机的换壳改型号策略基本属于这一类。
  3. 新产品开发:为现有的市场研发新的产品,这要求有差异化竞争的能力。像手机市场出现 iPhone,属于颠覆性的产品延伸。
  4. 多元化经营:为新市场开发新产品,本意是要求创新,失败几率较大,互联网行业需要多在这个领域发力。那我们通常所说的和看到的多元化经营,是多干一样别人也在干的业务,比如做手机的同时又去做电子烟,或者做娱乐的又去做汽车一样。
  5. 市场维持:当市场渗透能力不足时,就剩努力维持这条路,维持不了的时候,只能缩减成本。

第三是市场格局,分为完全竞争、垄断竞争、寡头垄断、完全垄断。新市场的早期一般是完全竞争,进出都很容易,产品差异性比较小,如早期的团购和共享单车;随着竞争加剧,就出现了垄断竞争,资源不足的被清退出去,最后剩下几家,形成了寡头垄断,基本是老大吃肉,老二喝点汤,这种情况我们作为消费者也见得很多,疯狂补贴过后,市场上一半剩下两家,聪明的厂家不会格杀老二,像滴滴这种就是属于不聪明的。完全垄断不必多说。

最后是市场竞争,想从同类型产品中脱颖而出,就要让客户觉得你比别人好,这个和你真的比别人好不是一回事,不过最好是一回事。

竞争就是要做到领先,那么就有机会领先、规模领先、资源领先、成本领先、渠道领先、推广领先等。主要是考验策略和手段,每个阶段都有竞争要点和竞争壁垒,没有一成不变的竞争优势。所以「守业」比「创业」更为艰难,守着守着就守不住了。

你需要什么样的协作工具?

无码科技公司的 Fenng 昨天发了一条招聘信息。其中一个岗位是「业务多面手」(我理解就是行政人员),要求「擅用工具……而不是发送离线 Excel 与 Word 解决协作问题。」

我很喜欢这种招聘写法,直接 PO 图上来。

自己创办公司或者在公司里做管理,要在制定制度、锻造氛围、提炼方法论、引入效率工具方面费一些心思。前两者因为重要容易受到重视,后两者则在有空余时间才能被关注。

如果比作军队,这四项可以等同于军法军纪、意识形态、作战兵法和武器装备,实际上,战术层面的兵法和兵器同样至关重要,这两项具备条件了,能打胜仗,给士兵信心,对于前两项的建设将更为顺利。

四项并重,将领要时常关注并引入最新式的协作工具。

用离线文档协作,包括用邮件发送附件,对互联网公司追求极简和高效的基因不符。不过也有一些人,把用邮件确认责任看得极重要,作为职场自保或甩锅的常规手段。

好了,闲话不多说了,推荐几款协作工具。


首先,基础的办公协作环境建立,建议有条件的公司用 G Suite(Google 智能办公套件)。用了就会上瘾,不多说。

字节跳动公司今年初也上线了一款企业办公套件,名字叫 Lark Suite,整合了沟通、共享日历和文档在线协作。对,你没有看错,就是开发出今日头条、抖音、多闪、懂车帝应用的那家公司。Lark Suite 不仅是面向企业市场,更是直接面向海外,基于什么战略考虑,不好揣测。

测试用美国手机号注册,还需要联系字节跳动公司,获得邀请码才能完成注册,没有看到内部的界面。


项目敏捷管理,推荐三款:禅道、iCafe(百度互联网研发管理平台)、TAPD(腾讯敏捷产品研发平台)。禅道我在6年前的创业公司引入使用,TAPD 我在上家公司推广普及,都算是重度用户。

借用 TAPD 和 iCafe 的图片简单说明一下敏捷迭代。敏捷的目的是快速交付以验证市场,实施敏捷我的经验是需要有两个条件:一是团队成员产品、开发、测试水平要均等,且高于一般水平,二是团队成员都得是自驱型。不满足这两点,发布效率和产品质量都会出大问题。所以要求还是比较高的。

敏捷并不代表开发成本低,事实上往往开发成本更高,它也不代表比瀑布流更先进,我更愿意理解它是求快的被动之举。总之来说,敏捷其实会有很多坑。另外有个弊端是有些公司都按公式化套用敏捷方法,过程中的早会、回顾会、需求规模估点都流于形式,似乎不这样就不规范,实际敏捷更主要的是精神、意识,方法要和自身实际情况相结合,才能产生敏捷的效果。硬性套用西方的方法,就是削足适履。

关于敏捷管理,以后会在《产品经理成长系列》中专门写一篇。


这是禅道的界面。禅道的优点是可以私有部署,担心泄露数据的公司比较看重这一点。

TAPD 是腾讯的产品,在功能和形式基本和禅道类似,但是操作体验更胜一筹,这也是腾讯产品一贯的致胜绝招,TAPD 一些高级功能只有在用满半年后联系客服才能开启。它的帮助信息很友好,另外还运营了一个社区,这些都是腾讯特色。腾讯系牛的产品也都在用这个工具,如微信、王者荣耀、美团点评、富途证券等。

iCafe 是百度的产品,相对更为简洁,也有自己的特点。百度旗下的产品也在使用,如手机百度、百度云、百度糯米和百度理财等。

这三款工具,都够用,关键的还在于自己敏捷的标准的确立上。有时候,需求分类标准建不好,用着用着就会变得尴尬。


敏捷是为了持续交付,那集成了 DevOps 工具的重量级产品非「阿里云效」莫属。

DevOps 的理念是连接开发和运维两段工作,使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

阿里云效不仅包含了上述三个产品项目管理这一段,还包括了研发、测试、运维的阶段管理。

研发域的管理有分布式代码托管服务、SCM配置管理、应用全生命周期管理、多人协作开发流管理;测试域提供测试环境管理,单测、UI、接口、性能、集成等自动化测试服务,以及用例、缺陷管理和测试数据及Mock服务。运维域能进行一站式资源管理、发布部署等完整运维体系环境提供以及掌上运维和智能一站式监控服务。

为了日后公司壮大产品需要全流程的开发管理,建议直接上阿里云效,它是淘宝成长过程中内部孵化出来的,也会持续进化。

如果项目管理和 DevOps 分开,阿里云还有一套 CodePipeline 平台可供选择,它主要用于从代码到应用的持续集成和交付。

上面几款工具,哪款更适合你的团队或公司?

微信扫码关注公众号「伟君子说」

创业、产品、技术、运营分享

产品经理成长系列(2):用户和需求

(01)

选了产品范围的10个主题,作为产品经理成长系列的提纲,刚写完第一篇互联网历史和产品经理历史,接下来写用户和需求。

发现不太好找切入点,是写宏观的理论,方法论,还是执行面?

回想这个系列的定位,我想让什么水平的人获得什么样的内容,以完成他的什么目标?我能提供给他哪些差异化的内容(难以从别的阅读渠道获得的)?

(02)

以上其实就是分析用户和需求的点火过程。我确定了这个系列是写给想转为产品经理的人看的——就是你,假设有与你相同的一类目标用户。你的愿望是从其它岗位成为一个真正的产品经理,让有决策权的人相信没有经验的你能干得了产品经理的事。你的基础在于了解完成一个产品需要哪些岗位(你可能属于其中的某个岗位)协作,也了解产品经理日常需要做些什么,觉得这些工作不是特别难,但如果你去接这些事,又会心生恐惧,觉得不能胜任。你可能看过一两本产品经理的书,经常浏览些相关文章,也关注了「伟君子说」,期待哪一天抓住机会,成为一个比现在岗位工资高的产品经理。

以上都是我的脑补,假设了用户的目标、痛点、心理、行为,我可以继续更具体地脑补,比如你的生理特点和社会特征:年龄、性别、大学、专业、压力来源、成本投入意愿、学习时间和方式。更进一步地思考你转型的动机和背景,是热爱创造产品,还是不喜欢目前的岗位,因为有危机感,或是要追求更高的收入。

(03)

当完成上面的假设后,马上该做的,就是找到你们,对你进行观察、和你们交流(访谈)、给你们发放问卷、组织你们吃饭😁(座谈)。确定你的阅读学习习惯(也许是爱坐在马桶上刷公众号),哪些内容对你们帮助是最大的(价值最大化),你们所喜好的文章形式,我要尽可能在阅读体验(排版格式、发送频率和时间等)、内容质量方面对你们友好。

实际调研完,需要修正之前的一些假设。然后我再确定内容定位,你轻易能接触到的书本知识,就不能再重复写了。千辛万苦我终于找到了几个对你有用的,别的地方又不太容易看到的选题,开始原创。

(04)

文章发布后,我仔细地观察你看了哪些(用户行为)、听你说了什么(用户反馈),去看后台的统计(数据分析),根据这些不断迭代内容的方向细节,终于带大家成功入了门,你们自豪地说:「我现在做产品没问题了!」(实现了用户价值),你们热情地喊我郑老师,给我打赏(实现了商业价值)。

看明白了吗?上面,就是一个完整地、系统地用户分析和需求挖掘满足的过程。举了内容类产品的例子来说明用户研究(简称用研),给用户圈层(划分目标用户、潜在用户、核心用户、种子用户),对用户进行画像,挖掘用户痛点和需求。

(05)

通过理解这个例子,再去系统地看书本中的方法论,就能事半功倍。

对于功能型的产品,也是同样的道理。你需要举一反三,遍历各种类型的产品和用户(比如电商和供应商用户),通过这样的强化训练,完成建立用户导向的系统思维。

闭上眼睛,仔细想你在学习、生活、工作场景中的不同角色,你的决策和行为——你自己就是各种产品的用户,用这种同理心,你就能理解你产品的用户。

(06)

如果是一个既定的产品目标,用上面的方法很容易套的。但如果你是一个创新者,该怎么发现和挖掘用户需求呢?

关注「如果能……该有多好」这个句式,发现商机和产品创新大多来源于这句话背后隐含的痛点,更高阶的是通过你的设计,会让用户觉得「原来还能这样!」

人性永远在追求更快(效率)、更多(规模)、更好(更方便、更先进、品质更高)、更便宜(性价比),结合马斯洛需求层次的理论,可以组成一个矩阵结构,从中发现痛点。

比如,基本需求「衣食住行」中的「行」,即交通或旅行,在不值得(不方便)打车,步行又不算近的地方,「如果能有一辆随骑随停的自行车,该有多好。」考虑和「我」有一样想法的人有多少,再去思考「随骑随停」的解决方案。

那企业用户的需求又该怎么发现,如果你本人不具备某个行业长期的从业经验,没有认识到这个行业、产业在利润、效率方面的强烈痛点,那最好能和一个懂业务的人一起合作,外行很难通过资料数据调研出结果来。

(07)

我们职场产品经理拿到一个产品或功能任务通常是怎么做的,首先去找竞品,看竞品是怎么做的,然后选自己认为最好的地方开始抄、拼凑。

我希望新入行的产品经理可以建立另外一种惯性行为。

拿到一个产品命题后,先思考它的使命、目标,它的用户,了解它的历史演变,再去看现存的竞品。

先用户需求分析,再竞品分析。可能你能做出有创新的东西。

(08)

举个实战例子。我曾接手过一个政务数据的产品,上面的要求是做共享交换和开放增值两个平台,我一开始就拿到了几个竞品的用户手册、详细方案等资料,有的还有演示地址。我浏览了一遍这些资料,公司的要求比较简单,实现同样的功能就能交差,这对一个12年的产品经理肯定不是难事。

事实上我是这样做的,第一步先对共享、交换、开放、增值四个词做了定义,确定它们的内涵。抛开「高大上」的宣传概念,先让这几个词回归它的本质。

  • 我们计算机和系统上常见的共享、交换、开放的做法是什么。
  • 这几个动词的对象是数据,数据存在的方式决定了动作的方式。
  • 政务数据有什么独特的属性,和一般数据有什么区别。

这几个问题弄明白后,脑子里产品设计思路呼之欲出。但还不着急。

第二步了解为什么要做这个产品,市场上为什么会有这个产品。不了解不要紧,一了解才知道这是政策产物,市场从2007年就启动了,你2018年才开始做,还有机会吗?机会在哪里?

不知道,那就第三步就去了解用户吧。最大的用户是国家,国务院年年出文责令地方委办局上报数据,对各个层级的执行单位都有规定。我们分析用户一直要从大组织、小组织到执行的个人,套用文章一开始的思路,组织有什么目标、任务,群体有什么心理和行为习惯,具体决策的领导和执行的个人分别是什么认知、诉求和心理行为,他们的实际需求是什么。恕不展开,这时候你有些经验的话,已经能得出很关键的「产品价值」结论了。

这一步里还能发现大量的「约束条件」,如政策层面,为了指导目标达成,政府出台了一些方法,产品要符合这些方法(才能被客户接受),而提出这些方法的研究机构,所采用的方法(对它而言是一项政治任务,而非商业解决方案),和当时的技术环境等,都会对它的研究结果产生影响。等你在设计产品细节的时候,以「信息资源目录」为例,会发现大量的问题。还有政务外网、政务专网这些网络环境的技术性约束条件,也要推翻第一步的部分结论。

第四步再做竞品分析,经过对能掌握到的资料「客观」地分析,竞品有两个比较大的特征,一是基本是一步到位,后期没有再进行过迭代;二是子系统、模块异常复杂。就拿交换来讲,发布和订阅两个动作即可解决交换,但竞品里各种技术术语,各种中间件和配置,这其实是和商业价值(产品报价)有关。

(09)

产品经理经常会切换思维模式,在用户体验方面,得把用户当小白,在规则设计方面,又要防范那些聪明的用户。

这句话是想说用户具有多样性,群体和个人都是。人性有多复杂,用户就有多复杂。

用同理心来培养对用户的洞察力。做产品经理最大的一个收获是对别人的心理很敏感,但这并不等同于会察言观色。

最后按照惯例,留两道思考题:

  1. 乔布斯说过:「人们不知道想要什么,直到你把它摆在他们面前。」张小龙也说过:「需求只来自你对用户的了解,不来自调研,不来自于分析,也不来自于讨论。」你怎么理解这两句话?
  2. 为什么产品经理经常会觉得设想的目标用户和实际用户不同,想让用户做什么,和用户实际做什么,也有差别?

扩展阅读:

  • 《中国社会各阶级的分析》(1926年3月)毛泽东
  • 《增广贤文》佚名
  • 《赢在用户》[美] Steve Mulder / [美] Zivv Yarr

新注册的微信公众号不能开通留意功能,如想交流,请在公众号发送信息。

机器人替代我们还需要多久?

开了一个微信公众号,原计划每周二、四、日更新(和双色球开奖周期一样),但第二周就打乱了计划。和同学一起去厦门调研了智能财务产业的发展情况,频繁跑各家公司,就没来得及更新《产品经理成长系列》,解决的办法恐怕只能是提前多写几篇出来。

这次出去调研,收获了两点感想和一个创业想法,给大家汇报一下。

一、机器人代替人类工作会比想象的来得更快

这次出去就是调研智能财务,之前说过我本人就是学财务的,但一直在做互联网,对财会业务自动化发展成了什么样几乎没有了解,这次一看,大吃一惊。

具有大规模财务业务的公司,都有财务共享中心,就拿费用报销这一部分业务来说,员工报销可以在移动端填报,这个不足为奇。现在报账机器人(报销柜员机)也被发明出来了,员工自助凭指纹、面部识别登录,送入原始凭证后,机器第一步会自动扫描成电子版,第二步利用 OCR 技术识别票面内容,第三步进行稽核凭证,非常快就能完成预设的80多项规则校验,包括真实性、有效性、是否符合内部财务管理规定等,期间会与国税、航旅系统联合校验,也会与历史记录比对票据连号情况等,非常细致,要是人工去干完这些事,需要很多时间,还没有程序准确率高。

还有日常的财务记账业务,系统获得电子凭证或银行回单后,会定时启动 RPA 工具(机器人流程自动化,对这方面感兴趣的同学可以了解下 UiPath)自动在财务系统中记账,一般是在财务上班之前,分录已经自动填报在系统中了。

简单一句话:许多机械重复的财务工作已经不需要人来做了,未来机器人可以做的更多。

亲眼见过,才能体会到上面这句简单话的震撼。在财会同学群里,大家讨论,感觉离失业不远了。

不止是财务这个领域,其它领域的自动化和人工智能发展也非常快。

未来,帮你处理纠纷的法官可能是机器人,「机器人法官」会通过深度学习分析法律文件和其他相关信息作出判决。

下一次找工作,你的面试官可能不是人了,tengai 是 furhat robotics 与瑞典最大的招聘公司之一 TNG 联手打造的招聘机器人,旨在消除面试官在招聘过程中的潜意识偏见。机器人在准确筛选简历方面也胜人一筹,只用 3.2 秒就从 5500 份简历中筛选出合适的候选人,而最快的人类猎头用了 25 小时。

微软开源Sketch2Code,是一个基于 Web 的解决方案,使用 AI 将手绘的用户界面草图转换为可用的 HTML 代码。虽然现在还不能完全替代前端工程师,但要知道,AI 的学习速度一日千里,AlphaGo Zero 在 3 天内,曾进行过 490 万次自我对弈练习,3 天走完人类千年棋史

阮一峰出版了一本《未来世界的幸存者》,讲得正是个人如何提早准备,以应对这种被替代的压力,大家从这本书里找答案吧,这里可以直接看电子版

二、未来一段时间国企会比民企更具竞争优势

大家会说,国企本身就比民企具有竞争优势,国家撑腰,行业垄断。但我说的竞争优势,是从另外的角度说的。

这次出去,吃住行都是和同学在一起。通过他我观察到了国企的一种精神面貌。

国企给员工提供了稳定的工作环境,使员工不为失业和生存焦虑。他们工作中思考和行动,更具有长远的目标和计划,不为短期利益急功近利。这种情况下,他们做事更为实事求是和符合规律,不像民企那样,对利润操之过急,缺乏对正常商业过程的耐心。

国企员工到了一个新的地方开疆辟土,他们愿意把新工作环境整理的赏心悦目,硬化室外场地,在室内专门开辟健身区域,装修茶歇室,改善伙食和办公条件,因为他们知道未来的几年、十几年、数十年,他们是这里的主人。反观民企的员工,他们并不能知道能不能顺利通过试用期,成为正式工了也说不定哪天就会离开,他们不会对一个小小的工位产生多大的热情,除了水杯和文件夹,带盆绿植就算奢侈的点缀了。

有些互联网民企去年底在年会上恬不知耻地强制推行996工作制(每天早9点到岗,一直工作到晚上9点,每周工作6天),强制员工每周工作最低60小时,置法律于不顾,置员工身体于不顾,无异于杀鸡取卵。互联网产品狗、程序猿们做不完工作都还是很自觉地加班完成的,但谁愿意被强制加班?作为对抗,网上出现了996.ICU项目,意思是「工作 996,生病 ICU 」。再近距离观察国企员工,温饱不用发愁,想做事的年轻人,脑子里想着怎么优化现有的业务,有哪些方面可以创新,能使自己的工作出彩,能让领导看在眼里,也能让自己更有成就感,特别专注和热情,半夜12点了,还在一起脑暴讨论。

国企的斗争很激烈,但限于关键的岗位,这种斗争是长期的,有策略的,一定程度上是非技术性的,也会很早观察和培养接班人,提拔晋升有步骤方法和节奏。岁数到了没有上去的员工也会认清形势安于现状。大家会长久地打交道,可能后半辈子都要打交道,说话办事就比较讲究,一般岗位员工氛围非常好。而相比较,民企的员工协作关系非常糟,大家都是铁打的营地,流水的兵,每家公司都是暂留之地,日后可能再不相见。造成的结果就是上下左右全要博弈,竞争关系大于合作关系,竞争手段粗暴,各个层级都存在山头主义,员工饱受压力。

有人统计2002年的中国500大企业,三分之二以上已经消失或没落了。这里边民企占绝大多数。原因就在于员工对于长久稳定和短期动荡的理解,随着去年底大大小小的公司不同程度地裁人,员工将会更加现实,对打工更为理智,对公司更少投入感情,民企的生存发展更为艰难。

三、大屏展示的需求很广泛

最后说个创业项目。很多公司都很想拥有这种大屏,买了大屏,但没有技术能力设计界面,他们并不想要真正地和后端数据结合起来,对业务起到指导和决策作用。只是想要这种科技感,来装点门面,用虚拟数据去填充,只要需要解释的时候能圆的过去。

还没有调研市场上有多少人在做这个业务,但现在初步了解到这里面还存在信息差,我们从业者知道这种假页面其实还算好做,但有需求的公司自己没有头绪。所以专门去接设计大屏的活儿,或者做一个大屏模板的生产工厂,应该是可行的。有行动力的同学可以借助阿里 DataV,或者联合 UI、前端小伙伴尝试这个创业项目。

产品经理成长系列(0):前言

前言

我大概从2007年开始做互联网产品经理,已经做了10多年以上,至今仍是一名「平凡」的产品经理。既没有自己拿得出手的产品,也没有用户数量庞大的产品,也没有客户付费意愿强烈的产品。

有资格说一些产品经理领域的话吗?大概还是有的。经历了太多的从0到1,阵亡了很多从1到 n,过程中遇到了无数的坑,爬了无数的坡,就失败的教训来讲,还是有很多的。

但我想写的产品经理系列,不是想总结这些教训,主要还是想普及一些产品经理的知识,让有志于走产品经理这条路的同学,少走一些弯路,尽快驰骋于康庄大道。

在上家公司,除了其他产品经理和我讨论一些产品思路和逻辑,也常有别的岗位的同事问我一些有关产品经理的问题。小的像 Axure 某个交互方式怎么实现——说明这位同事在自学 Axure 原型设计工具。大的问题会问怎么从现在的岗位转成产品经理,在项目经理、测试工程师、UI 设计师,甚至是一些前后端开发工程师眼里,产品经理挣得多,技术含量低,是一份人人都可以做的工作。我在和他们讲述怎么成为产品经理的过程中,不成系统地说了很多,今天就是想把这些内容整理出来,奉献给有缘读了这个系列的朋友。

正好职场生涯又一次中断,也给了我充分的写作时间。年前公司没有完成全年的销售计划,投资没有到位,资金链绷紧,让员工降薪和离职二选一。全公司1千多人,大概有2/3选择了离职,我也是其中之一。离职当然有法定补偿。我36岁的年龄,属于大龄的产品经理,陷入了迷茫,思前想后,还是决定利用休息的时间先做一些输出,也权当这么多年产品方法论的总结。

初步整理了下产品经理成长的提纲,暂定以下几个主题,不排除写的过程还会再更改。

  1. 互联网历史/产品经理历史
  2. 用户/需求
  3. 业务/市场
  4. 商业/盈利
  5. 产品/价值
  6. 场景/行为
  7. 功能/交互
  8. 界面/内容
  9. 迭代/交付
  10. 运营/增长

关于我

我自高中时代(如果没记错的话应该是1997年)见过一台386电脑后,就疯狂地喜欢上了计算机。能上网后,就开始做个人主页。大学时候做过「北京大学生在线」的网站,下面还有一个「首都大学生联盟」的论坛,人气还算可以,也有主办方找过来投 Flash 动画大赛的活动。

这里就初步涉及到网站的技术实现和网站运营两大块内容,我也是从那时候起就持续关注开源程序,开源程序本身和其设计思路,为我在做产品经理的过程中提供了极其大的帮助,我对各种类型产品的开源程序可以说是了如指掌,并且很短时间内就能部署好一套开源程序,观察前后台的设计思路,现在用 Docker 容器化的方式就更为容易了。

2005年从北京科技大学毕业后,我入职了 eNet 硅谷动力这家 IT 垂直门户做网站编辑,当时做小编除了发厂商的软文,主要是转载和原创,还要周期性地制作专题。确定选题后要进行版面规划,用 Office Word 画好线框图,交给美工去设计,美工除了完成设计,还要在效果图确认之后,切成静态 HTML 页面,我们小编自己完成内容填充。如果赶上年度的频道改版,工作就更为复杂一些。那时候我们用的工具就是 Adobe Photoshop、Dreamweaver 等,能自己设计一些头图,手写一些 HTML 代码。

后来我于2007年去了瑞星杀毒公司,负责官网以及客户端内嵌的页面的运营维护。当时正是瑞星的鼎盛时期,年盈利9个亿,就是靠卖光盘。但不久就遭到了360公司的阻击,历时大概9个月,瑞星全面败溃。期间公司为了应对竞争,新成立了互联网部,提出「互联网化」战略,与360对标浏览器、网址导航、安全问答(类似百度知道)、文件诊所、恶意网址监测等产品,这些产品我几乎全程参与,也就是从那时候起,正式成为产品经理。

在瑞星公司的后期,私下以产品和运营的角色参与了前某领导组织的一个「O2O」项目的创业,当时 O2O 这个概念刚刚兴起,我们网站的定位就是「买商品去淘宝,买服务来 xx 网」,五个创业伙伴每周都会在上岛咖啡工作一天,定战略、定产品思路、设计和开发产品,后来不出意外地失败了。

因为有这段「O2O」的经验,我在2010年第一时间瞄准了团购市场,做了「顶团网」,赶在美团上线后的第二个月上了线(美团2010年3月份上线,顶团网次月4月上线)。网站上线运营后迅速有了现金流和利润,短短几个月就比我前5年上班攒的钱多。由于团购门槛低,市场很快就成红海,最多的时候大概有6千多个团购网站,我本人手里就有4个团购网站,有的网站(好像是拉手网?)还在央视黄金时段投放广告,加上淘宝聚划算,腾讯高朋、后期被百度收购了的糯米加入,决战一打响,遍地哀鸿,我网站的流量和订单急剧下降,尚不能维持成本,也就被迫退出了市场。这个项目也算给我赢的了第一桶金,否则我也没有能力在北京买房。

再后来,我在一个创业公司呆了近4年,负责产品。随后又去了一家大数据公司,看着业务没有增长的情况下疯狂地扩张规模,遭遇了上文提到的被裁事件。

我会尽量把这些年做产品,尤其是做产品涉及到职场岗位协作方面的一些思考和总结,以案例的方式穿插进文章中。

以上,算作前言,下一章开始进行互联网历史和产品经理历史。

郑国维

2019.3.20 北京

微软云反向解析阿里云实现高可用

背景

我是一个产品经理,自己手里也有几个网站,包括你现在看到无不为,另外还有经方派等。之前因为觉得不重要,就放在了国外的 VPS 上,很长一段时间用的都是 Linode VPS,选择了延迟最小的日本的机房,但依然很慢,最大的问题是线路抖动,经常会打不开网站。后来观察到经方派每天都会有人通过搜索引擎访问,尤其是国内用户占大多数,就想避免再这样频繁宕机,对搜索引擎不友好,用户体验也不好。

把网站搬回国内,面临的第一个问题就是备·鞍,新的政策要求备·鞍负责人和域名注册人信息一致(要求实名认证),这就需要把域名转移回国内,准备接受。但又发现不允许 org、me 的顶级域名备·鞍。这条路就不通了。

购买了阿里云的香港主机,能访问的时候速度很快,但比 Linode VPS 更不稳定,每天都会不定时抽风。

需要解决的问题

问题很简单,就是在不备·鞍的前提下,实现高可用,这里的高可用,指的就是访问稳定、速度快。

整体思路

之前给朋友建得站都部署在了阿里云大陆机房内,监测非常稳定。所以首先确定使用阿里云 ECS 主机。

绕过备·鞍的思路是在微软云(Microsoft Azure)虚拟机上安装 Nginx 进行反向代理。选择了微软云东亚香港区的机房。延迟比较低。

方案

整体思路有了,核心就是从国外把网站迁移到阿里云,再在微软云上配置好 Nginx 反向代理。

阿里云

正好赶上阿里云「开年Hi购季」活动,看到阿里云数据库等产品都在搞活动。既然要放到国内,不妨吃个阿里云小份全家桶:SLB+ECS+RDS+OSS。

ECS 主机花了 ¥1,469.00 (代金券抵扣了 ¥50.00,实际花费 ¥1419.00),时长三年,配置为:1 vCPU、2 GB 内存、1 Mbps 固定宽带。

数据库 RDS,花 ¥10.00 购买了半年,配置为1 vCPU、1 GB 内存、SSD 20G 硬盘,我的网站是基于 WordPress,所以 RDS 的类型是 MySQL 5.7。

为什么要买负载均衡 SLB ?因为阿里云 ECS 选的是 1Mbps 固定宽带,这样下载速度只有 100 Kb/s,非常慢,负载均衡是按流量付费,几乎不限带宽值(实际是5120 Mbps ),而负载均衡和 ECS 之间是内网 VPC 连接,几乎也不限速,这样就突破了 ECS 本身 1 Mbps 固定宽带的限制。而现在网站的流量还比较低,几个网站加起来每小时的负载均衡费用只有2分钱。这里非常巧妙的是用负载均衡突破了宽带限制,而没有使用它原始的作用:主备冗余实现高可用。

因为个人博客上也会有一些图片,也计划接下来多分享一些文章,少不了截图,就干脆把阿里云对象存储 OSS 也用上了。非常便宜,¥9.00买了40G 一年的空间。另外还有一点点后付费几乎忽略不记。

在阿里云上总的花费见下图:

微软云

微软云的虚拟主机还是非常贵的。选择了东亚香港区最低的配置,1 vCPU、0.75 GB 内存、30 GB 硬盘、100 Mbps 固定宽带,预算费用在 US$14.88。但好在微软云有200美金1年的免费体验,1年到头后再另想办法。

这里会有人问:0.75 GB 的内存会不会太小了?答案是不会。因为在微软云上,我们会只用一个 Nginx 做反向代理,不需要太高的内存。

在微软云虚拟机上,我使用了 Ubuntu Server 18.04 LTS 操作系统。之所以选择 Ubuntu,是因为最新的 Ubuntu 系统开启 BBR 网络拥塞控制算法非常容易。开启 BBR 对反向代理速度有多少提升,这一点我并没有做测试。

在微软云上操作的相关命令:

1、升级系统:

sudo -i
apt-get update -y apt-get upgrade -y

2、开启 BBR:

(1)修改系统变量:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

(2)保存生效:

sysctl -p

(3)查看内核是否已开启BBR:

sysctl net.ipv4.tcp_available_congestion_control

显示以下即已开启:

net.ipv4.tcp_available_congestion_control = reno bbr cubic

(4)查看BBR是否启动:

lsmod | grep bbr

显示以下即启动成功:

tcp_bbr 20480 1

3、安装 Nginx :

apt-get install nginx -y

4、配置 Nginx 反向代理:

vi /etc/nginx/conf.d/jingfang.org.conf

配置文件示意:

server
    {
        listen 80;
        #listen [::]:80;
        server_name jingfang.org www.jingfang.org;
        rewrite ^(.*) https://jingfang.org$1 permanent;
    }

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name jingfang.org ;
        ssl on;
        ssl_certificate /etc/nginx/conf.d/ssl/jingfang.org/fullchain.cer;
        ssl_certificate_key /etc/nginx/conf.d/ssl/jingfang.org/jingfang.org.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /etc/nginx/conf.d/ssl/dhparam.pem;

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        location / {
            proxy_pass http://xxx.xxx.xxx.xxx:端口号;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
        }
        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /var/log/nginx/jingfang.org.log;
    }

这里关键是proxy\_pass的地址,指向的是阿里云负载均衡 SLB 的 IP 地址和前端端口。

【域名解析】 ——A 记录——> 【微软云虚拟机 IP 】 ——Nginx 反向代理——> 【阿里云 SLB 】——TCP 负载协议——> 【阿里云 ECS 】

下面再返过头来看阿里云相关服务的设置。

虚拟主机 ECS

操作系统同样选择 Ubuntu Server 18.04 LTS。升级系统,开启 BBR。

以前网站的环境都是用军哥的 LNMPA 一键安装脚本搭建。这次在阿里云上选择使用 Docker 技术。

1、安装 Docker 及 Docker-compose 方法:

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

安装完成后,查看是否安装成功,如果安装成功,以下命令将输出 Docker 的版本号:

docker --version

继续安装 Docker-compose:

curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

同样查看 Docker-compose 是否安装成功:

docker-compose --version

2、WordPress 的 docker-compose.yml 配置文件:

在网站的目录下,新建 docker-compose.yml 文件,内容如下:

version: '2'
services:
  web:
    image: wordpress:latest
    restart: always
    ports:
      - 9999:80
    environment:
      WORDPRESS_DB_HOST: rds 的内网地址.mysql.rds.aliyuncs.com:3306
      WORDPRESS_DB_USER: rds 新建的用户名
      WORDPRESS_DB_PASSWORD: rds 相关用户的密码
      WORDPRESS_DB_NAME: rds 新建的数据库名
    volumes:
      - ./www/wp-content:/var/www/html/wp-content
      - ./config/php/conf.d/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

这里因为购买了阿里云 RDS MySQL 5.7,所以就没有用 Docker 实例化 MySQL 容器,而是直接通过内网地址,连接到了阿里云 RDS。

另外映射了数据卷,wp-content 是网站数据集中的目录,包含了上传的文件、插件、主题等,需要持久化在 ECS 中;uploads.ini 是修改了 WordPress 容器中 PHP 的文件上传大小限制(原始仅允许上传为 2 MB)的配置文件,内容如下:

file_uploads = On
upload_max_filesize = 64M
post_max_size = 64M

启动 WordPress Docker 容器:

docker-compose up -d

在 ECS 安全组中配置好 TCP 9999 端口的入站允许安全规则后,在浏览器中打开 http://xxx.xxx.xxx.xxx:9999,应可以看到WordPress 的安装界面,此时只是测试 Docker 容器是否运行正常,不需要继续安装。另外在负载均衡 SLB 配置好后,也不需要在 ECS 安全组中开启 Docker 容器的端口。

负载均衡 SLB

SLB 设置非常简单。

第一步,选择 TCP 协议,输入监听的端口,此处的端口号,即为微软云 Nginx 反向代理proxy\_pass处设置的端口号。

第二步,选默认服务器组,端口号是 Docker-compose 文件里配置的宿主机端口号,如上面的例子配置的是9999。

下一步确认提交即可。

当域名解析到微软云虚拟机 IP 生效后,我们就可以通过域名安装 WordPress 了。

数据库 RDS

阿里云数据库 RDS 的管理界面非常简单,可以很方便地创建数据库、用户,注意要把数据库的权限赋予用户。这里就不详细说了。

对象存储 OSS

分为两步,首先要在 OSS 管理后台中创建 Bucket,其次在 WordPress 中安装 OSS 插件。

1、创建 Bucket

输入 Bucket 名称后即可创建。注意要把读写权限设置为「公共读」。

2、设置 Access Key

为了稍后让插件管理此 Bucket,我们还要设置一个 Access Key。点右侧的 Access Key,在弹出的对话框中选择「子Access Key」。

在新建用户的界面中输入用户名,并选择「编程访问」,即可获得 AccessKeyID 和 AccessKeySecret,稍后在 WordPress 插件中 要填入这两项值。

3、使用 WordPress OSS 插件

我使用的是 aliyun-oss-support下载后通过 WordPress 后台上传安装。此插件的使用说明,请参见作者 Github 说明。

设置如上图,主要是填对 AccessKeyID 和 AccessKeySecret,如果 ECS 和 OSS 在一个区域,可以选中内网。另外就是选中「图片服务」。

至此,微软云香港区反向代理阿里云 SLB+ECS+RDS+OSS 就全部设置完成了,通过近两周的观察,网站的速度很快,稳定性也很好,偶尔会有延迟较高的时候,瓶颈就在于微软云香港机房的线路。但总体上要比原来好很多。

写作工具 Ulysses 15 使用心得

Ulysses 是一款「好用」的写作工具。不需要用文件的方式组织文档,具有自动备份功能,提供全屏免打扰写作环境,支持设置写作目标,采用 Markdown 排版,可直接发布至 WordPress、Medium平台。我用它来发布网站文章和自媒体写作。

发布至 WordPress

我运营着一个叫「经方派」的中医网站,系统采用了 WordPress,后台发布文章效率很低,使用 WordPress 官方客户端也很繁琐,找了很多第三方客户端都不太理想。直到试用了 Ulysses,发布文章变得非常快。这个功能要在“Ulysses > 偏好设置 > 帐户”下设置。只需要填入网站的地址、管理员账户和密码就能连接,不像有的客户端还需要在网站中安装 Jetpack 插件才能管理网站。

粘贴网页的文字时,可以直接以纯文本粘贴,去除了格式,不像 Office Word 还要用专用的快捷键才能粘贴纯文本格式。

可以在发布的时候选择类别、Tag 等。

下图是发布后自动在浏览器中打开的文章页面。

文库整理

用电脑写作的最大一个痛点,就是本地文件的管理,涉及到新建文件夹、新建文件或者保存文档时选择路径。

Ulysses 自带文库管理,不需要通过「访达」对文档进行管理。在 App 文库面板里,通过用类似文件夹的「组」来整理。例如大组可以分为日记、自媒体写作、工作文档,每个组下面新建二级组继续细分管理。和 GTD(英语:Getting Things Done / GTD,尽管去做,是一种行为管理的方法)软件相似,它也提供了一个收件箱的分组,可以直接先在这个分组中写下灵感,事后再移入目标分组中。

Ulysses 提供了在本地、iCloud 和其它第三方网盘的文库存储。可以跨设备同步,在 iPhone、iPad 上查阅和编辑。

自动备份

写作很重要的一点就是集中精神,不用为频繁保存和排版等分神。Ulysses 不用时时惦记着保存,尽管去写,它会每隔几秒自动保存文档,保存的过程是无感知的。整个文可以定期备份,万一误删文档,你可以在 App 的偏好设置窗口( Ulysses > 偏好设置 > 备份)中浏览备份,并且将需要的内容还原。

简单排版

Markdown 是简单的排版语法,用符号完成常见的排版功能,如标记标题、加粗等,可以让我们专注于构思和写作上,避免因为排版分心。

设定目标

通常我们会对一篇文章的字数、页数或结构的段落数和截止时间有所期待,Ulysses 支持为文档设定目标。在“编辑 > 附加 > 目标”中进行设置。也可以为整组文稿设定目标,用右键点按(或按住Control键点按)群组即可进行操作。写作过程中,可以随时查看自己的完成情况,自然动力满满。

以上是 Ulysses 几个重要的功能介绍。在实际使用中,建议进行两项设置:

  1. 系统字体改为喜欢的一种中文字体,可以避免在输入和修改文字时上下行的「抖动」或「跳动」,因为系统字体中文和英文的行高不同,换成任意一种中文字体,就会解决这个问题。具体设置为“Ulysses > 偏好设置 > 一般”,点击系统字体,选择其它中文字体。
  2. 选择一款省眼的主题。我用的是「Blush」这款主题,背景淡灰色,比纯白或暗色主题更舒适些,下载主题文件后双击即可启用。另外也推荐应用自带的「简单」主题。