月度归档:2024年03月

跨越鸿沟看 SaaS 产品的产研逻辑

《跨越鸿沟》是由杰弗里·摩尔(Geoffrey A. Moore)所著的一本关于市场营销的经典书籍。它详细描述了高科技产品在市场上从早期采纳者到主流市场的过渡过程,以及伴随这一过程的各种挑战和策略。

书中所说的「鸿沟」指的是产品从「早期采纳者」阶段过渡到「早期大众」阶段时面临的市场接受度的断层。在 SaaS 领域,这个概念尤其重要,因为产品往往需要迅速获得大规模用户基础以实现规模经济。

在《跨越鸿沟》中有一个非常重要的技术采用生命周期(Technology Adoption LifeCycle),技术采用生命周期为一钟形曲线(Bell Curve),该曲线将消费者采用新技术的过程分成五个阶段,分别包括创新者、早期采用者、早期大众、晚期大众与落后者。

每个阶段都代表了产品在市场上获得不同群体用户接受的过程,并且对于 SaaS 企业来说,用户行为也略有不同:

  1. 创新者 - 冒险家,这些是最早采纳新技术的人。他们愿意承担较高的风险,对新技术充满热情,并且通常拥有技术背景。在这个阶段的 SaaS 企业提供的通常是最新的、创新的服务或功能。这些服务吸引了那些对新技术充满热情的早期用户,他们愿意尝试共建并提供反馈。这些用户通常对新技术的接受度高,愿意承担一定的风险。
  2. 早期采纳者 - 意见领袖,他们也对新技术抱有热情,但他们更关注技术能为他们带来的实际价值和优势。对于 SaaS 企业的这个阶段来说,用户开始认识到 SaaS 产品的价值,并开始在他们的业务中实施。他们可能是行业内的意见领袖或早期采纳者,愿意分享他们的成功案例,从而吸引更多的用户。
  3. 早期大众 - 深思熟虑者,这个群体更加实用,他们愿意采纳新技术,但需要看到明确的证据表明该技术已经被其他人成功采用。这个阶段的用户需要产品更稳定、支持更好,且集成到现有系统中的风险更低。随着 SaaS 产品的成熟和市场教育的深入,更多的企业开始认识到 SaaS 的优势,如成本效益、灵活性和可扩展性。这些用户开始采用 SaaS 解决方案,但仍然需要看到明确的证据,证明这些服务能够满足他们的需求。
  4. 晚期大众 - 传统群众,他们通常在市场上采纳新技术的时间比早期多数要晚。这个群体通常更保守、更价格敏感,并需要大量的用户证明和支持服务。在这个阶段,SaaS 企业的方案已经成为行业内的主流选择。它们已经成为行业标准,并且用户对这些服务的信任度很高。在这个阶段,SaaS 企业需要关注服务质量、客户支持和持续创新,以保持竞争力。
  5. 落后者 - 落伍者,这个群体最后采纳新技术,通常是出于必要而非选择。他们对新技术不感兴趣,可能是因为对新技术不信任或是对变化有抵触感。但当他们的客户和合作伙伴已经转向了 SaaS 解决方案时,他们也会使用 SaaS 产品。

从技术采用生命周期的角度来看,SaaS 产品在不同阶段的产品研发、资源配置、商业逻辑等都有所不同。

创新者阶段

在创新者阶段,SaaS 企业提供的通常是最新的、创新的服务或功能。这些服务吸引了那些对新技术充满热情的早期用户,他们愿意尝试共建并提供反馈。这些用户通常对新技术的接受度高,愿意承担一定的风险和成本。

在创新者阶段,SaaS 业务的用户群体相对较小但高度专注,可能包括以下三种:

  • 早期采纳者:愿意尝试新技术并提供反馈的个人或组织。
  • 细分市场:特定的行业或市场细分,对于定制化的或高度专业化的解决方案有明确需求。
  • 技术热心者:对最新技术充满热情,对产品未完全成熟有一定的容忍度。

特别是「早期采纳者」,会是整个业务的起点,从服务好一个客户开始,这个客户可能是刚好遇到的,也可能是刻意寻找的共创者。

在这个阶段,SaaS产品通常是原型或者最初版本,强调创新和独特的功能。可能这个时候还称不上一个 SaaS,甚至只是一个私有化的定制方案。

此时的产品不完善,但提供了新的解决方案或业务模式,解决了现有市场上尚未被满足的需求。主要解决的问题包括探索新的市场机会、验证产品概念和提早获得用户反馈。

从产品层面,大概具备以下的特征:

  • 创新性强,可能是市场上首个提供某种服务的产品。
  • 用户界面和客户体验可能未完全弄好。
  • 功能集中在核心创新点,可能缺乏辅助功能。

