构建快速的产品问题解决迭代Forming Fast Product Problem-solving Iterations
Scope of the Article#
In this article, I am focusing on the decision-making process of an efficient product problem-solving cycle. Of course, a product management team with high-quality talent is a prerequisite, and I will cover it in another article. Focus and clear alignment of priorities for the product team with the company’s priorities are also important, as TuSimple is still a research company and we do not have customer demands as our prioritization principle. The RICE model generally does not work well here.
Note: One can argue that the product team can identify internal users as customers and conduct prioritization. Please refer to my other article for my thoughts.
Definition#
- High efficiency is achieved under the prerequisite of delivering high-quality products.
- High-quality products are identified by achieving pre-identified goals.
- The goals should be either binary or quantitative: solving an existing or future pain point (or not), and improving a data metric (or not).
In this article, within TuSimple’s context, I define efficiency as the time from a pain point emerging to the time that the acceptance criteria have been met, or the theoretical problem-solving prerequisites have been met. For example, if we find the disengagement rate increased during the past 30 days, the definition of done for the efficiency cycle should be the release of the new algorithm changes that theoretically solve the false disengagement issue.
Modeling#
The essence of the problem-solving model: building a model is essentially building a workflow for decision-making. A typical problem-solving cycle in TuSimple is to:
- Identify priorities: determine which problems to focus on.
- Identify problems and solutions: understand the root cause and how to solve it.
- Communicate and execute the solution, and verify the resolution of the problems.
I consider stakeholders in the problem-solving process as forming a “thinking group” (not groupthink, lol) and believe that a highly efficient problem-solving cycle can be transferred and consists of three parts:
- Pre-decision: the phase where all stakeholders reach the same context and mental readiness about the problem, and form their individual solutions for the problem.
- Decision-making: the phase where solutions are communicated, and agreements are reached on directions.
- Post-decision: the phase where the solution, in terms of execution, is formalized and executed.
Difficulties#
The achievement of maximized efficiency in this model depends on:
- A standardized understanding of the problem scope
- Maximized involvement in the decision-making process, meaning maxing out the total intelligence of the thinking group
- Reaching agreements among stakeholders; disagreements can be caused by different understandings of the problem scope
Also, the lack of a passive feedback loop, or failures in the installation of the decision-making process during the post-decision execution phase, can lead to:
- Excessive small changes to the product (Ship of Theseus)
- Underachievement of the product goals (“we didn’t achieve this because of XYZ, and it’s not my fault”)
- Failures in achieving the expected outcome
Solutions and Implementations#
They are not prioritized, but rather based on the order of the three steps mentioned above:
Keep Contexts Handy#
Here, by context, I refer to product items and action items.
Context about the Product#
- User research docs, PRDs, designs, and data collection docs
- PRDs and design should be up-to-date and match online product logic
- Materials should be on Confluence instead of scattered on Google Drive to ensure accessibility
- Problem descriptions
- Jira tickets or descriptions from Pagers should be shared and made public
Context about the Role#
- Keep a list of stakeholders so that we also know who to reach out to, especially for products such as HMI
Maximize Participation in Thinking#
-
Avoid being dependent thinkers
- Build your own source of truth: gather product managers’ own understanding of problems, especially those two-sided problems with public interactions or non-tech users
- Ingest context provided by researchers and developers: dig into the reasoning, instead of only conclusions
-
Encourage solution-oriented thinking
- Focus on the improvement of the system. Highly dependent systems design, such as AV development, often triggers users to find problems in operations instead of the systems, as human operators are easier to blame for mistakes. Yet solving people problems has a much lower priority
-
Be nice to people, but not to people’s ideas
- Expect and lead debates and challenges. Don’t be frightened by challenges, and don’t be afraid of coming up with challenges for others. It’s common to “care for others’ feelings,” but that is essentially self-protection
Run the Experiments and Get the Data#
-
Identify the hypothesis
- Refer to the research guideline
-
Don’t forget the simulation ecosystem
- Creating logic and scenarios in the sim system can be boring but is essential for the baseline to be created
-
Do not expect a perfect solution from the beginning
- Instead, use a spiral or progressive design method to get quick wins, and solve the problem systematically when you can achieve both simultaneously
Manage Expectations#
- Manage your time
- Manage the expected outcome of a meeting or a testing
- Manage the expected product delivery for users
本文范围#
在这篇文章里,我关注的是一个高效的产品问题解决循环中的决策过程。当然,一支人才素质过硬的产品经理团队是前提条件,这一点我会在另一篇文章里展开。产品团队保持聚焦、并让自身优先级与公司优先级清晰对齐同样重要,因为 TuSimple 目前仍是一家研究型公司,我们没有客户需求可以作为排定优先级的依据。RICE 模型在这里通常并不好用。
注:有人可能会说,产品团队可以把内部用户视为客户,并据此进行优先级排序。请参见 我的另一篇文章 了解我的想法。
定义#
- 高效率要在交付高质量产品的前提下达成。
- 高质量产品的判定标准,是达成事先确定的目标。
- 目标应当要么是二元的、要么是可量化的:解决了某个现有或未来的痛点(或者没有),提升了某项数据指标(或者没有)。
在本文中,在 TuSimple 的语境下,我把效率定义为:从一个痛点出现,到验收标准得到满足、或理论上解决问题的前提条件得到满足所经历的时间。举个例子,如果我们发现过去 30 天里接管率上升了,那么这个效率周期的「完成定义」就应该是:发布理论上能够解决误接管问题的新算法改动。
建模#
问题解决模型的本质:搭建模型,本质上就是搭建一套决策工作流。TuSimple 一个典型的问题解决循环是:
- 确定优先级:决定聚焦哪些问题。
- 确定问题与解决方案:理解根本原因以及如何解决。
- 沟通并执行解决方案,验证问题得到解决。
我把问题解决过程中的各方干系人看作组成了一个「思考小组」(不是群体思维,哈哈),并且相信一个高效的问题解决循环是可以迁移复用的,它由三部分组成:
- 决策前:所有干系人就问题建立起相同的上下文和心理准备,并各自形成自己的解决方案的阶段。
- 决策中:沟通各方方案、就方向达成一致的阶段。
- 决策后:将解决方案在执行层面正式确定下来并加以执行的阶段。
难点#
要在这个模型中把效率做到最大化,取决于:
- 对问题范围有标准化的理解
- 决策过程的参与度最大化,也就是把思考小组的总体智力发挥到极致
- 干系人之间达成一致;分歧可能源于对问题范围的理解不同
此外,如果缺乏被动式的反馈闭环,或者决策流程没有在决策后的执行阶段真正落地,就可能导致:
- 对产品做出过多的小改动(忒修斯之船)
- 产品目标达成不足(「我们没达成是因为 XYZ,这不是我的错」)
- 未能取得预期的结果
解决方案与实施#
以下内容不分优先级,而是按照上文提到的三个步骤的顺序展开:
让上下文触手可及#
这里说的上下文,指的是产品类条目和行动项。
关于产品的上下文#
- 用户调研文档、PRD、设计稿和数据采集文档
- PRD 和设计稿应保持最新,与线上产品逻辑一致
- 资料应放在 Confluence 上,而不是散落在 Google Drive 里,以保证随取随用
- 问题描述
- Jira 工单或来自 Pager 的问题描述应当共享并公开
关于角色的上下文#
- 维护一份干系人清单,这样我们也能知道该去找谁,对 HMI 这类产品尤其如此
最大化思考的参与度#
-
避免做依赖型思考者
- 建立你自己的事实来源:沉淀产品经理自己对问题的理解,尤其是那些涉及公众交互或非技术用户的双边问题
- 吸收研究员和开发工程师提供的上下文:深挖背后的推理,而不只是看结论
-
鼓励面向解决方案的思考
- 聚焦于系统本身的改进。像自动驾驶研发这类高度相互依赖的系统设计,常常诱使人们去运营环节找问题,而不是去系统里找问题,因为把错误归咎到人类操作员身上更容易。然而,解决「人的问题」的优先级要低得多
-
对人要友善,对想法不必客气
- 要预期并引导辩论和质疑。不要被质疑吓住,也不要害怕对别人提出质疑。「照顾别人的感受」很常见,但那本质上是一种自我保护
跑实验,拿数据#
-
明确假设
- 参考研究指南
-
别忘了仿真生态
- 在仿真系统里创建逻辑和场景可能很枯燥,但对建立基线来说必不可少
-
不要指望一开始就有完美的解决方案
- 相反,应采用螺旋式或渐进式的设计方法先拿到速赢,等到两者可以兼顾时,再系统性地解决问题
管理预期#
- 管理你的时间
- 管理一场会议或一次测试的预期产出
- 管理用户对产品交付的预期
Comments