Skip to content
赞赏-微信扫码

那个能力叫抽象

创建于: 2025-01-25

大约七八年前,学姐带着我跟一群搞算法的工程师一起吃了顿饭。明显地感受到了思维方式不同带来的冲击。没有好坏之分,只是见到了新奇的另一个世界。

AI 与 门锁

需求是这样的,要做一个demo,场景是酒店内用的管理系统。入住时获取到客人的身份证件上的照片信息。当客人在房间门口的智能门锁的摄像头上刷脸的时候,用AI对比办理入住时的照片,实现人脸开门的功能。

我用了一个通宵的时间,做出了一个 demo。做完却发现,聊需求时一直高频出现的 AI刷脸 这些词都不复存在了。

系统的首页是一个房间状态的总览页面。每个房间一个小方格,显示每个房间的当前状态,是不是空闲等等,可以在这页面上操作给房间设置入住信息。

身份证上刷卡刷出的证件照,我把它叫 钥匙

房间跟 是关联的。因为只是个 demo,我混淆了房间跟锁的概念,房间就是锁。办理入住就是给锁分配临时钥匙。

一个高大上的 AI刷脸智能门锁。。。被我做成了酒店房间状态管理系统。。。一度被质问,算法哪去了?AI哪去了?人脸识别哪去了?。。。它只是一种具体的开锁的方法而已。。。

搞业务的 和 搞算法的

他们不关心什么表结构设计的,找个表加个字段,能把数据存下来就行。。。他们也不认可什么 钥匙 这些词的,他们只认 照片相似度阈值。。。他们对无故出现的房态图感到惊讶。。。

我是毕业后随波逐流进入到搞业务的细分编程岗位的。随波逐流看的是大概率,是学历因素。我只是普通的本科生,不是普通的研究生,不是普通的博士。


最近在做风功率预测算法的实现,习惯性的做复杂业务处理的开发思维,是把预测结果存关系库。后来回过神来,提醒自己借鉴点搞算法的那些人的思维,直接存文件,存到 s3 里,一下子就轻松多了。

是 抽象 还是 领域

很长一段时间里,我以为 业务工程师 和 算法工程师 这份能力的差异,叫 领域

大约小半年前,有幸跟到一个高P的领导。(除了应届毕业时,有比自己多10年经验的导师指导。这是唯二的有比自己多10年经验的前辈一起共事的机会。)我得到了一个更精确的答案。那个能力叫 抽象

他们在说 领域 的时候,比 抽象 更加偏向于业务,还额外的包含行业知识、普遍都会遇到的问题等。钥匙 还不够业务,酒店领域里应该有更业务的细节,还有更多的行业黑话。

比如电力行业中,有 modbus协议、104协议、遥测值、边缘网关 等等。协议这个东西,肯定不在 抽象 这个词的范围内。但是可以算在 领域 的范围。

需求评审, 研发去听什么

需求评审会上,肯定会把要实现的功能描述一遍。研发在听的过程中,需要把表面的、表象上的功能 通过抽象的能力 转换出 需求的本质。这就是为什么 做复杂业务处理这类岗位的工程师,经常会听到 程序员要懂产品懂业务 这个揪心观点的原因。抽象出的需求的本质 是下一步 做程序设计 的重要素材。


守住业务架构底线, 不让个别 低水平的产品经理 和 无能的商务经理 瞎搞事情。

举个例子,一个列表页面,总公司的管理员查看列表的数据时,可以看到 总公司 + 下属子公司 的数据。总公司的客户提了个要求,说我不想看这么多数据,只看总公司的就够了。。。于是来了个需求,要求查询结果只能有总公司的数据。

这个需求已经触及底线了。

公司的技术架构,是底层有一套通用的基座,在基座的基础上,实例化不同的项目。数据权限的设计,在一开始已经投入了大量的成本,设计评审通过了,在组织架构隔离方面,定死上级组织的通用权限是能查看自身+下级组织的数据。

先不展开说为什么这个功能不能做,对技术架构有多大的影响。先想想需求的本质是什么,是用户看到的数据太杂乱,要的是数据过滤。在列表的查询条件那边,新增一个所属公司的下拉框做查询条件,再把下拉框默认设置成当前账号的所属组织,就能变相的解决需求。

低水平的产品经理 和 无能的商务经理 在这个例子中,就是做个透明人、传话人,没能承担起自身岗位职责,把压力丢给开发的人。但我想,即使同事足够优秀,研发也还是需要参与到需求合不合理的讨论中去的,理由和案例这段日子是写不出来了,为什么这篇文章过了小半年才补,因为当我冒出来“需求评审, 研发去听什么”这个题目之后,紧接着就发现这些做事方法在这家混沌的公司里毫无意义,这些小方法使用的前提条件是项目管理的运转稍微有点序。


如果你的产品经理足够透明,没有产品经理了,甚至国企出身的领导用甲方的姿态给你提需求。就需要帮他们补齐边界条件,各种劝说他们这个事情不能做。。。

算了,毁灭吧,就按领导说的做吧,下次领导骂“这个功能怎么做成A样子,明显应该B样子才符合逻辑”的时候。不指望他记得几个月前我一直在说B,是他非要A。别扣我工资就行。。。接手重构别人两年前的旧项目,发现这界面展示的数据内容,在逻辑上狗屁不通的时候。起码有旧代码在,这代码运行起来1就是1,2就是2。至少能按这代码,重做出一模一样的数据,填到一模一样对应的界面位置上。管他这个界面上的数据是什么含义,小明的裤子套小红头上。那也是人人有衣穿还有帽戴了,可以去申请奔小康勋章了。也许需求的本质就是有字就行,排版挺好看的就行。