拒绝“开发脑”

简介: 拒绝“开发脑”

1 背景

工作这几年观察到一个非常有意思的现象:有些开发会深陷开发思维。


案例1:纯数据思维:

产品让你做一个导出功能,其中有一项是性别字段字段,数据库存的是0表示女,存1表示男,有些同学导出 excel 时,直接讲值导出为 0 和 1 ,😳…


案例2:已删除问题:

团队中有些同学负责维护员工信息、群信息和部门信息等,员工、群、部门有可能被删除,那么对他们而言,删除之后查询就查不到了。


但是设想一下,对于商家而言,创建一个活动时选择了 5个员工,有些员工被删除之后,再查看之前的某个活动时,只有1个员工了或者1个员工都没有了,作何感想?


或许我们可以做降级,如果查不到员工或群,可以降级为[该员工已删除]、[群已解散] 等字样,如果一个活动出现多个 [该员工已删除]、[该群已解散] 这种是不是也很崩溃呢?


案例3:快照问题:

比如你在做电商平台,用户下单之后产生了争议,如商品的功能和描述不符,并提供了截图,如果提起申诉之前商家删除了商品或者修改了商品描述,不认账,那该如何是好?


案例4:深翻页问题

比如团队做一个查看某个直播的用户观看记录的功能,有些直播可能关键人数特别多。

观看记录包括:用户昵称、观看开始时间、观看结束时间、观看时长、性别、省份等。

产品要求支持跳页,可以翻到最后一页,技术上挺难实现怎么办?


2 启示

2.1 使用角度:以终为始/换位思考

我们做某个模块,想清楚这个功能是给谁用的,如果他用这个功能会有哪些不方便的地方,如果有该怎么改进?


很多开发,尤其是工作年数不多的开发,很容易将技术视角带到产品层面,最后的东西很像是数据库表字段直接映射的管理页面。


我们要站在用户视角去看功能,而不仅仅是技术视角去开发功能。


有了这种思维之后

案例1:我们自然地想到需要将 0 和1 转为对应商家更容易理解的描述。


案例2 的情况我们可以要求底层接口支持查询已删除的员工、群和部门的接口来更好地满足业务需求,给用户提供更好地使用体验。


案例3: 如果我们没有思考清楚业务上要解决的问题,商品编辑后只保存最新版这种“直线思维”似乎也没错。但是遇到纠纷时就很难查证。

我们可以在订单中存储商品的版本,商品每次编辑都存储快照,保存证据。

即使产品没有思考到这一点,我们甚至也可以主动去反馈。


2.2 业务角度:思考价值

站在业务角度可以思考这个功能对用户的帮助的程度,该功能的必要性究竟多大。

思考功能的本质是为了满足用户什么样的要求,权衡投入产出比。


为了满足 案例4的要求需要付出很大的代价或者现有的公司存储方案还不支持,可以和产品聊非要做到这么“极致”的代价。


翻到最后一页,无非是为了看观看时长最长的数据,那么我们提供排序接口不就可以了吗?

产品可能会说商品还有查看所有数据的场景,那么我们提供数据导出的excel 的功能不就可以了吗,商家还可以自己通过 excel 进行个性化统计等。


总结

工作越久越发现很多问题不仅仅是技术问题更是产品层面的问题,开发人员不仅要懂技术,还要思考产品的价值和未来发展方向。

懂产品的技术才可以更好地设计好方案来满足当前需求,应对未来的变化,才能更好地发挥技术的价值。


拓展阅读

《为什么技术同学需要有更多的业务思考?》

相关文章
|
10月前
|
监控 供应链 数据可视化
基于用户生命周期的用户分层模型构建
本文探讨了用户分层模型在企业营销中的应用,包括一维、二维和三维分层模型的核心原理与应用方法,以及在银行、DTC营销和零售领域的实践案例。通过板栗看板等工具,企业可实现数据驱动的用户分层管理,优化运营策略,提升营销效率。
432 11
|
12月前
|
存储 NoSQL MongoDB
MongoDB 8.0现已全面可用
如何从MongoDB旧版本升级至8.0,可登录参考升级指南:https://www.mongodb.com/zh-cn/docs/manual/tutorial/upgrade-revision/
|
机器学习/深度学习 数据采集 人工智能
深度学习在医疗健康领域的革新应用:从疾病预测到个性化治疗
【9月更文挑战第4天】深度学习在医疗健康领域的革新应用,为疾病的预防、诊断和治疗带来了全新的可能性。从疾病预测到个性化治疗,深度学习技术正在逐步改变医疗健康的未来。然而,我们也应看到,深度学习在医疗健康领域的应用还面临着诸多挑战,如数据隐私保护、算法可解释性、伦理道德问题等。未来,我们需要不断探索和创新,完善深度学习技术的理论体系和应用框架,为医疗健康行业的可持续发展贡献更多的智慧和力量。
|
边缘计算 缓存 自动驾驶
5G如何实现更高的数据速率?涉及哪些技术?
5G如何实现更高的数据速率?涉及哪些技术?
463 0
|
Python
python变量未定义(NameError)
【7月更文挑战第13天】
899 11
|
存储 开发框架 前端开发
ABP VNext框架基础知识介绍(1)--框架基础类继承关系
ABP VNext框架基础知识介绍(1)--框架基础类继承关系
|
存储 缓存 C语言
FIFO基础知识
本文介绍了什么是FIFO,FIFO的用途、功能和重要参数。最后,利用C语言数组实现了FIFO,给出了详细的程序设计。
1131 0
|
DataX 容器
【echarts】echarts中常用的参数总结
本文主要讲解使用Echarts时setOption里面的属性,参数都是本人项目里的具体参数。设置内容都是在 `setOption({ })`中。
981 4
【echarts】echarts中常用的参数总结
|
存储 SQL 缓存
Vue3中状态管理pinia学习(五)
Vue3中状态管理pinia学习(五)
470 1
Vue3中状态管理pinia学习(五)
|
监控 算法 安全
以unity3d为例解读:游戏数据加密
以unity3d为例解读:游戏数据加密
901 1
以unity3d为例解读:游戏数据加密