从研发的角度,我们需要重点关注

  1. 快速迭代和验证:我们要快速开发出 MVP,并与早期用户密切合作,收集他们的反馈,不断迭代和改进产品。这个阶段的重点是验证我们的产品理念,确保我们的解决方案能够满足用户的实际需求。
  2. 灵活性和定制化:由于早期用户可能来自不同的细分市场,他们的需求可能各不相同。我们需要保持产品的灵活性,能够根据不同用户的反馈进行定制化开发,满足他们的特定需求,同时积累案例。
  3. 技术创新和领先:作为创新者,我们必须在技术上保持领先。我们要敢于尝试新的技术和架构,为用户提供独特的价值。同时,我们也要确保产品的稳定性和可扩展性,为后续的发展打下坚实的基础。
  4. 与早期用户建立紧密关系:早期用户是我们最宝贵的资源。我们要与他们建立紧密的合作关系,倾听他们的反馈,了解他们的痛点。我们要让他们感受到自己是产品的一部分,共同塑造产品的未来。

在创新者阶段,SaaS 产品面临的最大问题是市场验证和产品市场契合度(Product-Market Fit)。虽然我们的创新理念可能源于对市场和用户需求的洞察,但在实际推出产品之前,这些假设都没有得到真正的检验。我们可能会犯两种错误:一是对用户需求的判断失误,二是高估了市场对创新产品的接受程度。这就像是在黑暗中航行,我们看到了目标,却不确定航向是否正确。如果产品定位偏离了用户的真实需求,再好的创意也难以吸引和留住早期用户。因此,我们必须通过频繁的用户互动和数据分析,不断校准我们的方向,确保产品的每一次迭代都朝着正确的方向前进。

创新往往意味着探索未知的领域,采用新的技术和架构。这对研发团队提出了更高的要求,既需要快速学习和掌握新技术,又要在有限的时间和资源内交付高质量的产品。同时,由于我们的重点是尽快推出 MVP,产品在功能的完整性、性能的稳定性、用户体验的友好性等方面可能还存在不足。这就像是一个幼儿,虽然充满了潜力和想象力,但在很多方面还不够成熟和完善。我们必须在快速迭代的过程中,时刻关注产品质量和用户反馈,不断打磨和优化我们的产品,让它尽快成长为一个稳定、可靠、易用的 SaaS 服务。

创新者阶段的 SaaS 企业还面临着资源限制和竞争压力的双重挑战。作为一家初创公司,我们在资金、人才、时间等方面的资源都非常有限。我们必须做出艰难的取舍,将有限的资源集中在最关键的创新点和最紧迫的问题上。同时,我们也必须时刻关注市场动态,警惕来自其他初创企业或成熟企业的竞争威胁。这就像是一场赛跑,我们需要在有限的资源下跑得更快、更稳、更远。这需要我们在产品开发、市场营销、客户支持等方面做到协调高效,需要我们的团队具备极强的学习能力、应变能力和执行力。只有这样,我们才能在激烈的竞争中脱颖而出,赢得用户的认可和市场的青睐。

面对这些问题,我们需要有一些做事的原则,在繁杂的问题中不至于走偏:

  1. 用户至上:一切以用户的需求为中心。我们要深入了解用户,与他们建立信任和共鸣,让他们成为我们的坚实后盾。
  2. 快速行动:创新者阶段的窗口期可能很短,我们必须抓住每一个机会。我们要快速做出决策,快速开发和迭代,不断推进产品的发展。
  3. 拥抱变化:在这个阶段,变化是常态。我们要有灵活的思维,随时准备调整方向。我们要勇于接受用户的反馈,即使这意味着要推倒重来。
  4. 追求卓越:即使是 MVP,我们也要力求做到最好。我们要在创新的同时,保证产品的质量和可用性。我们要为早期用户提供优秀的体验,赢得他们的信任和支持。

上面这些表述原则的词语看着挺虚的,但是却是我们在这个阶段做事过程中要秉承的原则。

当然,这些原则也不是仅适用于这个阶段,一些原则在其它阶段也会适用。

只有与早期用户建立起牢固的合作关系,我们才能真正实现产品的突破,为后续的发展奠定基础。

早期采纳者阶段

在早期采纳者阶段,创业者已经开始积累了一些客户,产品基本已经 SaaS 化,用户开始认识到 SaaS 产品的价值,并开始在他们的业务中实施。他们可能是行业内的意见领袖或早期采纳者,愿意分享他们的成功案例,从而吸引更多的用户。

这些用户大多数具有以下的特征:

  • 更愿意尝试新技术的个人或企业。
  • 在他们的社群或行业中具有影响力,可能是意见领袖。
  • 寻找创新解决方案以获得竞争优势。
  • 对产品尚不完善的部分有一定的容忍度,并愿意提供反馈。

SaaS 产品在这个阶段开始形成更加稳定的 SaaS 版本,同时保持创新性。产品开始解决用户更实际的业务问题,通过提供更好的用户体验、更多的功能和改进的性能。主要解决的问题是如何提供足够的价值驱动用户付费,并且建立品牌的信任度。

