反思:那些你不该做的事情

最近在重新看 Joel on Software 的blog,时隔二十年,很多错误还在重复发生,很有感触,比如这篇,翻译过来,引以为戒。

网景发生了什么?

网景6.0终于要进入第一个公开测试版了。实际上,从来没有5.0版本。上一个主要发布版本4.0已经发布了将近三年。在互联网世界,三年是相当长的时间。在此期间,网景无助地坐视其市场份额大幅下降。批评网景发布版本之间的等待时间如此之长似乎有点伪善。他们不是有意这么做的,对吧?其实是的。他们犯下了任何软件公司都会犯的最糟糕的战略错误:他们决定从头开始重写代码

程序员在想什么?

程序员的内心是建筑师,当他们到达一个地方时,首先想做的事情就是将其铲平,建造一些宏伟的东西。程序员对逐步翻新、改进和种花园不感兴趣。程序员总是想要扔掉代码重新开始有一个微妙的原因。原因是他们认为旧的代码很糟糕。这里有一个有趣的观察:他们可能是错的。他们认为旧代码很糟糕的原因是基于程序设计的一个基本法则:
阅读代码比编写代码更困难。
这就是为什么代码再利用非常困难的原因。这就是为什么你团队中的每个人都喜欢用不同的函数将字符串分割成字符串数组。他们编写自己的函数,因为这比弄清楚旧函数如何工作更容易、更有趣。

这样做的问题是什么?

新代码比旧代码更好这种想法显然是荒谬的。旧代码已经被使用过了。它已经经过了测试。已经发现了许多错误,并对其进行了修复。它没有任何问题。它不会只是因为闲置在你的硬盘上而产生错误。恰恰相反,它会变得更加完善!
比如,一个程序员在分析旧代码时会说:“看一下这个函数,它有两页长!里面的这些东西都不应该放在这里!我不知道这些API调用的一半是干什么用的。“
这个API只是一个简单的用来显示窗口的函数,但它变得越来越复杂,无人知晓。其实,原因是:那些复杂的代码都是为了修复bug。一个修复了Nancy在试图在没有安装Internet Explorer的电脑上安装应用时遇到的问题。另一个修复了在低内存情况下出现的bug。还有一个修复了当这个文件在软盘上且用户在重要时刻拔出软盘时出现的bug。而那个丑陋的LoadLibrary调用,却可以让代码在旧版本的Windows 95上正常运行。
每一个bug都需要经过几周的现实世界使用才能被发现。程序员可能花了几天时间在实验室里重现bug并修复它。如果像很多bug一样,修复可能只需一行代码,甚至可能只需要几个字符,但这几个字符需要付出大量的工作和时间。
当你丢弃代码并从头开始时,你也在丢失所有那些知识、所有那些收集到的bug修复,以及多年的编程工作

正确的做法是什么?

当程序员说他们的代码一团糟时(他们总是这么说),代码可能存在三方面问题。
首先,存在架构问题。代码的分配不正确。网络代码突然跳出自己的对话框,这些应该由UI代码处理。这些问题可以逐一解决,通过仔细地移动代码、重构、更改接口。这可以由一个程序员仔细地工作,并一次性检查他的改变,以便不会干扰其他人。即使在不丢弃现有代码的情况下,也可以进行相当大规模的架构变更。在Juno项目中,我们曾经花了几个月时间进行重新架构:只是移动代码、清理它们、创建有意义的基类,并在模块之间创建尖锐的接口。但我们以现有的代码库仔细进行,没有引入新的bug或扔掉正在工作的代码。
第二个原因是代码效率低下。据说,Netscape的渲染代码很慢。但这只影响了项目的一小部分,您可以进行优化甚至重写它。您不必重写整个项目。优化速度时,1%的工作可以让您获得99%的成果。
第三,代码可能很丑陋。我曾经参与的某个项目实际上有一种叫做FuckedString的数据类型。另一个项目开始时使用了以下划线开头的成员变量命名规则,但后来转为更标准的“m_”。因此,一半的函数以“”开头,另一半以“m”开头,看起来很丑。老实说,这种问题可以在Emacs中使用宏几分钟内解决,而不是从头开始。

总结

重要的是要记住,当你从头开始时,没有任何理由相信你会比第一次做得更好。你可能没有与原版本一起工作的相同编程团队,因此您实际上没有“更多经验”。您只会再次犯许多旧的错误,并引入一些原版本中没有的新问题。

SIKT模型构建的用户画像

SIKT模型原理

