技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?

简介: 技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?

技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?


前言

经常会被产品童鞋问到关于求职面试相关的问题,作为一只从业经历5年的B端产品汪,再回过头来看待这些标准的面试问题,总是有些不同的感悟。

那么今天就来分享下在产品求职面试中会被经常问到的几个问题,供刚入职不久的产品萌新,或者想要转岗的童鞋作为参考。

如有歧义,以你为准。

1、产品经理是如何工作的?

我们先来看看计算机是如何解决问题的,首先从具体的问题抽象出一个适当的数学模型,然后设计一个求解该数学模型的算法,最后用某种计算机语言编写实现该算法的程序,调试和运行程序,直至最终得到问题的解答。

产品经理的工作方式也类似,首先将具像化问题抽象出一个可以描述用户痛点的用户场景,然后设计一个最优的可以解决用户场景中的痛点的产品方案,最后编写详细产品设计方案,经由开发实现、测试、交付直至最终解决用户的痛点。

image.png

2、如何才算一份好的需求文档?

我们先来看看如何评价一个算法的好坏:能正确地实现预定的功能,满足具体问题的需要;易于阅读、理解和交流,便于调试、修改和扩充;即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的运行结果;应当考虑算法的时间性能和空间性能。

一份优秀的需求文档参考维度也类似。

首先是正确性,需求文档需要正确地描述产品的功能及其满足的用户场景;

其次是易读性,需求文档是面向于开发人员、测试人员,其书写的逻辑结构必须容易理解并且可实现,而且产品功能不能固化写死,需留出后期扩展的空间;

再次是健壮性,需求文档应该描述各种输入内容下经由产品功能处理后的输出结果,并且考虑到各种用户输入性错误处理和系统判断规则处理,简单的如非空判断,格式错误,编码不存在,编码未启用等;

最后是时空性,需求文档规划的功能需要考虑其时间复杂度和空间复杂度,即时间效率和空间效率。

时间复杂度是产品功能逻辑所带来的系统计算量,运算过程会消耗时间,示例:计算机读取数据效率为1000条/秒,假设读取的数据为组合结构,商品+颜色+尺码,则500个商品,每个商品5个颜色,每个商品20个尺码,数据量为5W,则读取该数据需要50秒。当使用并行20个POD节点,则需要2.5秒即可完成。

空间复杂度则是在系统运算时所占用的存储空间,包含程序运行占用的空间、输入的数据占用的空间,以及一些辅助运算的算法占有的空间。示例:多人同时使用系统,所带来的操作占用了系统进程,后来的操作就需要排队才能执行。

image.png

3、如何设计一个简单的列表,它应该具备哪些基本功能?

我们可以先来看看线性表的基本功能:初始化一张不包含数据元素的空表,求表长、读取表中的元素、定位表中的元素、插入一个新数据元素、删除表中的数据元素。

一个常规的列表应该包含增删改查4项基本功能。

  1. 增为增加,即用户根据列表字段规则输入内容,完成后系统在列表中插入一条数据;
  2. 删为删除,即用户首先定位列表中的数据行/列,然后删除定位的数据;
  3. 查为查找,即用户根据某一指定的数据,列表读取并筛选符合条件的数据并更新列表;
  4. 改为修改,即用户首先定位列表中的数据行/列,然后修改其内容,系统重新赋值更新数据。

了解了基本功能后再考虑基本的交互逻辑,设想下用户常用的操作场景,首先点击菜单入口打开一个列表页面,查看列表数据或是通过筛选条件查看指定数据,找到某条信息后修改或者删除数据,若没有符合的数据,则通过新增数据的方式插入信息。

除了基本的增删改查外,还可以引入批量操作的功能,对某些具有相同业务场景的数据进行批量修改。

另外,列表页面可以有2种设计方式,一是展示一个缺省图,即空白列表,需要用户输入指定筛选条件才能查询数据,常用于数据报表等列表设计。由于其数据量大,查询效率低下且不具有一定业务查询确定性,则可以让用户先提供条件,再根据条件进行查询。

另一种则是页面初始加载指定数据,系统已经按照用户常用使用场景预设好一定的条件规则,并且在页面打开时便展示列表数据供用户查看。这一种列表设计方式常用于数据量少,且具有高频业务场景使用的情况。

image.png

未完待续

以上观点仅为个人闲暇之余对于一些面试题的思考。想起以前做面试官的时候,开场来来回回问的也就这些,也没有什么新意,后面问具体做过什么项目以及项目细节才是核心。

在此写下了并分享,算是有做了一次个人复盘,对比以前的回答也有了些许的不同,这应该算得上是一种进步吧~

相关文章
|
JavaScript 前端开发 安全
ts中的类型定义的详细使用教程
ts中的类型定义的详细使用教程
307 0
|
计算机视觉 Python
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
|
监控
产品经理------需求文档(上)
产品经理------需求文档(上)
553 0
|
缓存 前端开发 小程序
SpringBoot+uniapp实现网页授权获取用户基本信息
本文详细介绍了微信网页授权登录的实现过程,作者原本计划在一个项目中使用该功能,但由于公众号未认证而放弃。文中分享了如何通过测试公众号实现网页授权并获取用户基本信息,包括配置授权回调域名、获取access_token及刷新等步骤。适合初次接触或希望回顾此流程的读者。此外,还提供了常见错误解决方案,强调了正确配置回调域名的重要性,并提醒避免重复使用已失效的code。通过本文,读者可以更好地理解和应用微信网页授权。
334 0
SpringBoot+uniapp实现网页授权获取用户基本信息
|
运维 Devops API
阿里云云效操作报错合集之调用api报错:没有权限,是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
消息中间件 应用服务中间件 Kafka
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(1)
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(1)
|
安全 算法 网络安全
|
缓存 移动开发 NoSQL
Redis持久化——AOF机制详解
Redis提供了RDB和AOF的持久化选项。本文主要介绍AOF的核心概念、同步步骤、保存模式、AOF重写详解及AOF的优缺点,还介绍了RDB和AOF混合方式的运行机制。AOF(Append Only File):以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的
|
Swift iOS开发
SwiftUI极简教程01:搭建一个新项目&Text文字的使用
SwiftUI极简教程01:搭建一个新项目&Text文字的使用
784 1
SwiftUI极简教程01:搭建一个新项目&Text文字的使用
|
JSON 算法 安全
金润·核验通-运营商三要素验证接口文档
接口介绍:支持三大运营商所有号码核验,通过比对姓名、身份证号、手机号的一致性 更新时间:实时 接口类型:API接口 数据优势:直连官方数据,合法合规、权威、精确 数据安全:官方数据,只核验三要素之间的一致性,保护个人信息安全 计费方式:核验计费,详情请咨询
金润·核验通-运营商三要素验证接口文档