从产品层面,此时大概具备以下的特征:

  • 更加用户友好,有明确的价值主张。
  • 开始关注市场反馈,进行功能优化和迭代。
  • 旨在解决特定行业或市场细分的问题。

从产研的角度,我们需要重点关注以下事项:

  1. 提升产品价值:我们要深入了解早期采纳者的业务需求,不断优化和完善产品功能,提供更多的价值。我们要让用户真正感受到我们的产品能够帮助他们提高效率、降低成本、获得竞争优势。只有不断提升产品价值,我们才能驱动用户付费,实现商业上的成功。
  2. 优化用户体验:早期采纳者虽然对产品的容忍度较高,但我们仍然要重视用户体验的优化。我们要简化产品的使用流程,提供直观的界面设计,完善产品的帮助文档和用户指南。我们要通过良好的用户体验,减少用户的学习成本,提高他们的满意度和粘性。
  3. 重视客户反馈:早期采纳者是我们最宝贵的资源。我们要建立完善的客户反馈机制,通过多种渠道收集他们的意见和建议。我们要认真分析每一条反馈,深入了解用户的痛点和需求。我们要让用户感受到他们的声音被重视,他们的反馈被采纳,从而增强他们的认同感和归属感。

在这个阶段可能会面临比较多的问题,因为会服务于更多的客户,需求也会越来越多……

从技术架构的角度,随着用户数量的增长,我们的产品开始面临扩展性的挑战。我们需要确保我们的技术架构和基础设施能够支撑更大规模的用户访问和数据处理。 如果我们的产品无法平稳地扩展,就可能面临性能下降、服务中断等问题,影响用户体验和满意度。

从服务的角度,进入早期采纳者阶段后,SaaS 产品开始面临巨大的客户支持压力。这些压力主要来自三个方面:首先,随着客户数量的增加,支持工作的量级也成倍增长。其次,早期采纳者对产品和服务的期望值很高,他们希望能够得到最及时、最专业的支持。最后,随着产品功能的不断丰富,客户问题的类型也变得越来越多样化,对支持人员的技能要求越来越高。这就像是一个快速膨胀的气球,我们需要源源不断地输入新鲜空气,才能维持它的形状和张力。

但有一点我们经常会缺失,就是安全与合规性要求。早期采纳者中可能包括一些大型企业客户,他们对数据安全和隐私合规有着更高的要求。我们需要确保我们的产品符合行业标准和法规要求,并具备完善的安全防护机制。如果我们在这方面处理不当,可能面临法律风险和损失。

在做事的原则上,除了创新者阶段的原则以外,我们还可以增加以下的一些原则:

  1. 持续创新:虽然我们的产品已经初具规模,但我们仍然要保持创新的精神。我们要紧跟技术发展的步伐,不断尝试新的解决方案。我们要在稳定的基础上,持续优化和创新,为用户提供更多的价值。
  2. 数据驱动:我们要建立完善的数据分析体系,通过数据了解用户的行为,洞察用户的需求。我们要用数据说话,用数据做决策。我们要通过数据监控产品的健康状况,及时发现和解决问题。
  3. 协作共赢:我们要与早期采纳者建立紧密的合作关系。我们要与他们共同成长,与他们共享成功。我们要通过与早期采纳者的合作,完善我们的产品,扩大我们的影响力。

从早期采纳者阶段到早期大众有着深深的鸿沟,他们在采用新产品时表现出截然不同的心理特征和行为模式。

早期采纳者以变革为驱动力,他们视创新产品为颠覆现状、获取竞争优势的利器,为此甘愿承担风险,并积极参与产品的优化迭代。

相比之下,早期大众追求的是在现有基础上的渐进式进步,他们期望新产品能与已有的技术体系无缝衔接,并稳定高效地运行,从而提升生产力和效率。他们希望在尽可能小的阻力下实现技术变革,不愿意承担过多的不确定性和潜在风险。

这种心理预期和行为特征的差异,反映了创新产品在不同市场渗透阶段所面临的采纳门槛和挑战。

企业要想成功跨越鸿沟,PMF 扮演着关键角色。它象征着产品与市场需求之间的完美契合,是产品成功实现商业化的基石。

PMF 的关键标志包括:

  • 用户增长率:自发的口碑传播引发用户数量稳定增长。
  • 高用户保留率:用户不仅试用产品还持续使用。
  • 有能力为产品支付:用户认为产品提供的价值足以支付其费用。
  • 市场反馈:用户反馈积极,有明显的需求和用户满意度。

找到 PMF 意味着企业已经发现了其产品在市场上的位置,并且可以开始专注于增长和扩张战略。这通常是在产品经过初步开发和迭代之后,企业开始理解哪些功能是用户真正需要的,哪些方面的产品体验能够带来用户的满意和付费。