SIKT模型是一套梳理标签的方法。标签是用户画像的基础,是构建画像体系的砖石。想让用户画像系统有用,标签本身得是有价值的。这就要求,在做标签的时候,不能凭着数据人员的直觉,像说贯口一样把“性别、年龄”胡乱怼进系统,而是从业务场景出发,层层递进。

模型 说明 角色
Scene 场景 具体的业务场景 业务主导
Index 指标 该场景要达成的目标 业务主导
Key Behavior 关键行为 达成目标要做的行动 业务主导
Tag 标签 为了提升效率所需标签 数据主导

步骤

  1. 梳理业务场景。使用方先思考:我要解决什么问题?
  2. 梳理关键指标。使用方再思考:用什么指标衡量问题解决?
  3. 梳理关键行动。使用方再思考:我做什么事能解决问题?
  4. 筛选有用标签。数据协助思考:用什么标签能提升行动效率。

如何进行关键行动

可以从以下行动入手:

graph LR
A(认知现状)-->B(制定策略)-->C(选择方法)-->D(监控执行)-->E(复盘效果)
More...

如何搭建用户画像?

什么是用户画像?

用户画像系统是一个以用户为分析对象,通过各种方法将用户信息进行展示,提供给分析人员全面、准确并具有指导意义的信息,从而优化运营的策略,提高服务效率,最终提高用户满意度。
画像系统最为核心的三个能力,分别是:

  • 信息的加工生产能力
  • 信息的分析展示能力
  • 信息的传递能力

如何搭建画像系统?

内容产生

通过埋点及与业务系统数据集成的方式,我们需要将用户在产品中的行为进行记录上报。尽可能准确、全面的采集核心链路的数据。

More...

创新型垄断企业的特点

创新型垄断的特点是什么呢?

在 Peter Thiel 看来,垄断往往具有四个特征:

  • 1️⃣ 专有技术;
  • 2️⃣ 网络效应;
  • 3️⃣ 规模经济;
  • 4️⃣ 品牌。

专有技术

公司需要一个优势,使得现有企业和新进入者难以复制或模仿。以谷歌的搜索算法为例,Thiel的经验法则要求技术必须比最接近的替代品“好10倍”,才能构成“真正的垄断优势”。

网络效应

网络效应使人们在更多人使用产品或服务时获得更大的价值。Facebook或LinkedIn是典型的例子。当所有朋友或同事都在现有网络上时,很难切换社交网络。

规模经济

当企业的销售和生产增长时,他们的成本每个产品会下降,这就是规模经济。Microsoft等软件公司是常见的例子。由于每次附加软件销售的边际成本非常低,因此它们享受着更高的规模经济。即使年轻的新秀拥有更优秀的产品,由于高成本和价格差异,通常也难以取代具有规模经济的大企业。

品牌

强大的品牌可以帮助创造性垄断。但品牌并不仅仅是营销和销售的结果。它需要培养、持续执行和注意细节。正如史蒂夫·乔布斯所说,有效的品牌来自于公司对质量和体验的不懈追求。一旦建立了良好的品牌,就能对创造性垄断的良性循环做出巨大贡献:更高的愿意支付、更低的交易和信息成本、更大的口碑等等。

如何做可用性测试?-1

什么是可用性?

一个产品可以被特定的用户在特定的场景中,有效、高效并且满意得达成特定目标的程度。
包括:

  • 可学习性:初次接触这个设计时,用户完成基本任务的难易程度?
  • 效率:用户了解了设计之后,能多快地完成任务?
  • 可记忆性:当用户一段时间没有使用产品后,是否能轻松地恢复到之前的熟练程度?
  • 错误:用户犯了多少错误,错误严重程度如何?用户能否从错误中轻易地复原?
  • 满意度:用户对产品的主观满意度,这个设计让用户感觉如何?

什么是可用性测试?

可用性测试就是通过观察用户使用产品完成典型任务,发现产品中存在的效率与满意度相关问题的方法。

More...

如何做好需求评审?

作为一个产品经理,准备需求评审是产品设计开发的一个重要环节。那么如何做好需求评审呢?

一、原型准备阶段

(1) 需求细节尽量描述详细

详细即逻辑清晰、无遗漏、页面整洁、表达清晰等。最好能做到不清楚需求的人,通过文档也能理解要完成的任务。

(2) 对以前有的功能的修改要说明功能差异

如果是该功能迭代优化,那涉及其相关的需求要在会上说明:原先功能整套流程是怎么样的,现在针对哪个环节进行升级迭代。

(3) 设计功能或者逻辑一定要有根据有思考

记住我们设计的每个功能都要有理有据,不能想当然,不能做需求的搬运工。

(4) 设计过程中遇到技术难点、技术知识盲区,一定要和技术去沟通