在技术采用生命周期中,PMF 通常出现在创新者早期采纳者之间,是过渡到早期大众之前的关键一步。一旦企业实现了产品市场契合度,它就处于较好的位置上,可以开始向早期大众晚期大众推广其产品。

未来的研发、销售、定价、服务、培训等业务流程都应当围绕这些关键的契合点进行设计和调整。产品所满足的关键需求应该是清晰明确的,避免模糊不清的情况发生。这种方法隐含着一个策略选择,即可能需要临时搁置某些客户群体和需求的满足。

此外,确保已经建立了最小可行性闭环是至关重要的。对于面向企业的产品(toB),这意味着整个业务运作流程需要能够顺畅无阻碍地进行。

一个有效的策略是首先构建最小可行性闭环,随后将产品推向市场。产品应在与用户的互动过程中不断进步,与用户共同成长。用户能够在使用过程中目睹产品的持续改善,这不仅是一种高质量的体验,同时也是建立信任的重要途径。人们天生倾向于欣赏成长,有时甚至比个人成长更加欣赏见证他人或事物的成长历程。

早期大众阶段

早期大众阶段的用户需要产品更稳定、支持更好,且集成到现有系统中的风险更低。

随着 SaaS 产品的成熟和市场教育的深入,更多的企业开始认识到 SaaS 的优势,如成本效益、灵活性和可扩展性。这些用户开始采用 SaaS 解决方案,但仍然需要看到明确的证据,证明这些服务能够满足他们的需求。

这些用户大多数具有以下的特征:

  • 他们通常比早期采纳者更为审慎,并且在采用新技术之前需要看到清晰的证据和效益。
  • 这类用户可能不是技术先驱,但他们愿意采用经验证的新技术以提高效率或获得其他好处。
  • 他们更加关注产品的稳定性、用户支持和性价比。
  • 早期大众用户需要看到其他公司或行业同行已经成功采用该技术。

在这个阶段,SaaS 产品需要更加稳定和成熟,因为其现在面向的主流市场的需求,用户体量已经很大了。

此时的产品通常具有更完善的功能、更高的可靠性和更佳的用户支持。主要解决的问题是如何扩大市场份额,满足更广泛用户的需求,同时保持产品的易用性和高性价比。

从产品层面,此时大概具备以下的特征:

  • 功能更全面,更好地集成到用户的现有工作流程中。
  • 稳定性和可靠性提高,减少错误和宕机时间。
  • 提供更多的客户支持和培训资源。

在早期大众阶段,产品的用户规模将大幅增长,系统面临更大的压力和挑战。如果产品的稳定性和可靠性无法满足用户需求,频繁出现故障或宕机,将直接影响用户体验和满意度,导致用户流失和负面口碑。这是我们在这个阶段面临的最大问题,需要我们在产品架构、性能优化、容错设计等方面投入大量精力,以确保产品能够稳定、可靠地运行。

同时,早期大众用户来自不同的行业和领域,他们对产品的需求和期望也各不相同。如何在有限的资源内,平衡和满足不同用户群体的需求,是我们面临的又一个重大挑战。我们需要深入了解不同用户群体的痛点和需求,并在产品规划和设计中做出权衡和取舍。同时,我们还需要应对不断变化的市场需求和技术趋势,及时调整产品策略和功能规划,以保持产品的竞争力和吸引力。

前面的产品稳定性和可靠性问题和用户需求多样化问题都会带来一些衍生的问题,如不够稳定或可靠,以及随着用户的大幅增长,我们将面临更大的客户支持和服务压力早期大众用户对产品的熟悉程度和技术能力参差不齐,他们在使用产品时遇到问题时,往往需要更多的指导和帮助。如果我们的客户支持和服务体系无法及时、有效地响应用户需求,将直接影响用户体验和满意度,甚至导致用户流失。我们需要在客户支持和服务方面投入更多的人力和资源,建立完善的知识库和自助服务体系,并通过多种渠道和方式,为用户提供及时、专业的帮助和支持。

在早期大众阶段,SaaS 企业的成功依赖于能够有效地向更广泛的市场证明其产品的价值,并确保产品稳定、支持到位并能够满足不断增长的客户基础的需求。同时,这一阶段提供了通过增加市场占有率和建立品牌声誉来巩固市场地位的机会。

晚期大众阶段

在晚期大众阶段,SaaS 企业的方案已经成为行业内的主流选择。

它们已经成为行业标准,并且用户对这些服务的信任度很高。在这个阶段,SaaS 企业需要关注服务质量、客户支持和持续创新,以保持竞争力。

这些用户大多数具有以下的特征:

  • 对新技术持保守态度,更倾向于在大多数人都接受后才采用。
  • 他们可能更关注价格,寻求成本效益高的解决方案。
  • 对技术变革的适应速度慢,需要更多地引导和支持。
  • 这一阶段的用户往往更注重产品的实用性而非创新性。

在这个阶段,SaaS 产品已经非常成熟,并且通常是市场上的主流选择。产品需要解决的问题是如何维持市场地位,提供更高性价比的服务,并不断改进以对抗竞争对手。

从产品层面,此时大概具备以下的特征:

  • 高度标准化,功能丰富,用户体验优化。
  • 强调易用性和可访问性,以吸引不太技术熟练的用户。
  • 价格可能更有竞争力,以吸引价格敏感的用户。

在晚期大众阶段,市场竞争日趋激烈,各种同类产品和服务不断涌现。如何保持产品的创新性和差异化优势,是我们面临的最大挑战之一。我们需要深入分析市场趋势和用户需求,不断推出新功能和服务,以满足不同用户群体的需求。同时,我们还需要在产品设计和用户体验方面进行创新,提供更加智能、个性化的服务,以区别于竞争对手。如果我们无法保持产品的创新性和差异化,将面临用户流失和市场份额下降的风险。

在这个阶段,我们的用户群体更加多样化,既有技术熟练的专业用户,也有技术能力较弱的普通用户。如何兼顾不同用户群体的需求,提供一致、优质的用户体验,是我们面临的另一个重大挑战。我们需要在产品设计中综合考虑不同用户群体的特点和需求,提供灵活、可配置的功能和界面,以及清晰、直观的操作流程和帮助文档。同时,我们还需要通过用户研究和数据分析,不断优化产品的易用性和可访问性,以提高用户满意度和留存率。

在晚期大众阶段,我们的客户群体更加庞大和多元化,对客户支持和服务的要求也更高。如何提供高质量、高效率的客户支持和服务,是我们面临的又一个重大挑战。我们需要建立完善的客户成功管理体系,为不同层次的客户提供差异化的支持和服务。同时,我们还需要建立多渠道、全天候的客户支持体系,提供及时、专业的技术支持和问题解决服务。如果我们的客户支持和服务质量无法满足用户需求,将直接影响用户体验和满意度,甚至导致用户流失和负面口碑。

从技术的角度,我们需要进一步提高产品的稳定性、可靠性和安全性。在这个阶段,产品已经成为行业标准,用户对产品的依赖程度很高,任何服务中断或数据安全问题都可能导致严重的后果。因此,我们要继续优化产品架构,加强容错设计和故障恢复能力,确保产品能够持续、稳定地运行。同时,我们要建立完善的数据安全和隐私保护机制,严格遵守相关法律法规和行业标准,保护用户数据的机密性和完整性。

在晚期大众阶段,SaaS 企业需要聚焦于巩固现有市场地位,提高运营效率,增强客户忠诚度,并在可能的情况下寻找市场细分领域以实现增长。此时,企业通常需要在保持竞争力的同时优化成本结构,确保长期的盈利能力。

落后者阶段

在落后者阶段,面对的用户通常是出于必要而非选择。他们对新技术不感兴趣,可能是因为对新技术不信任或是对变化有抵触感。但当他们的客户和合作伙伴已经转向了 SaaS 解决方案时,他们也会使用 SaaS 产品。

这些用户大多数具有以下的特征:

  • 极为保守,可能由于成本、技术恐惧或是对变化的抗拒而迟迟不愿采用新技术。
  • 他们通常在等待产品成为市场标准或者完全无法避免采用时才会改变。
  • 这类用户可能对技术不太熟悉,需要额外的教育和支持才能使用新系统。
  • 他们可能更信任长期存在的解决方案和传统的做事方式,而不是新兴的技术。

这个阶段的 SaaS 产品通常是行业标准,具有很高的稳定性和可靠性。产品需要解决的问题是如何持续吸引那些对新技术抗拒感强的用户,通常需要通过更好的客户服务、产品的简化和成本优化来实现。

从产品层面,此时大概具备以下的特征:

  • 极致地简化和优化,以降低使用复杂性。
  • 提供额外的个性化服务,以满足特定客户群体的需求。
  • 可能需要提供更多的本地化服务和支持。

在落后者阶段,我们面对的用户大多对新技术不感兴趣,甚至存在排斥和抗拒心理。他们可能由于成本考虑、技术恐惧或是对变化的抗拒而迟迟不愿采用新技术。如何提高这部分用户对 SaaS 产品的接受度和认知,是我们面临的最大挑战之一。我们需要通过各种渠道和方式,向用户普及 SaaS 的优势和价值,消除他们对新技术的疑虑和抗拒感,同时提供简单易用、稳定可靠的产品,降低用户的使用门槛和学习成本。