当你遇到把握不准自家技术能不能实现自己功能,可以找到技术负责人把自己的想法提前说给他听,提前一起讨论实现过程,或许让他们评估且及时制定方案。

More...

什么是网络效应?

网络效应的特点

有网络效应的伟大产品有什么共同之处?
网络效应的最大价值在于获客。任何公司最重要的任务之一都是获客。没有用户和收入,公司就会倒闭。而网络效应和“病毒传播”是用户增长的两个关键战略。
对于一般公司,随着市场饱和,CAC (用户获取成本)会进一步上升。而对于拥有网络效应的公司来说,情况刚好相反,随着网络的不断延展,所有参与者都能受益,CAC 保持不变,甚至可能会下降。

网络效应的类型

总的来看,网络效应可以分为以下五种(每一种都有长处和短处),它们是:

1.双边网络(平台)

这是一种最明显的网络效应。本质上是交易平台:
有人想卖东西,有人想买东西,平台围绕人类的需求和欲望而出现。

优势

① 达到临界规模之后容易自行正向增长

② 垄断带来了定价权,于是可以抽取更多佣金。

③ 一旦建立,维护和运营成本低(除非像 Amazon 一样,做物流)。

④ 估值倍数很高。

劣势

① 一开始很难获得客户/用户。

② 需要实现供求的动态平衡。

③ 很烧钱。

④ 收入增长往往比较滞后

More...

防御性:如何理解企业护城河

为什么需要护城河

企业成功主导一个山头,成为行业领导品牌,要随时审视竞争环境的变化,快速转变战略节奏,从进攻战切换为防御战。

商业竞争是无情的,竞争的环境总是在变化,行业领先者需要不断审视和调整战略,从进攻转为防御。新进入的企业总是企图挑战行业领导者的地位,从不同角度对其发起攻击。为了保持领先地位,领导品牌需要采取各种手段来封杀竞争对手。

领导品牌必须高筑墙,广积粮,构筑防御工事,在优势位置上持续巩固自身的竞争壁垒,不断拓宽自身的护城河,以抵御竞争对手的攻击,有护城河的企业才能享受行业长期增长带来的红利。

五种护城河

graph LR
A(企业护城河)-->B3(无形资产门槛)
B3-->B31(专利)
B3-->B32(创新)
B3-->B33(监管)
B3-->B34(标准)
A-->B2(转换成本高)
B2-->B21(依托大公司的相互依存)
B2-->B22(复杂的程序转换)
B2-->B23(数据绑定生态)
A-->B4(网络效应形成)
B4-->B41(双边网络-平台)
B4-->B42(三边网络-渠道)
B4-->B43(通讯网络)
B4-->B44(内容网络)
B4-->B45(本地网络)
A-->B1(成本优势)
B1-->B11(规模优势)
B1-->B13(经验优势)
B1-->B14(模式优势)
A-->B5(用户心智)
B5-->B51(品牌)
B5-->B52(特性)

什么是好的商业模式?

商业模式是什么?

商业模式是指企业如何创造和捕获价值,并将其转化为盈利的方式。一个好的商业模式应该能够产生持续的现金流和利润,并且能够与竞争对手区分开来。

例如,苹果公司的商业模式是基于高端硬件销售和软件服务的组合。他们通过不断创新和设计出高品质的产品,吸引了一大批忠实的用户,并提供了与之相配套的软件和服务。这种商业模式的成功在于他们不断创新和提供高品质产品的能力,以及对消费者需求的深刻理解。

另一个例子是Amazon的商业模式,它是基于在线销售和物流的组合。Amazon通过建立强大的物流网络和广泛的产品选择,吸引了大量的消费者和卖家。同时,他们提供了高水平的客户体验和优质的客户服务,让他们赢得了消费者的信任和忠诚度,从而成为全球最大的在线零售商之一。

什么是好的商业模式

好的商业模式很简单,就是利润和净现金流很好,竞争对手哪怕花很长时间也很难抢。“时间是平庸公司的敌人,是伟大公司的朋友”,所以说伟大的公司时间越长越可怕。

商业模式经常要看的东西是:

  • 护城河是否长期坚固。产品的差异化的持续性,包括企业文化)
  • 长期毛利率是否合理。(产品的可替代性
  • 长期的净现金流是否满意。(长期而言其实就是净利润)

判断是否是好的商业模式,可以从两个角度看:“定价权”“防御性”。简而言之,只有拥有定价权、别人打价格战己方可以稳坐钓鱼台的,才是好的商业模式。有很高的防御性护城河,当竞争对手进入市场才不会太容易,这个和定价权也是有一定关联性的。

请我喝杯咖啡吧~

支付宝
微信