在这个阶段,我们面对的用户群体可能非常多样化,他们来自不同的行业、地区,有着不同的业务场景和使用习惯。如何为这些用户提供个性化的服务和支持,满足他们的特定需求,是我们面临的另一个重大挑战。我们需要深入了解不同客户群体的特点和需求,提供差异化的服务和支持,例如为重要客户或特殊行业提供专属的客户成功经理和技术支持团队,为不同地区的用户提供本地化的服务和支持等。这需要我们在客户服务和支持方面投入更多的资源和精力。

在落后者阶段,我们面对的用户对成本非常敏感,他们可能更信任长期存在的解决方案和传统的做事方式。如何在保证产品质量和服务水平的同时,不断优化成本,提供有竞争力的价格,是我们面临的又一个重要挑战。我们需要从产品架构、运营模式等方面入手,通过技术创新和流程优化,提高资源利用率和自动化水平,降低运营成本。同时,我们还需要提供灵活、多样的定价模式和服务方案,让用户能够根据自己的需求和预算选择合适的服务。

在落后者阶段,SaaS 企业需要特别关注市场教育、客户支持和产品的易用性。尽管这一阶段的增长空间有限,通过精细化管理和优化产品,企业仍然可以在市场中找到利润和维持稳定的客户基础。此时,关注客户的长期价值和满意度可能比追求快速增长更为重要。

小结

SaaS 产品的生命周期与技术生命周期密切相关,不同阶段的用户需求和产品特点都有所不同。在早期市场阶段,SaaS 产品需要专注于创新和差异化,吸引技术爱好者和早期采用者。随着产品进入主流市场,重点应转向提高产品的易用性、可靠性和性价比,以吸引务实主义者。在晚期大众阶段,SaaS 产品已成为行业标准,需要持续创新和优化用户体验,维持竞争优势。而面对落后者时,产品需要极致简化,并提供个性化服务和支持,以降低使用门槛。

SaaS 业务的核心在于长期积累复利效应,这是其区别于其他追求指数级增长模型的关键特征。随着时间推移,续费收入将成为 SaaS 企业收益的重要组成部分,而成长性收入(即客户业务增长带来的收入)也将贡献更高的毛利率。这种模式意味着 SaaS 企业需要在产品研发和客户服务上持续投入,深入了解并满足客户需求,不断优化产品和服务,以实现长期价值的积累和复利效应。

因此,SaaS 产品的产研逻辑需要兼顾技术生命周期的特点和长期积累复利效应的本质。在产品研发过程中,要根据不同阶段用户的需求和期望,制定相应的产品策略和优先级,同时要建立完善的客户反馈机制和数据分析体系,持续跟踪和优化产品性能。在客户服务方面,要提供全生命周期的支持和服务,帮助客户充分实现产品价值,提高续费率和满意度。只有在产品研发和客户服务两个维度上持续发力,SaaS 企业才能真正实现长期可持续的增长和盈利。

跨端架构落地过程中的 5 点思考

离上次聊跨端已经过去一年多了,想再聊一下跨端架构这件事,因为在实际工作中落地遇到了很多问题,以总结。

先回顾一下上次聊的内容,上次主要聊了跨端架构的重要性、核心概念以及实际应用的几种策略。我们将跨端架构分解为三个层面:硬件形态、相同硬件形态下的不同平台和相同平台下不同的应用或应用中的衍生应用。

还详述了几种常见的跨端架构方案,包括 H5 hybrid 方案、框架 + 原生渲染、框架 + 自渲染引擎和 DSL 编译 + 混合渲染。并深入探讨了如 Qunar 的 React Native 优先的多端统一化方案、Flutter 全平台方案和 Hybrid 方案等实际落地的策略。这些方案各有优缺点,需要根据特定的业务需求和场景来选择最适合的跨端架构方案。更多细节可以见:

跨端架构的技术选型 2022

而今,在此基础上,我想再聊聊关于跨端架构落地过程中因为遇到一些问题而产生的思考。

1 平衡

在实现「一次编写,多端运行」的愿景下,我们的核心关注点是成本和体验。这其中,复用代表了我们在成本方面的考量,我们希望通过复用代码来降低开发和维护的成本。而提升用户体验则代表了我们在体验方面的追求,我们希望无论在哪个平台上,用户都能得到最好的原生体验。

然而,这两个目标之间存在着一种天然的张力。在实践中,我们常常需要在代码复用(降低成本)和优化用户体验(提升体验)之间寻找一个平衡。这就需要我们不断地试错、调整,找到适合自己的最佳策略。

当我们从跨端的角度出发,面对的主要挑战是解决界面渲染和能力复用的问题。使用跨端开发框架,如React Native、Flutter 等,帮助我们实现代码的复用,以及在不同平台上进行统一的界面渲染。

再看到具体的界面,我们需要高效地解决屏幕适配的问题,这意味着我们的应用需要能够在不同大小、分辨率的屏幕上都能提供良好的用户体验。这可能需要我们使用响应式设计,或者针对不同平台进行特定的界面设计。

在这些个过程中,虽然我们是想「一次编写,多端运行」,这只是一个结果,这个结果的背后是复用和提升用户体验,更深一个层次是成本和体验,成本和体验是我们的核心关注点。在过程中,找到一个平衡。

2 区分大小屏

理想状态下,我们希望能够实现「一次编写,多端运行」,即不管在哪个平台,都只有一份代码。这样可以极大地提高开发效率,降低维护成本,并保证应用在各个平台上的一致性。

然而在实际的开发过程中,我们往往会发现,由于大屏和小屏设备的使用场景、用户行为习惯以及界面布局等方面存在着显著的差异,简单地复用一份代码并不能提供最佳的用户体验。因此,一个比较实际且合理的做法是,对大屏和小屏设备使用不同的代码。

对于大屏设备(如桌面应用和 WEB 版本),我们可以利用更大的屏幕空间来展示更多的信息,提供更丰富的交互方式。而对于小屏设备(如手机),我们则需要更注重信息的精简和易用性,以适应用户在移动环境下的使用需求。

虽然区分了大小屏,但并不意味着不能实现代码的复用。我们可以通过抽象和封装共享的逻辑和组件,来实现在不同代码库之间的复用。这样,我们既能保证在各个平台上提供最佳的用户体验,又能充分利用代码复用来降低开发和维护的成本。

这个区分的逻辑往往由实际的业务、产品逻辑以及组织分工来决定的,各家不同。比如要考虑小屏上的定位,如果手机浏览器访问只是一个移动流量入口,并不作为业务功能的,那么基于运营逻辑的复用和代码的复用,可以把大屏 WEB 做移动端适配。

3 选择合适的技术栈

评估和选择技术栈对于跨端架构落地来说一件非常重要的事情,我们不仅仅要考虑性能、开发效率、可维护性、扩展性以及成本(包括熟悉成本、部署成本等),还要考虑这个技术栈所在的社区,成熟度,以及现有团队对技术栈的承受力。

没有一种技术栈是适用于所有情况的。每种技术栈都有其优点和缺点,选择哪种最合适,取决于我们的项目需求、团队能力和期望的结果。如果选择新的、未经验证的技术,可能会导致技术债务,甚至会在项目的后期阶段导致大量的时间和资源消耗,最后让事情尾大不掉。

在实际的评估和选择过程中,跨端项目的负责人对此负主要责任。从团队的技能和经验是选择技术栈的关键因素。选择一种团队成员已经熟悉的技术栈,可能会比选择一种可能更适合项目但需要学习的技术栈更为实际。但是我们此时又需要考虑到是否当下的技术栈已经过时,或者引入新的技术栈能触发团队成员的学习热情,从而变成另一种激励呢?

进一步思考,我们必须认识到技术的选择并非一成不变。随着项目的演进和业务需求的变化,我们可能需要对技术栈进行迭代和调整。当我们在选择技术栈时,应该考虑到这种可能性,并选择那些具有一定的灵活性和可适应性的技术。

从技术栈的社区和生态系统,一个健康的社区和丰富的生态系统可以为我们的项目提供强大的支持,包括开源库、教程、工具和问题解答等等。选择一个有活跃社区和丰富生态系统的技术栈,可以大大提高我们的开发效率和项目的成功概率。

我们必须清醒的认识到:「人」是项目成功的关键。技术栈的选择应基于团队的能力和需求,而不仅仅是技术本身的优点。我们需要基于团队已有的人员配置,与团队成员进行深入的沟通,理解他们的需求和期望,然后做出最佳的选择。如果必要,我们还可以为团队成员提供培训和学习资源,帮助他们掌握新的技术。

在实际选择技术栈的时候,其考量点主要是三个:复用性、性能和多端一致性。

  • 复用性:成本角度,研发效率(包括开发效率和发版效率)
  • 性能:用户体验角度
  • 多端一致性:用户体验的统一

在复用性方面主要是渲染层的事情,关注点是业务差异性,及是否有复用的必要,复用对于原有架构是否会产生更多的影响。

在性能方面主要考虑响应速度、流畅度、稳定性等方面,主打一个顺滑和愉悦的用户体验。

多端一致性主要是用户体验的统一和体感一致。

以性能为例,可能需要考虑页面的复杂度,或者对性能的要求,比如长页面,多级嵌套页面,如iOS 上可能因为触发内存上限,系统优先清理 WebView,导致 WebView 白屏,或者页面的整体表现稳定性,不存在卡顿等等

那么,基于以上的考量点,大概要回答如下的判断基准问题:

  • 复用度有多少?复用和不复用的人力差有多少?
  • 复用对现有架构有哪些影响?
  • 是否存在多层嵌套、长页面的场景,对于性能的要求指标是什么?需要测试一下现有 web 方案是否会触发白屏、卡顿等情况
  • 当前页面是否关键页面,如果出现页面级的不可用,如何处理?
  • 是否存在多端一致性的要求,一致性要求有多少?

在技术方案选择时,需要考虑当前产品所处的阶段,比如创始阶段,可能纯 WEB 方案就行,当发展到一定程度,可能在入口级页面需要有更好的用户体验,则可以把入口页面改为原生或者 Flutter 页面。

4 渐进式开发

渐进式开发是一种实施新技术或变革的策略,它的主要目的是降低风险、提高效率和保证稳定性。不会一下子太猛,导致项目挂了,或者风险不可控。

通过逐步引入新技术或变革,我们可以控制每个阶段的风险,避免一次性全面改变带来的巨大风险。如果在某个阶段发现问题,我们可以及时调整或回滚,而不会影响到整个项目。

渐进式开发也是一个持续学习的过程。团队成员可以通过实际操作和反馈,逐步深入理解新技术,提升自己的技能和知识,这通常比纯理论学习更有效。同时,每个阶段的成功实施都会增强团队的信心和动力,提高开发效率。

市场和技术环境总是在快速变化,渐进式开发使得我们能更好地适应这些变化。我们可以根据新的需求和情况,逐步引入新技术或进行优化,使项目始终保持在最佳状态。

渐进式开发在实施过程中有以下几种方式:

低风险模块试点:选择非核心的,风险较低的模块进行新技术架构的试点实施。在低风险的环境中尝试和学习新技术,为后续的全面实施打下基础。在过程中需要注意选择的模块应具有一定的代表性,以便能够有效地验证新技术栈。同时,要做好版本控制和回滚计划,以防新技术栈出现问题。

技术底层实施:从与业务逻辑关联较小,更侧重于技术实现的底层模块开始实施新技术。这种落地方式可以避免新技术栈对业务逻辑造成影响。同进,通过底层模块的实施,可以更深入地理解和掌握新技术栈。但是在具体实施过程中要特别注意到其广泛的影响,以及需要进行充分的测试,确保底层模块的稳定性和性能。

并行式开发:在维持旧技术栈的同时,建立新的团队在新的技术栈上开发新的功能或模块。这可以避免影响现有的业务,并且可以并行推进新技术栈的实施。但是要注意要做好新旧技术栈的集成和切换计划,以及要确保有足够的资源来支持并行开发。

在跨端架构的落地过程中,全方位的考虑和准备是关键,这包括团队的认知,项目的方向,以及有效的沟通。每个参与者,无论是发起人、负责人还是核心成员,都需要明确自己在过程中的角色并发挥其特有的责任和职能。

发起人提供方向和资源,负责人为项目负总责,制定详细的实施计划并监视进程,而核心成员则负责掌握新架构,实现功能需求并密切合作以解决问题。这是一个团队协作的过程,每个角色都扮演着关键的部分,以确保新架构的成功落地和最大化的效果。

5 规范的系统化

跨端是一个系统化的过程,规范在落地过程中逐步建立起来,整个规范系统化的过程包括协议管理,SDK 的生成和管理,文档统一,以及防劣化等等。

协议是我们交互和通信的基础,我们设立了统一的接口定义标准,每个接口都需经过严格的审核流程,确保数据的一致性和接口的稳定性。同时,我们引入了版本控制机制,确保 API 的演进不会破坏现有系统的稳定性,同时也方便了新功能的迭代。

SDK 的生成和管理是跨端架构中的关键环节。我们开发了一套自动化工具链,用于生成和管理 SDK,这不仅提高了开发效率,还确保了 SDK 的一致性和安全性。通过对 SDK 的严格版本控制和定期更新,我们能够及时修复已知问题,同时引入新的特性,以支持不断变化的业务需求。

文档的统一方面,良好的文档是跨端协作的桥梁。我们建立了一套文档规范,确保所有开发者都能够轻松理解系统架构、API 使用和 SDK 集成。我们采用了 Markdown 格式来编写文档,并通过内部 Wiki 进行管理,这样不仅便于团队成员访问,也方便了新成员的快速上手。

防劣化是跨端架构中容易被忽视的一个方面。我们通过组织、系统、知识库三个层面来做到防劣化,组织层面,有一个跨端架构小组,系统层面实施代码审查、自动化测试、全局代码检测和性能监控等措施来确保系统的质量和性能,知识库层面通过前面的文档统一、SDK 管理及脚手架构等。这些措施帮助我们及时发现并修复潜在的问题,避免了系统劣化对用户体验的影响。

跨端不仅仅是技术层面的整合,更是对业务流程、用户体验和团队协作方式的一次革新。

在跨端落地过程中,我们会遇到多种问题,团队的问题,人员的问题,技术栈选择的问题等等,这些问题都是在过程中不断思考、决策和调整,以确保我们的架构能够适应快速变化的环境,同时也能够支持团队的高效工作。

希望通过这些努力,我们的跨端架构能够为公司带来长期的竞争优势。